mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-09-08 14:17:06 +03:00
0024307: TKOpenGl - efficient culling of large number of presentations
Implement SAT intersection tests and frustum culling algorithm using BVH trees. New Draw command vfrustumculling to manage frustum culling. Add test cases bugs/vis/bug24307_1 and bugs/vis/bug24307_2. Remove CALL_DEF_BOUNDBOX and CALL_DEF_BOUNDS.
This commit is contained in:
@@ -52,6 +52,7 @@ PrsMgr_Presentation::PrsMgr_Presentation (const Handle(PrsMgr_PresentationManage
|
||||
myStructure = new PrsMgr_Prs (thePrsMgr->StructureManager(),
|
||||
this, thePrsObject->TypeOfPresentation3d());
|
||||
myStructure->SetOwner (myPresentableObject);
|
||||
myStructure->SetMutable (myPresentableObject->IsMutable());
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
@@ -68,15 +69,17 @@ void PrsMgr_Presentation::Display()
|
||||
//function : Display
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void PrsMgr_Presentation::Display (const Standard_Boolean /*theIsHighlight*/)
|
||||
void PrsMgr_Presentation::Display (const Standard_Boolean theIsHighlight)
|
||||
{
|
||||
if (!myStructure->IsDisplayed())
|
||||
{
|
||||
myStructure->SetIsForHighlight (theIsHighlight);
|
||||
myStructure->Display();
|
||||
}
|
||||
else if (!myStructure->IsVisible())
|
||||
{
|
||||
SetVisible (Standard_True);
|
||||
myStructure->SetIsForHighlight (theIsHighlight);
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user