mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-14 13:30:48 +03:00
0028895: Visualization, V3d_View::SetComputedMode() - HLR calculation is performed multiple times when 'hlr on' has been called
V3d_View::SetComputedMode() - removed implicit View update. Graphic3d_CView::SetComputedMode(), ::ReCompute() - fixed uninitialized bounding box of Computed structure. PrsMgr_Presentation::Compute() - fixed computation of Computed structure with transformation within Connected presentation. StdPrs_HLRPolyShape::Add() now creates Graphic3d_ArrayOfSegments instead of inefficient Graphic3d_ArrayOfPolylines with boundaries at every segment. Fixed error in test case bugs/vis/bug24388_1.
This commit is contained in:
@@ -287,31 +287,7 @@ Handle(Graphic3d_Structure) PrsMgr_Presentation::Compute (const Handle(Graphic3d
|
||||
const Handle(Geom_Transformation)& theTrsf)
|
||||
{
|
||||
Handle(Prs3d_Presentation) aPrs3d = new Prs3d_Presentation (myPresentationManager->StructureManager());
|
||||
if (theTrsf->Form() == gp_Translation)
|
||||
{
|
||||
myPresentableObject->Compute (Projector (theProjector), aPrs3d);
|
||||
aPrs3d->SetTransformation (theTrsf);
|
||||
return aPrs3d;
|
||||
}
|
||||
|
||||
// waiting that something is done in gp_Trsf...rob
|
||||
for (Standard_Integer i = 1; i <= 3; ++i)
|
||||
{
|
||||
for (Standard_Integer j = 1; j <= 3; ++j)
|
||||
{
|
||||
if (i != j)
|
||||
{
|
||||
if (Abs (theTrsf->Value (i, j)) > Precision::Confusion())
|
||||
{
|
||||
myPresentableObject->Compute (Projector (theProjector), theTrsf, aPrs3d);
|
||||
return aPrs3d;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
myPresentableObject->Compute (Projector (theProjector), aPrs3d);
|
||||
aPrs3d->SetTransformation (theTrsf);
|
||||
myPresentableObject->Compute (Projector (theProjector), theTrsf, aPrs3d);
|
||||
return aPrs3d;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user