mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-09 13:22:24 +03:00
0032387: Visualization - use interface of ray-picking for selection/highlighting for XR pose
Fixed regression of SelectMgr_ViewerSelector::SetPixelTolerance(). Removed redundant myToUpdateTolerance flag. SelectMgr_AxisIntersector::raySegmentDistance() - fixed usage of SquareModulus() instead of Modulus(). SelectMgr_ViewerSelector::TraverseSensitives() now skips both BVHSubset_2dPersistent and BVHSubset_3dPersistent relying on Camera. AIS_ViewController::handleXRMoveTo() now uses interface for picking by Axis explicitly instead of emulating axis by point picking.
This commit is contained in:
@@ -2730,7 +2730,33 @@ AIS_StatusOfDetection AIS_InteractiveContext::MoveTo (const Standard_Integer th
|
||||
{
|
||||
throw Standard_ProgramError ("AIS_InteractiveContext::MoveTo() - invalid argument");
|
||||
}
|
||||
myMainSel->Pick (theXPix, theYPix, theView);
|
||||
return moveTo (theView, theToRedrawOnUpdate);
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : MoveTo
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
AIS_StatusOfDetection AIS_InteractiveContext::MoveTo (const gp_Ax1& theAxis,
|
||||
const Handle(V3d_View)& theView,
|
||||
const Standard_Boolean theToRedrawOnUpdate)
|
||||
{
|
||||
if (theView->Viewer() != myMainVwr)
|
||||
{
|
||||
throw Standard_ProgramError ("AIS_InteractiveContext::MoveTo() - invalid argument");
|
||||
}
|
||||
myMainSel->Pick (theAxis, theView);
|
||||
return moveTo (theView, theToRedrawOnUpdate);
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : moveTo
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
AIS_StatusOfDetection AIS_InteractiveContext::moveTo (const Handle(V3d_View)& theView,
|
||||
const Standard_Boolean theToRedrawOnUpdate)
|
||||
{
|
||||
myCurDetected = 0;
|
||||
myCurHighlighted = 0;
|
||||
myDetectedSeq.Clear();
|
||||
@@ -2741,7 +2767,6 @@ AIS_StatusOfDetection AIS_InteractiveContext::MoveTo (const Standard_Integer th
|
||||
Standard_Boolean toUpdateViewer = Standard_False;
|
||||
|
||||
myFilters->SetDisabledObjects (theView->View()->HiddenObjects());
|
||||
myMainSel->Pick (theXPix, theYPix, theView);
|
||||
|
||||
// filling of myAISDetectedSeq sequence storing information about detected AIS objects
|
||||
// (the objects must be AIS_Shapes)
|
||||
|
Reference in New Issue
Block a user