]> SALOME platform Git repositories - modules/visu.git/commitdiff
Salome HOME
Fix for Bug IPAL15065
authorapo <apo@opencascade.com>
Thu, 17 May 2007 08:06:14 +0000 (08:06 +0000)
committerapo <apo@opencascade.com>
Thu, 17 May 2007 08:06:14 +0000 (08:06 +0000)
 - IOLS. Representation option works first time only.
(now it is necessary to call myParamsTime.Modified() inside of Prs3d sub classes when a presentation parameter is changed)

src/VISU_I/VISU_Mesh_i.cc

index 9504d29b6724fce7bf39e6bd0626ae36ac34f23f..45669d75b108cd6fba37772f8d4134c851e289f9 100644 (file)
@@ -30,6 +30,7 @@
 
 #include "VISU_MeshAct.h"
 #include "VISU_MeshPL.hxx"
+#include "VISU_PipeLineUtils.hxx"
 #include "VISU_Convertor.hxx"
 
 #include "SALOME_Event.hxx"
@@ -44,6 +45,20 @@ static int MYDEBUG = 0;
 
 static int INCMEMORY = 4;
 
+//----------------------------------------------------------------------------
+namespace
+{
+  bool
+  IsSameColor(const SALOMEDS::Color& theLeft,
+             const SALOMEDS::Color& theRight)
+  {
+    return 
+      VISU::CheckIsSameValue(theLeft.R, theRight.R) &&
+      VISU::CheckIsSameValue(theLeft.G, theRight.G) &&
+      VISU::CheckIsSameValue(theLeft.B, theRight.B);
+  }
+}
+
 //----------------------------------------------------------------------------
 int VISU::Mesh_i::myNbPresent = 0;
 
@@ -314,7 +329,11 @@ void
 VISU::Mesh_i
 ::SetCellColor(const SALOMEDS::Color& theColor) 
 { 
+  if(IsSameColor(myCellColor, theColor))
+    return;
+
   myCellColor = theColor;
+  myParamsTime.Modified();
 }
 
 
@@ -332,7 +351,11 @@ void
 VISU::Mesh_i
 ::SetNodeColor(const SALOMEDS::Color& theColor) 
 { 
+  if(IsSameColor(myNodeColor, theColor))
+    return;
+
   myNodeColor = theColor;
+  myParamsTime.Modified();
 }
 
 
@@ -350,7 +373,11 @@ void
 VISU::Mesh_i
 ::SetLinkColor(const SALOMEDS::Color& theColor) 
 { 
+  if(IsSameColor(myLinkColor, theColor))
+    return;
+
   myLinkColor = theColor;
+  myParamsTime.Modified();
 }
 
 
@@ -368,7 +395,11 @@ void
 VISU::Mesh_i
 ::SetPresentationType(VISU::PresentationType theType) 
 { 
+  if(myPresentType == theType)
+    return;
+
   myPresentType = theType;
+  myParamsTime.Modified();
 }