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

0026641: Visualization, TKOpenGl - handle correctly transformation persistence within perspective projection.

Add a new method AIS_InteractiveContext::SetTransformPersistence, which sets transform persistence to object and selection.
Add a new method SelectMgr_SelectionManager::UpdateSelection, which re-adds selectable object in BVHs in all viewer selectors.
Add a new method SelectMgr_ViewerSelector::MoveSelectableObject, which moves object from set of not transform persistence objects to set of transform persistence objects (or vice versa).
Add a new method Graphic3d_TransformUtils::Convert, which converts gp_Trsf to Graphic3d_Mat4.
Remove the method PrsMgr_PresentableObject::SetTransformPersistence(flag, point).
This commit is contained in:
isk
2016-07-05 13:32:52 +03:00
committed by bugmaster
parent fbad941bd4
commit 1d92133e83
20 changed files with 254 additions and 77 deletions

View File

@@ -2989,3 +2989,29 @@ void AIS_InteractiveContext::FitSelected (const Handle(V3d_View)& theView,
theView->FitAll (aBndSelected, theMargin, theToUpdate);
}
//=======================================================================
//function : SetTransformPersistence
//purpose :
//=======================================================================
void AIS_InteractiveContext::SetTransformPersistence (const Handle(AIS_InteractiveObject)& theObject,
const Graphic3d_TransModeFlags& theFlag,
const gp_Pnt& thePoint)
{
theObject->SetTransformPersistence (theFlag, thePoint);
if (!myObjects.IsBound (theObject))
{
return;
}
mgrSelector->UpdateSelection (theObject);
const Standard_Integer aLayerId = myObjects.Find (theObject)->GetLayerIndex();
const Handle(V3d_Viewer)& aCurViewer = CurrentViewer();
for (aCurViewer->InitActiveViews(); aCurViewer->MoreActiveViews(); aCurViewer->NextActiveViews())
{
aCurViewer->ActiveView()->View()->InvalidateBVHData (aLayerId);
aCurViewer->ActiveView()->View()->InvalidateZLayerBoundingBox (aLayerId);
}
}