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

0026973: Visualization - selection of entities hidden by clipping planes is broken

- misprint in distance calculation in SelectMgr_RectangularFrustum::IsClipped is corrected;
- selecting volume manager in clipping check in SelectMgr_ViewerSelector::checkOverlap was replaced ;
- added view-defined clipping planes check to SelectMgr_RectangularFrustum;
- test case for issue #26973.
This commit is contained in:
vpa
2015-12-16 12:25:03 +03:00
committed by bugmaster
parent 4ff92abe44
commit e9312c0fc2
12 changed files with 272 additions and 48 deletions

View File

@@ -113,8 +113,6 @@ void StdSelect_ViewerSelector3d::Pick (const Standard_Integer theXPix,
const Standard_Integer theYPix,
const Handle(V3d_View)& theView)
{
SetClipping (theView->GetClipPlanes());
if(myToUpdateTolerance)
{
mySelectingVolumeMgr.SetPixelTolerance (myTolerances.Tolerance());
@@ -129,6 +127,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());
TraverseSensitives();
}
@@ -650,15 +649,6 @@ void StdSelect_ViewerSelector3d::ComputeSensitivePrs (const Handle(Graphic3d_Str
}
}
//=======================================================================
//function : SetClipping
//purpose :
//=======================================================================
void StdSelect_ViewerSelector3d::SetClipping (const Graphic3d_SequenceOfHClipPlane& thePlanes)
{
myClipPlanes = thePlanes;
}
//=======================================================================
//function : HasDepthClipping
//purpose :

View File

@@ -83,12 +83,6 @@ public:
DEFINE_STANDARD_RTTIEXT(StdSelect_ViewerSelector3d,SelectMgr_ViewerSelector)
protected:
//! Set view clipping for the selector.
//! @param thePlanes [in] the view planes.
Standard_EXPORT void SetClipping (const Graphic3d_SequenceOfHClipPlane& thePlanes);
private:
void ComputeSensitivePrs (const Handle(Graphic3d_Structure)& theStructure,
@@ -97,7 +91,6 @@ private:
const Graphic3d_TransformPers& theTransPers);
Graphic3d_SequenceOfStructure myStructs;
Graphic3d_SequenceOfHClipPlane myClipPlanes;
};
DEFINE_STANDARD_HANDLE(StdSelect_ViewerSelector3d, SelectMgr_ViewerSelector)