1
0
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:
kgv
2017-07-10 15:43:25 +03:00
committed by bugmaster
parent 851dacdbb9
commit 1eeef710bb
15 changed files with 316 additions and 187 deletions

View File

@@ -306,6 +306,7 @@ void CViewer3dView::OnBUTTONHlrOff()
{
myHlrModeIsOn = Standard_False;
myView->SetComputedMode (myHlrModeIsOn);
myView->Redraw();
TCollection_AsciiString aMsg ("myView->SetComputedMode (Standard_False);\n"
" ");
@@ -319,6 +320,7 @@ void CViewer3dView::OnBUTTONHlrOn()
SetCursor(AfxGetApp()->LoadStandardCursor(IDC_WAIT));
myHlrModeIsOn = Standard_True;
myView->SetComputedMode (myHlrModeIsOn);
myView->Redraw();
SetCursor(AfxGetApp()->LoadStandardCursor(IDC_ARROW));
TCollection_AsciiString aMsg ("myView->SetComputedMode (Standard_True);\n"
@@ -616,7 +618,11 @@ void CViewer3dView::OnRButtonDown(UINT nFlags, CPoint point)
void CViewer3dView::OnRButtonUp(UINT /*nFlags*/, CPoint /*point*/)
{
SetCursor(AfxGetApp()->LoadStandardCursor(IDC_WAIT));
myView->SetComputedMode (myHlrModeIsOn);
if (myHlrModeIsOn)
{
myView->SetComputedMode (myHlrModeIsOn);
myView->Redraw();
}
SetCursor(AfxGetApp()->LoadStandardCursor(IDC_ARROW));
}
@@ -1177,14 +1183,17 @@ void CViewer3dView::RedrawVisMode()
case VIS_WIREFRAME:
GetDocument()->GetAISContext()->SetDisplayMode (AIS_WireFrame, Standard_True);
myView->SetComputedMode (Standard_False);
myView->Redraw();
break;
case VIS_SHADE:
GetDocument()->GetAISContext()->SetDisplayMode (AIS_Shaded, Standard_True);
myView->SetComputedMode (Standard_False);
myView->Redraw();
break;
case VIS_HLR:
SetCursor(AfxGetApp()->LoadStandardCursor(IDC_WAIT));
myView->SetComputedMode (Standard_True);
myView->Redraw();
SetCursor(AfxGetApp()->LoadStandardCursor(IDC_ARROW));
GetDocument()->GetAISContext()->SetDisplayMode (AIS_WireFrame, Standard_True);
break;