From 2a40d51c15e8fbb28b6054325c32cf35a2c8e259 Mon Sep 17 00:00:00 2001 From: kgv Date: Tue, 8 Jul 2014 19:23:47 +0400 Subject: [PATCH] 0025059: Visualization - mutable transformed structure still invalidates BVH tree for culling Take into account IsMutable flag within Visual3d_View::ReCompute() method. --- src/Visual3d/Visual3d_View.cxx | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/Visual3d/Visual3d_View.cxx b/src/Visual3d/Visual3d_View.cxx index f33d6eaca7..c844753d10 100644 --- a/src/Visual3d/Visual3d_View.cxx +++ b/src/Visual3d/Visual3d_View.cxx @@ -1635,12 +1635,12 @@ Standard_Integer Index = IsComputed (AStructure); MyCOMPUTEDSequence.Value (Index)->GraphicTransform (ATrsf); } - Standard_Integer aLayerId = AStructure->GetZLayer(); + AStructure->CalculateBoundBox(); if (!AStructure->IsMutable() && !AStructure->CStructure()->IsForHighlight && !AStructure->CStructure()->IsInfinite) { - AStructure->CalculateBoundBox(); + Standard_Integer aLayerId = AStructure->GetZLayer(); MyGraphicDriver->InvalidateBVHData (MyCView, aLayerId); } } @@ -2104,9 +2104,11 @@ Graphic3d_SequenceOfStructure FooSequence; } void Visual3d_View::ReCompute (const Handle(Graphic3d_Structure)& AStructure) { - if (MyCView.IsCullingEnabled) + AStructure->CalculateBoundBox(); + if (!AStructure->IsMutable() + && !AStructure->CStructure()->IsForHighlight + && !AStructure->CStructure()->IsInfinite) { - AStructure->CalculateBoundBox(); Standard_Integer aLayerId = AStructure->DisplayPriority(); MyGraphicDriver->InvalidateBVHData(MyCView, aLayerId); }