For all issues regarding the Forums use, please, refer to the Forum Rules.

Our Solutions

Need professional assistance?
Consider our:

Support Offerings

 

Need to speed up your development?
Have a look at our:

Samples & Tools

 

Need some functionality extending standard OCCT capabilities?
Check out our:

Adv. Components

Related pages

Wrong result of SelectMgr_RectangularFrustum::IsClipped

Anton Shabalin's picture
Forums: 

Hello, everyone!

I faced with a problem with function SelectMgr_RectangularFrustum::IsClipped. (Please have a look at OCCT-hightlight-bug-2018-05-15.gif)

To represent a problem, one can try this code:

    TopoDS_Shape bottle = MakeBottle(70, 100, 30);
    Handle(AIS_Shape) aBottle = new AIS_Shape(bottle);
    Handle(Graphic3d_ClipPlane) planeLeft = new Graphic3d_ClipPlane(gp_Pln(gp_Pnt(20, 0, 0), gp::DX()));
    aBottle->AddClipPlane(planeLeft);

    myContext->Display(aBottle, true);

(MakeBottle - simple function from OCCT docs making sample bottle).

So when the clip plane has been added to the bottle, one can see a highlighting, when mouse cursor on the clipped part of a shape.

If you look at SelectMgr_ViewerSelector::checkOverlap you could see a call of mySelectingVolumeMgr.IsClipped (*aSelectable->ClipPlanes(), aPickResult.Depth()). Where mySelectingVolumeMgr is of SelectMgr_RectangularFrustum

This function returns wrong results sometimes (e.g. when you add plane or several parallel planes perpendicular to the view plane). You can see the code of a function at picture 2018-05-15_21-48-20.png.