From bd92cc2a59a8606930ba4f1c0b374cae2e910b27 Mon Sep 17 00:00:00 2001 From: aba Date: Fri, 14 Dec 2012 16:08:27 +0400 Subject: [PATCH] 0023323: Duplicate if-clause in Visual3d_View.cxx Changed an outer condition. Deleted MyMatOfOriIsModified and MyMatOfMapIsModified flags.Deleted all modification flags from ViewOrientationReset() and SetViewOrientation() functions. Checkings of view modifications in SetViewOrientation() and ViewOrientationReset() methods were returned CustomIsModified flag was replaced by ScaleIsModified flag in modification checking. Added 'IsInitialized' flag to check if orientation matrix was set --- src/Visual3d/Visual3d_View.cxx | 213 ++++++++++++++++----------------- src/Visual3d/Visual3d_View.pxx | 15 +-- 2 files changed, 106 insertions(+), 122 deletions(-) diff --git a/src/Visual3d/Visual3d_View.cxx b/src/Visual3d/Visual3d_View.cxx index a98748d0fe..93af9d2e2c 100755 --- a/src/Visual3d/Visual3d_View.cxx +++ b/src/Visual3d/Visual3d_View.cxx @@ -274,13 +274,13 @@ Standard_Real um, vm, uM, vM; MyCView.Context.ZBufferActivity = -1; - MyMatOfMapIsModified = Standard_True; - MyMatOfOriIsModified = Standard_True; MyMatOfMapIsEvaluated = Standard_False; MyMatOfOriIsEvaluated = Standard_False; DegenerateModeIsActive = Standard_False; AnimationModeIsActive = Standard_False; + + IsInitialized = Standard_False; #ifdef G003 MyCView.IsDegenerates = 0; MyCView.IsDegeneratesPrev = 0; @@ -413,10 +413,10 @@ Standard_Real um, vm, uM, vM; MyCView.Context.ZBufferActivity = -1; - MyMatOfMapIsModified = Standard_True; - MyMatOfOriIsModified = Standard_True; MyMatOfMapIsEvaluated = Standard_False; MyMatOfOriIsEvaluated = Standard_False; + + IsInitialized = Standard_False; #ifdef G003 AnimationModeIsActive = Standard_False; MyCView.IsDegenerates = 0; @@ -602,11 +602,11 @@ void Visual3d_View::Remove () { MyCView.IsDeleted = 1; MyCView.DefWindow.IsDefined = 0; - MyMatOfMapIsModified = Standard_True; - MyMatOfOriIsModified = Standard_True; MyMatOfMapIsEvaluated = Standard_False; MyMatOfOriIsEvaluated = Standard_False; + IsInitialized = Standard_False; + MyWindow.Nullify (); } @@ -1099,7 +1099,6 @@ Visual3d_ViewOrientation NewViewOrientation; SetViewOrientation (NewViewOrientation); - MyMatOfOriIsModified = Standard_True; MyMatOfOriIsEvaluated = Standard_False; } @@ -1115,94 +1114,90 @@ void Visual3d_View::SetViewOrientation (const Visual3d_ViewOrientation& VO) { if (IsDeleted ()) return; MyViewOrientation = VO; - -Standard_Real X, Y, Z; - + + Standard_Real X, Y, Z; // Tests on modification of parameters. -Standard_Boolean VUPIsModified = Standard_False; -Standard_Boolean VRPIsModified = Standard_False; -Standard_Boolean VRUIsModified = Standard_False; -Standard_Boolean ScaleIsModified = Standard_False; -Standard_Boolean CustomIsModified = Standard_False; + Standard_Boolean VUPIsModified = Standard_False; + Standard_Boolean VRPIsModified = Standard_False; + Standard_Boolean VRUIsModified = Standard_False; + Standard_Boolean ScaleIsModified = Standard_False; + Standard_Boolean CustomIsModified = Standard_False; (MyViewOrientation.ViewReferencePoint ()).Coord (X, Y, Z); VUPIsModified = - MyCView.Orientation.ViewReferencePoint.x != float (X) - || MyCView.Orientation.ViewReferencePoint.y != float (Y) - || MyCView.Orientation.ViewReferencePoint.z != float (Z); + MyCView.Orientation.ViewReferencePoint.x != float (X) + || MyCView.Orientation.ViewReferencePoint.y != float (Y) + || MyCView.Orientation.ViewReferencePoint.z != float (Z); MyCView.Orientation.ViewReferencePoint.x = float (X); MyCView.Orientation.ViewReferencePoint.y = float (Y); MyCView.Orientation.ViewReferencePoint.z = float (Z); (MyViewOrientation.ViewReferencePlane ()).Coord (X, Y, Z); VRPIsModified = - MyCView.Orientation.ViewReferencePlane.x != float (X) - || MyCView.Orientation.ViewReferencePlane.y != float (Y) - || MyCView.Orientation.ViewReferencePlane.z != float (Z); + MyCView.Orientation.ViewReferencePlane.x != float (X) + || MyCView.Orientation.ViewReferencePlane.y != float (Y) + || MyCView.Orientation.ViewReferencePlane.z != float (Z); MyCView.Orientation.ViewReferencePlane.x = float (X); MyCView.Orientation.ViewReferencePlane.y = float (Y); MyCView.Orientation.ViewReferencePlane.z = float (Z); (MyViewOrientation.ViewReferenceUp ()).Coord (X, Y, Z); VRUIsModified = - MyCView.Orientation.ViewReferenceUp.x != float (X) - || MyCView.Orientation.ViewReferenceUp.y != float (Y) - || MyCView.Orientation.ViewReferenceUp.z != float (Z); + MyCView.Orientation.ViewReferenceUp.x != float (X) + || MyCView.Orientation.ViewReferenceUp.y != float (Y) + || MyCView.Orientation.ViewReferenceUp.z != float (Z); MyCView.Orientation.ViewReferenceUp.x = float (X); MyCView.Orientation.ViewReferenceUp.y = float (Y); MyCView.Orientation.ViewReferenceUp.z = float (Z); -Standard_Real Sx, Sy, Sz; - - MyViewOrientation.AxialScale(Sx, Sy, Sz); - ScaleIsModified = - MyCView.Orientation.ViewScaleX != float (X) - || MyCView.Orientation.ViewScaleY != float (Y) - || MyCView.Orientation.ViewScaleZ != float (Z); - MyCView.Orientation.ViewScaleX = float (Sx); - MyCView.Orientation.ViewScaleY = float (Sy); - MyCView.Orientation.ViewScaleZ = float (Sz); + MyViewOrientation.AxialScale(X, Y, Z); + ScaleIsModified = + MyCView.Orientation.ViewScaleX != float (X) + || MyCView.Orientation.ViewScaleY != float (Y) + || MyCView.Orientation.ViewScaleZ != float (Z); + MyCView.Orientation.ViewScaleX = float (X); + MyCView.Orientation.ViewScaleY = float (Y); + MyCView.Orientation.ViewScaleZ = float (Z); CustomIsModified = - MyCView.Orientation.IsCustomMatrix != MyViewOrientation.IsCustomMatrix(); + MyCView.Orientation.IsCustomMatrix != MyViewOrientation.IsCustomMatrix(); MyCView.Orientation.IsCustomMatrix = MyViewOrientation.IsCustomMatrix(); if ( MyViewOrientation.IsCustomMatrix() ) { Standard_Integer i, j; for (i = 0; i < 4; i++) for (j = 0; j < 4; j++) { - if (!CustomIsModified) CustomIsModified = - MyCView.Orientation.ModelViewMatrix[i][j] != MyViewOrientation.MyModelViewMatrix->Value(i,j); - MyCView.Orientation.ModelViewMatrix[i][j] = MyViewOrientation.MyModelViewMatrix->Value(i,j); + if (!CustomIsModified) CustomIsModified = + MyCView.Orientation.ModelViewMatrix[i][j] != MyViewOrientation.MyModelViewMatrix->Value(i,j); } } #ifdef TRACE_TRSF -cout << "Visual3d_View::SetViewOrientation\n"; - if (VUPIsModified || VRPIsModified || VRUIsModified || CustomIsModified) - cout << "VUPIsModified : " << VUPIsModified - << ", VRPIsModified : " << VRPIsModified - << ", VRUIsModified : " << VRUIsModified - << ", CustomIsModified : " << CustomIsModified << "\n" << flush; + cout << "Visual3d_View::SetViewOrientation\n"; + if (VUPIsModified || VRPIsModified || VRUIsModified || ScaleIsModified || CustomIsModified) + cout << "VUPIsModified : " << VUPIsModified + << ", VRPIsModified : " << VRPIsModified + << ", VRUIsModified : " << VRUIsModified + << ", CustomIsModified : " << CustomIsModified + << ", ScaleIsModified : " << ScaleIsModified << "\n" << flush; else - cout << "no modification\n" << flush; + cout << "no modification\n" << flush; #endif // restart if one of parameters is modified - if (VUPIsModified || VRPIsModified || VRUIsModified || ScaleIsModified || CustomIsModified) { - - if (VUPIsModified || VRPIsModified || VRUIsModified || CustomIsModified) { - MyMatOfOriIsModified = Standard_True; - MyMatOfOriIsEvaluated = Standard_False; - } - - if (! IsDefined ()) return; - -Standard_Boolean AWait = Standard_False; // => immediate update - MyGraphicDriver->ViewOrientation (MyCView, AWait); + if (!IsInitialized || VUPIsModified || VRPIsModified + || VRUIsModified || ScaleIsModified || CustomIsModified) { - Compute (); + MyMatOfOriIsEvaluated = !VUPIsModified && !VRPIsModified + && !VRUIsModified && !ScaleIsModified; + + if (! IsDefined ()) return; + + Standard_Boolean AWait = Standard_False; // => immediate update + MyGraphicDriver->ViewOrientation (MyCView, AWait); + IsInitialized = Standard_True; + Compute (); - if (MyViewManager->UpdateMode () == Aspect_TOU_ASAP) Update (); + if (MyViewManager->UpdateMode () == Aspect_TOU_ASAP) Update (); } } @@ -1231,95 +1226,92 @@ void Visual3d_View::ViewOrientationReset () { MyViewOrientation = MyViewOrientationReset; -Standard_Real X, Y, Z; + Standard_Real X, Y, Z; // Tests on modification of parameters. -Standard_Boolean VUPIsModified = Standard_False; -Standard_Boolean VRPIsModified = Standard_False; -Standard_Boolean VRUIsModified = Standard_False; -Standard_Boolean ScaleIsModified = Standard_False; -Standard_Boolean CustomIsModified = Standard_False; + Standard_Boolean VUPIsModified = Standard_False; + Standard_Boolean VRPIsModified = Standard_False; + Standard_Boolean VRUIsModified = Standard_False; + Standard_Boolean ScaleIsModified = Standard_False; + Standard_Boolean CustomIsModified = Standard_False; (MyViewOrientation.ViewReferencePoint ()).Coord (X, Y, Z); VUPIsModified = - MyCView.Orientation.ViewReferencePoint.x != float (X) - || MyCView.Orientation.ViewReferencePoint.y != float (Y) - || MyCView.Orientation.ViewReferencePoint.z != float (Z); + MyCView.Orientation.ViewReferencePoint.x != float (X) + || MyCView.Orientation.ViewReferencePoint.y != float (Y) + || MyCView.Orientation.ViewReferencePoint.z != float (Z); MyCView.Orientation.ViewReferencePoint.x = float (X); MyCView.Orientation.ViewReferencePoint.y = float (Y); MyCView.Orientation.ViewReferencePoint.z = float (Z); (MyViewOrientation.ViewReferencePlane ()).Coord (X, Y, Z); VRPIsModified = - MyCView.Orientation.ViewReferencePlane.x != float (X) - || MyCView.Orientation.ViewReferencePlane.y != float (Y) - || MyCView.Orientation.ViewReferencePlane.z != float (Z); + MyCView.Orientation.ViewReferencePlane.x != float (X) + || MyCView.Orientation.ViewReferencePlane.y != float (Y) + || MyCView.Orientation.ViewReferencePlane.z != float (Z); MyCView.Orientation.ViewReferencePlane.x = float (X); MyCView.Orientation.ViewReferencePlane.y = float (Y); MyCView.Orientation.ViewReferencePlane.z = float (Z); (MyViewOrientation.ViewReferenceUp ()).Coord (X, Y, Z); VRUIsModified = - MyCView.Orientation.ViewReferenceUp.x != float (X) - || MyCView.Orientation.ViewReferenceUp.y != float (Y) - || MyCView.Orientation.ViewReferenceUp.z != float (Z); + MyCView.Orientation.ViewReferenceUp.x != float (X) + || MyCView.Orientation.ViewReferenceUp.y != float (Y) + || MyCView.Orientation.ViewReferenceUp.z != float (Z); MyCView.Orientation.ViewReferenceUp.x = float (X); MyCView.Orientation.ViewReferenceUp.y = float (Y); MyCView.Orientation.ViewReferenceUp.z = float (Z); -Standard_Real Sx, Sy, Sz; - - MyViewOrientation.AxialScale(Sx, Sy, Sz); - ScaleIsModified = - MyCView.Orientation.ViewScaleX != float (X) - || MyCView.Orientation.ViewScaleY != float (Y) - || MyCView.Orientation.ViewScaleZ != float (Z); - MyCView.Orientation.ViewScaleX = float (Sx); - MyCView.Orientation.ViewScaleY = float (Sy); - MyCView.Orientation.ViewScaleZ = float (Sz); + MyViewOrientation.AxialScale(X, Y, Z); + ScaleIsModified = + MyCView.Orientation.ViewScaleX != float (X) + || MyCView.Orientation.ViewScaleY != float (Y) + || MyCView.Orientation.ViewScaleZ != float (Z); + MyCView.Orientation.ViewScaleX = float (X); + MyCView.Orientation.ViewScaleY = float (Y); + MyCView.Orientation.ViewScaleZ = float (Z); CustomIsModified = - MyCView.Orientation.IsCustomMatrix != MyViewOrientation.IsCustomMatrix(); + MyCView.Orientation.IsCustomMatrix != MyViewOrientation.IsCustomMatrix(); MyCView.Orientation.IsCustomMatrix = MyViewOrientation.IsCustomMatrix(); if ( MyViewOrientation.IsCustomMatrix() ) { Standard_Integer i, j; for (i = 0; i < 4; i++) for (j = 0; j < 4; j++) { - if (!CustomIsModified) CustomIsModified = - MyCView.Orientation.ModelViewMatrix[i][j] != MyViewOrientation.MyModelViewMatrix->Value(i,j); - MyCView.Orientation.ModelViewMatrix[i][j] = MyViewOrientation.MyModelViewMatrix->Value(i,j); + if (!CustomIsModified) CustomIsModified = + MyCView.Orientation.ModelViewMatrix[i][j] != MyViewOrientation.MyModelViewMatrix->Value(i,j); } } + #ifdef TRACE_TRSF -cout << "Visual3d_View::ViewOrientationReset\n"; -if (VUPIsModified || VRPIsModified || VRUIsModified || CustomIsModified) -cout << "VUPIsModified : " << VUPIsModified - << ", VRPIsModified : " << VRPIsModified - << ", VRUIsModified : " << VRUIsModified - << ", CustomIsModified : " << CustomIsModified << "\n" << flush; -else -cout << "no modification\n" << flush; + cout << "Visual3d_View::ViewOrientationReset\n"; + if (VUPIsModified || VRPIsModified || VRUIsModified || ScaleIsModified || CustomIsModified) + cout << "VUPIsModified : " << VUPIsModified + << ", VRPIsModified : " << VRPIsModified + << ", VRUIsModified : " << VRUIsModified + << ", CustomIsModified : " << CustomIsModified + << ", ScaleIsModified : " << ScaleIsModified << "\n" << flush; + else + cout << "no modification\n" << flush; #endif // Restart if one of parameters is modified - if (VUPIsModified || VRPIsModified || VRUIsModified || CustomIsModified) { + if (!IsInitialized || VUPIsModified || VRPIsModified + || VRUIsModified || ScaleIsModified || CustomIsModified) { + + MyMatOfOriIsEvaluated = !VUPIsModified && !VRPIsModified + && !VRUIsModified && !ScaleIsModified; - if (VUPIsModified || VRPIsModified || VRUIsModified || CustomIsModified) { - MyMatOfOriIsModified = Standard_True; - MyMatOfOriIsEvaluated = Standard_False; - } - - if (! IsDefined ()) return; - -Standard_Boolean AWait = Standard_False; // => immediate update - MyGraphicDriver->ViewOrientation (MyCView, AWait); + if (! IsDefined ()) return; - Compute (); + Standard_Boolean AWait = Standard_False; // => immediate update + MyGraphicDriver->ViewOrientation (MyCView, AWait); + IsInitialized = Standard_True; + Compute (); - if (MyViewManager->UpdateMode () == Aspect_TOU_ASAP) Update (); + if (MyViewManager->UpdateMode () == Aspect_TOU_ASAP) Update (); } - } void Visual3d_View::SetViewMapping (const Visual3d_ViewMapping& VM) { @@ -1360,7 +1352,6 @@ Standard_Real um, vm, uM, vM; MyViewMapping.MyProjectionMatrix->Value(i,j); } - MyMatOfMapIsModified = Standard_True; MyMatOfMapIsEvaluated = Standard_False; if (! IsDefined ()) return; @@ -1429,7 +1420,6 @@ Standard_Real um, vm, uM, vM; MyViewMapping.MyProjectionMatrix->Value(i,j); } - MyMatOfMapIsModified = Standard_True; MyMatOfMapIsEvaluated = Standard_False; if (! IsDefined ()) return; @@ -1897,9 +1887,6 @@ Aspect_CLayer2d UnderCLayer; MyGraphicDriver->Update (MyCView, UnderCLayer, OverCLayer); //OSD::SetSignal (Standard_True); - MyMatOfMapIsModified = Standard_False; - MyMatOfOriIsModified = Standard_False; - } Visual3d_TypeOfAnswer Visual3d_View::AcceptDisplay (const Handle(Graphic3d_Structure)& AStructure) const { diff --git a/src/Visual3d/Visual3d_View.pxx b/src/Visual3d/Visual3d_View.pxx index 0520c39c67..30fff80045 100755 --- a/src/Visual3d/Visual3d_View.pxx +++ b/src/Visual3d/Visual3d_View.pxx @@ -28,14 +28,11 @@ #define MyViewManager ((Visual3d_ViewManager *) MyPtrViewManager) -#define MyMatOfMapIsModified MyCBitFields.bool1 -#define MyMatOfMapIsEvaluated MyCBitFields.bool2 -#define MyMatOfOriIsModified MyCBitFields.bool3 -#define MyMatOfOriIsEvaluated MyCBitFields.bool4 -#define DegenerateModeIsActive MyCBitFields.bool5 -#define AnimationModeIsActive MyCBitFields.bool6 -#ifdef G003 -#define ComputedModeIsActive MyCBitFields.bool7 -#endif +#define MyMatOfMapIsEvaluated MyCBitFields.bool1 +#define MyMatOfOriIsEvaluated MyCBitFields.bool2 +#define DegenerateModeIsActive MyCBitFields.bool3 +#define AnimationModeIsActive MyCBitFields.bool4 +#define IsInitialized MyCBitFields.bool5 +#define ComputedModeIsActive MyCBitFields.bool6 #endif -- 2.39.5