From: kgv Date: Mon, 29 Jul 2019 14:49:58 +0000 (+0300) Subject: 0026154: Visualization - v3d viewer grid disappears due to automatic z-fit X-Git-Tag: V7_4_0_beta~70 X-Git-Url: http://git.dev.opencascade.org/gitweb/?p=occt.git;a=commitdiff_plain;h=e36ee9677a73d62c1e2d38efecd78a1017320db1;hp=f6b4e578cddaaf497ef0079420dfd19c17508360 0026154: Visualization - v3d viewer grid disappears due to automatic z-fit V3d_RectangularGrid, V3d_CircularGrid, fixed initialization of presentation bounding box (lost Z offset). --- diff --git a/src/V3d/V3d_CircularGrid.cxx b/src/V3d/V3d_CircularGrid.cxx index 567cb885d8..ccf2092719 100644 --- a/src/V3d/V3d_CircularGrid.cxx +++ b/src/V3d/V3d_CircularGrid.cxx @@ -28,8 +28,12 @@ IMPLEMENT_STANDARD_RTTIEXT(V3d_CircularGrid,Aspect_CircularGrid) -#define DIVISION 8 -#define MYFACTOR 50. +namespace +{ + static const Standard_Real THE_DEFAULT_GRID_STEP = 10.0; + #define DIVISION 8 + #define MYFACTOR 50. +} //! Dummy implementation of Graphic3d_Structure overriding ::Compute() method for handling Device Lost. class V3d_CircularGrid::CircularGridStructure : public Graphic3d_Structure @@ -58,7 +62,15 @@ V3d_CircularGrid::V3d_CircularGrid (const V3d_ViewerPointer& aViewer, const Quan : Aspect_CircularGrid (1.,8), myViewer (aViewer), myCurAreDefined (Standard_False), - myToComputePrs (Standard_False) + myToComputePrs (Standard_False), + myCurDrawMode (Aspect_GDM_Lines), + myCurXo (0.0), + myCurYo (0.0), + myCurAngle (0.0), + myCurStep (0.0), + myCurDivi (0), + myRadius (0.5 * aViewer->DefaultViewSize()), + myOffSet (THE_DEFAULT_GRID_STEP / MYFACTOR) { myColor = aColor; myTenthColor = aTenthColor; @@ -67,10 +79,7 @@ V3d_CircularGrid::V3d_CircularGrid (const V3d_ViewerPointer& aViewer, const Quan myGroup = myStructure->NewGroup(); myStructure->SetInfiniteState (Standard_True); - const Standard_Real step = 10.; - const Standard_Real size = 0.5*myViewer->DefaultViewSize(); - SetGraphicValues (size, step/MYFACTOR); - SetRadiusStep (step); + SetRadiusStep (THE_DEFAULT_GRID_STEP); } V3d_CircularGrid::~V3d_CircularGrid() @@ -263,7 +272,7 @@ void V3d_CircularGrid::DefineLines () myGroup->AddPrimitiveArray(aPrims3, Standard_False); } - myGroup->SetMinMaxValues(-myRadius, -myRadius, 0.0, myRadius, myRadius, 0.0); + myGroup->SetMinMaxValues (-myRadius, -myRadius, -myOffSet, myRadius, myRadius, -myOffSet); myCurStep = aStep, myCurDivi = (Standard_Integer ) aDivision; // update bounding box @@ -321,7 +330,7 @@ void V3d_CircularGrid::DefinePoints () } myGroup->AddPrimitiveArray (Cercle, Standard_False); } - myGroup->SetMinMaxValues(-myRadius, -myRadius, 0.0, myRadius, myRadius, 0.0); + myGroup->SetMinMaxValues (-myRadius, -myRadius, -myOffSet, myRadius, myRadius, -myOffSet); myCurStep = aStep, myCurDivi = (Standard_Integer ) aDivision; diff --git a/src/V3d/V3d_RectangularGrid.cxx b/src/V3d/V3d_RectangularGrid.cxx index 0fd238a769..4a24e55306 100644 --- a/src/V3d/V3d_RectangularGrid.cxx +++ b/src/V3d/V3d_RectangularGrid.cxx @@ -28,7 +28,11 @@ IMPLEMENT_STANDARD_RTTIEXT(V3d_RectangularGrid,Aspect_RectangularGrid) -#define MYFACTOR 50. +namespace +{ + static const Standard_Real THE_DEFAULT_GRID_STEP = 10.0; + #define MYFACTOR 50. +} //! Dummy implementation of Graphic3d_Structure overriding ::Compute() method for handling Device Lost. class V3d_RectangularGrid::RectangularGridStructure : public Graphic3d_Structure @@ -57,7 +61,16 @@ V3d_RectangularGrid::V3d_RectangularGrid (const V3d_ViewerPointer& aViewer, cons : Aspect_RectangularGrid (1.,1.), myViewer (aViewer), myCurAreDefined (Standard_False), - myToComputePrs (Standard_True) + myToComputePrs (Standard_True), + myCurDrawMode (Aspect_GDM_Lines), + myCurXo (0.0), + myCurYo (0.0), + myCurAngle (0.0), + myCurXStep (0.0), + myCurYStep (0.0), + myXSize (0.5 * aViewer->DefaultViewSize()), + myYSize (0.5 * aViewer->DefaultViewSize()), + myOffSet (THE_DEFAULT_GRID_STEP / MYFACTOR) { myColor = aColor; myTenthColor = aTenthColor; @@ -66,12 +79,8 @@ V3d_RectangularGrid::V3d_RectangularGrid (const V3d_ViewerPointer& aViewer, cons myGroup = myStructure->NewGroup(); myStructure->SetInfiniteState (Standard_True); - const Standard_Real step = 10.; - const Standard_Real gstep = step/MYFACTOR; - const Standard_Real size = 0.5*myViewer->DefaultViewSize(); - SetGraphicValues (size, size, gstep); - SetXStep (step); - SetYStep (step); + SetXStep (THE_DEFAULT_GRID_STEP); + SetYStep (THE_DEFAULT_GRID_STEP); } V3d_RectangularGrid::~V3d_RectangularGrid() @@ -261,7 +270,7 @@ void V3d_RectangularGrid::DefineLines () myGroup->AddPrimitiveArray(aPrims, Standard_False); } - myGroup->SetMinMaxValues(-myXSize, -myYSize, 0.0, myXSize, myYSize, 0.0); + myGroup->SetMinMaxValues(-myXSize, -myYSize, -myOffSet, myXSize, myYSize, -myOffSet); myCurXStep = aXStep, myCurYStep = aYStep; // update bounding box @@ -321,7 +330,7 @@ void V3d_RectangularGrid::DefinePoints () myGroup->AddPrimitiveArray (Vertical, Standard_False); } - myGroup->SetMinMaxValues(-myXSize, -myYSize, 0.0, myXSize, myYSize, 0.0); + myGroup->SetMinMaxValues(-myXSize, -myYSize, -myOffSet, myXSize, myYSize, -myOffSet); myCurXStep = aXStep, myCurYStep = aYStep; // update bounding box