mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-09 13:22:24 +03:00
0027816: Visualization - provide an API for overriding clipping planes list
Graphic3d_SequenceOfHClipPlane now inherits Standard_Transient. PrsMgr_PresentableObject, Graphic3d_Structure, Graphic3d_CStructure, V3d_View, OpenGl_View now manages the plane list by Handle. The getters ::GetClipPlanes() has been removed, setters taking non-handle ::SetClipPlanes() has been marked deprecated. OpenGl_Structure::Render() and SelectMgr_ViewerSelector::checkOverlap() now disable global (view) clipping planes for objects with flags Graphic3d_TMF_TriedronPers and Graphic3d_TMF_2d or with new flag Graphic3d_SequenceOfHClipPlane::ToOverrideGlobal(). OpenGl_Clipping now implements interface for managing clipping planes without copying the sequences. The filtering of duplicates is no more performed by OpenGl_Clipping - application is responsible to not do this. OpenGl_Clipping tries avoiding unnecessary allocations for managing list of active planes. MFC sample has been updated to use V3d_View::ClipPlanes() method.
This commit is contained in:
@@ -128,7 +128,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->GetClipPlanes());
|
||||
mySelectingVolumeMgr.SetViewClipping (theView->ClipPlanes());
|
||||
|
||||
TraverseSensitives();
|
||||
}
|
||||
@@ -644,7 +644,8 @@ Standard_Boolean StdSelect_ViewerSelector3d::HasDepthClipping (const Handle(Sele
|
||||
}
|
||||
|
||||
const Handle(SelectMgr_SelectableObject)& aSelectable = theOwner->Selectable();
|
||||
return (aSelectable->GetClipPlanes().Size() > 0);
|
||||
return !aSelectable->ClipPlanes().IsNull()
|
||||
&& !aSelectable->ClipPlanes()->IsEmpty();
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
|
Reference in New Issue
Block a user