]> SALOME platform Git repositories - modules/visu.git/commitdiff
Salome HOME
Fix for bug PAL13727 : EDF 323 VISU : anim properties accessible via TUI : V3_2_3pre1
authormkr <mkr@opencascade.com>
Wed, 1 Nov 2006 16:33:06 +0000 (16:33 +0000)
committermkr <mkr@opencascade.com>
Wed, 1 Nov 2006 16:33:06 +0000 (16:33 +0000)
add ApplyProperties(...) method for Animation object.

idl/VISU_Gen.idl
src/VISU_I/VISU_TimeAnimation.cxx
src/VISU_I/VISU_TimeAnimation.h

index c83a4dc70ee10a2b5e744b0860a551864cb48de4..3001e0b04955ac73c6ad334c7fbc142cb60f0373 100644 (file)
@@ -1353,6 +1353,17 @@ module VISU {
      * Gets the animation mode.
      */
     AnimationMode getAnimationMode();
+
+    /*!
+     * Apply the presentation properties to all fields. The exception is raised in the following cases:
+     * 1) presentations for the given field is not yet created;
+     * 2) invalid dynamic cast of the given presentation to VISU::ColoredPrs3d_i;
+     * 3) the MED file is not the same;
+     * 4) the mesh name is not the same;
+     * 5) the field name is not the same;
+     * 6) the entity is not the same.
+     */
+    void ApplyProperties(in long theFieldNum, in ColoredPrs3d thePrs);
   };
 
   /*! \brief Interface %Result
index d2c26193c7deb2ffb9d91fe0d8a5a7767bc63273..f751e5f669a9af0b849823d7d77d82c273e8227f 100644 (file)
@@ -1634,6 +1634,36 @@ void VISU_TimeAnimation::onViewDeleted()
   myView = 0;
 }
 
+void VISU_TimeAnimation::ApplyProperties(CORBA::Long theFieldNum, VISU::ColoredPrs3d_ptr thePrs)
+  throw (SALOME::SALOME_Exception)
+{
+  FieldData& aData = myFieldsLst[theFieldNum];
+    
+  if ( aData.myPrs.empty() )
+    throw SALOME_Exception(LOCALIZED("Error : presentations for the given field is not yet created!"));
+
+  VISU::ColoredPrs3d_i* aPrs_i = dynamic_cast<VISU::ColoredPrs3d_i*>(GetServant(thePrs).in());
+
+  if ( !aPrs_i ) 
+    throw SALOME_Exception(LOCALIZED("Error : invalid dynamic cast of the given presentation to VISU::ColoredPrs3d_i"));
+  if ( aPrs_i->GetResult() != aData.myPrs[0]->GetResult() )
+    throw SALOME_Exception(LOCALIZED("Error : the MED file is not the same!"));
+                          
+  if ( aPrs_i->GetMeshName() != aData.myPrs[0]->GetMeshName() ) 
+    throw SALOME_Exception(LOCALIZED("Error : the mesh name is not the same!"));
+
+  if ( aPrs_i->GetFieldName() != aData.myPrs[0]->GetFieldName() )
+    throw SALOME_Exception(LOCALIZED("Error : the field name is not the same!"));
+
+  if ( aPrs_i->GetEntity() != aData.myPrs[0]->GetEntity() )
+    throw SALOME_Exception(LOCALIZED("Error : the entity is not the same!"));
+  
+  for (int i = 0; i < aData.myNbFrames; i++) {
+    aData.myPrs[i]->SameAsParams(aPrs_i);
+  }
+  
+}
 
 //========================================================================
 //========================================================================
@@ -1914,3 +1944,9 @@ VISU::Animation::AnimationMode VISU_TimeAnimation_i::getAnimationMode()
 {
   return VISU::Animation::AnimationMode(myAnim->getAnimationMode());
 }
+
+void VISU_TimeAnimation_i::ApplyProperties(CORBA::Long theFieldNum, VISU::ColoredPrs3d_ptr thePrs)
+  throw (SALOME::SALOME_Exception)
+{
+  myAnim->ApplyProperties(theFieldNum, thePrs);
+}
index 07db1a6533d7676a41c2bb48347d7a574174eaee..b0062a3c5793a803b3db469eb39a83aa38a34ad8 100644 (file)
@@ -166,6 +166,8 @@ class VISU_TimeAnimation: public QObject, public QThread
   void setAnimationMode(int theMode) { myAnimationMode = theMode; }
   int  getAnimationMode() { return myAnimationMode; }
 
+  void ApplyProperties(CORBA::Long theFieldNum, VISU::ColoredPrs3d_ptr thePrs) throw (SALOME::SALOME_Exception);
+
  public slots:
   void setProportionalSlot(bool theProp) { myProportional = theProp; }
   void setCyclingSlot(bool theCycle) { myCycling = theCycle; }
@@ -279,6 +281,8 @@ public:
 
   virtual void setAnimationMode(VISU::Animation::AnimationMode theMode);
   virtual VISU::Animation::AnimationMode getAnimationMode();
+
+  virtual void ApplyProperties(CORBA::Long theFieldNum, VISU::ColoredPrs3d_ptr thePrs) throw (SALOME::SALOME_Exception);
 };
 
 #endif  //VISU_TIMEANIMATION_H