1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-09 13:22:24 +03:00

0030777: Visualization - Incorrect selection/highlighting of clipped objects

SelectMgr_ViewerSelector::traverseObject() now handles Object clipping planes in the same way as View clipping planes.
This commit is contained in:
kgv
2019-06-16 17:09:14 +03:00
committed by bugmaster
parent 3b739e69c9
commit fe525c6f7c
13 changed files with 124 additions and 214 deletions

View File

@@ -132,7 +132,7 @@ void StdSelect_ViewerSelector3d::Pick (const Standard_Integer theXPix,
gp_Pnt2d aMousePos (static_cast<Standard_Real> (theXPix),
static_cast<Standard_Real> (theYPix));
mySelectingVolumeMgr.BuildSelectingVolume (aMousePos);
mySelectingVolumeMgr.SetViewClipping (theView->ClipPlanes());
mySelectingVolumeMgr.SetViewClipping (theView->ClipPlanes(), Handle(Graphic3d_SequenceOfHClipPlane)());
TraverseSensitives();
}
@@ -624,22 +624,6 @@ void StdSelect_ViewerSelector3d::computeSensitivePrs (const Handle(Graphic3d_Str
}
}
//=======================================================================
//function : HasDepthClipping
//purpose :
//=======================================================================
Standard_Boolean StdSelect_ViewerSelector3d::HasDepthClipping (const Handle(SelectMgr_EntityOwner)& theOwner) const
{
if (!theOwner->HasSelectable())
{
return Standard_False;
}
const Handle(SelectMgr_SelectableObject)& aSelectable = theOwner->Selectable();
return !aSelectable->ClipPlanes().IsNull()
&& !aSelectable->ClipPlanes()->IsEmpty();
}
//=======================================================================
// Function: updateZLayers
// Purpose :

View File

@@ -93,8 +93,6 @@ public:
const Handle(V3d_View)& theView,
const Standard_Boolean theToClearOthers = Standard_True);
Standard_EXPORT virtual Standard_Boolean HasDepthClipping (const Handle(SelectMgr_EntityOwner)& theOwner) const Standard_OVERRIDE;
DEFINE_STANDARD_RTTIEXT(StdSelect_ViewerSelector3d,SelectMgr_ViewerSelector)
protected: