]> SALOME platform Git repositories - modules/visu.git/commitdiff
Salome HOME
Fix for the TC6.1.0: operations in Representation and Properties do not activate...
authorrnv <rnv@opencascade.com>
Thu, 18 Nov 2010 11:47:33 +0000 (11:47 +0000)
committerrnv <rnv@opencascade.com>
Thu, 18 Nov 2010 11:47:33 +0000 (11:47 +0000)
src/VISU_I/VISU_PointMap3d_i.cc
src/VISU_I/VISU_Prs3dUtils.cc
src/VISU_I/VISU_Prs3dUtils.hh
src/VISU_I/VISU_Prs3d_i.cc

index 973918268e3b371996d67fbeeff6da1328d5b1cf..f151528b21426a6310aa3880a20db9ab890ca8ac 100644 (file)
@@ -712,6 +712,7 @@ void VISU::PointMap3d_i::RemoveFromStudy()
 //----------------------------------------------------------------
 void VISU::PointMap3d_i::SetOffset(CORBA::Float theDx, CORBA::Float theDy, CORBA::Float theDz)
 {
+  VISU::TSetModified aModified(this);
   myOffset[0] = theDx;
   myOffset[1] = theDy;
   myOffset[2] = theDz;
index 60781b56423ccce1c83e27956b8c59d31ce2367b..77675648ba550e04d8ca47014677bf9a49e89571 100644 (file)
@@ -23,6 +23,8 @@
 //  Module : VISU
 //
 #include "VISU_Prs3dUtils.hh"
+#include "VISU_Prs3d_i.hh"
+#include "VISU_PointMap3d_i.hh"
 #include "SalomeApp_Study.h"
 #include "SALOME_Event.h"
 
@@ -31,8 +33,8 @@ namespace VISU
 {
   //----------------------------------------------------------------------------
   TSetModified
-  ::TSetModified(VISU::Prs3d_i* thePrs3d):
-    myPrs3d(thePrs3d)
+  ::TSetModified(VISU::PrsObject_i* thePrsObject):
+    myPrsObject(thePrsObject)
   {
     this->Modified();
   }
@@ -53,17 +55,29 @@ namespace VISU
       void
       Execute()
       {
-       VISU::Prs3d_i* aPrs3d = mySetModified->myPrs3d;
-
-       if(!aPrs3d || aPrs3d->GetActorEntry() == "")
-         return;
+       VISU::PrsObject_i* aPrsObject = mySetModified->myPrsObject;
+       if(!aPrsObject)
+               return;
+
+       VISU::Prs3d_i* aPrs3d;
+       VISU::PointMap3d_i* aPntMap;
+       SalomeApp_Study* aStudy;
+       unsigned long int time;
+       if( (aPrs3d = dynamic_cast<VISU::Prs3d_i*>(aPrsObject)) && aPrs3d->GetActorEntry() != "" ) {
+               aStudy = aPrs3d->GetGUIStudy();
+               time = aPrs3d->GetMTime();
+       } else if ( aPntMap = dynamic_cast<VISU::PointMap3d_i*>(aPrsObject) ) {
+               aStudy = aPntMap->GetGUIStudy();
+               time = aPntMap->GetMTime();
+       } else 
+               return;
        
-       if(aPrs3d->GetMTime() > mySetModified->GetMTime()){
-         if(SalomeApp_Study* aStudy = aPrs3d->GetGUIStudy())
+       if(time > mySetModified->GetMTime()){
+         if(aStudy)
            aStudy->Modified();
        }
-      }
-    };
+         }
+       };
 
     ProcessVoidEvent(new TEvent(this));
   }
index 13d3abb1a09f71073f4b468cfc968721df0bc900..51d325751598bc4dd61e154534cf5cee9e893025 100644 (file)
@@ -25,7 +25,7 @@
 #ifndef __VISU_PRS3D_UTILS_H__
 #define __VISU_PRS3D_UTILS_H__
 
-#include "VISU_Prs3d_i.hh"
+#include "VISU_PrsObject_i.hh"
 
 #include <vtkTimeStamp.h>
 
@@ -34,16 +34,16 @@ namespace VISU
   //----------------------------------------------------------------------------
   struct TSetModified: vtkTimeStamp
   {
-    VISU::Prs3d_i* myPrs3d;
+    VISU::PrsObject_i* myPrsObject;
     
-    TSetModified(VISU::Prs3d_i* thePrs3d);
+    TSetModified(VISU::PrsObject_i* thePrsObject);
     
     ~TSetModified();
   };
-
-  Standard_EXPORT std::string  ToFormat( const int thePrec );
-  Standard_EXPORT int ToPrecision( const char* theFormat );
-
+  
+  VISU_I_EXPORT std::string  ToFormat( const int thePrec );
+  VISU_I_EXPORT int ToPrecision( const char* theFormat );
+  
 
   //----------------------------------------------------------------------------
 }
index 21a797ae3b033073b9108a99f0aa25581759c2e4..2741f3286433cdfae055cf74e36c93f50f941975 100644 (file)
@@ -675,6 +675,7 @@ void
 VISU::Prs3d_i
 ::SetOffset(const CORBA::Float* theOffsets)
 {
+  VISU::TSetModified aModified(this);
   myOffset[0] = theOffsets[0];
   myOffset[1] = theOffsets[1];
   myOffset[2] = theOffsets[2];
@@ -688,6 +689,7 @@ VISU::Prs3d_i
            CORBA::Float theDy,
            CORBA::Float theDz)
 {
+  VISU::TSetModified aModified(this);
   myOffset[0] = theDx;
   myOffset[1] = theDy;
   myOffset[2] = theDz;