Salome HOME
PAL10467. Add "Quadrangle Preference" hypothesis for "Quadrangle(Mapping)" algo
[modules/smesh.git] / src / SMESH_I / SMESH_2smeshpy.hxx
index 3ee18068486695ffe2597a0848ddada234dcd72e..ac92276c32fd4944b261d87a9fc7b819fc9caf61 100644 (file)
@@ -27,6 +27,8 @@
  * 
  * The only API method here is SMESH_2smeshpy::ConvertScript(), the rest ones are
  * for internal usage
+ *
+ * See comments to _pyHypothesis class to know how to assure convertion of a new hypothesis
  */
 
 class Resource_DataMapOfAsciiStringAsciiString;
@@ -116,6 +118,7 @@ public:
   static TCollection_AsciiString GetWord( const TCollection_AsciiString & theSring,
                                           int & theStartPos, const bool theForward,
                                           const bool dotIsWord = false);
+  DEFINE_STANDARD_RTTI (_pyCommand)
 };
 
 /*!
@@ -133,6 +136,8 @@ public:
   int GetCommandNb() { return myCreationCmd->GetOrderNb(); }
   virtual void Process(const Handle(_pyCommand) & theCommand) = 0;
   virtual void Flush() = 0;
+
+  DEFINE_STANDARD_RTTI (_pyObject)
 };
 
 /*!
@@ -160,6 +165,8 @@ private:
   std::list< Handle(_pyCommand) >    myCommands;
   int                                myNbCommands;
   Resource_DataMapOfAsciiStringAsciiString& myID2AccessorMethod;
+
+  DEFINE_STANDARD_RTTI (_pyGen)
 };
 
 /*!
@@ -177,10 +184,25 @@ public:
 private:
   static void AddMeshAccess( const Handle(_pyCommand)& theCommand )
   { theCommand->SetObject( theCommand->GetObject() + ".GetMesh()" ); }
+
+  DEFINE_STANDARD_RTTI (_pyMesh)
 };
 
 /*!
- * \brief Root class for smesh.Mesh_Algorithm
+ * \brief Root class for hypothesis
+ *
+ * HOWTO assure convertion of a new hypothesis
+ * In NewHypothesis():
+ * 1. add a case for the name of the new hypothesis and
+ * 2. initialize _pyHypothesis fields:
+ *    . myDim - hypothesis dimention;
+ *    . myType - type name of the algorithm creating the hypothesis;
+ *    . myCreationMethod - method name of the algorithm creating the hypothesis;
+ *    . append to myArgMethods interface methods setting param values in the
+ *    order they are used when myCreationMethod is called. It is supposed that
+ *    each interface method sets only one parameter, if it is not so, you are
+ *    to derive a specific class from _pyHypothesis that would redefine Process(),
+ *    see _pyComplexParamHypo for example
  */
 class _pyHypothesis: public _pyObject
 {
@@ -211,6 +233,8 @@ public:
   //     void SetGeom( const _pyID& theGeomID ) { myGeom = theGeomID; }
   void Process( const Handle(_pyCommand)& theCommand);
   void Flush();
+
+  DEFINE_STANDARD_RTTI (_pyHypothesis)
 };
 
 /*!
@@ -221,6 +245,8 @@ class _pyComplexParamHypo: public _pyHypothesis
 public:
   _pyComplexParamHypo(const Handle(_pyCommand)& theCreationCmd): _pyHypothesis(theCreationCmd) {}
   void Process( const Handle(_pyCommand)& theCommand);
+
+  DEFINE_STANDARD_RTTI (_pyComplexParamHypo)
 };
 DEFINE_STANDARD_HANDLE (_pyComplexParamHypo, _pyHypothesis);
 
@@ -234,6 +260,8 @@ public:
   _pyNumberOfSegmentsHyp(const Handle(_pyCommand)& theCrCmd): _pyHypothesis(theCrCmd) {}
   virtual bool Addition2Creation( const Handle(_pyCommand)& theAdditionCmd,
                                   const _pyID&              theMesh);
+
+  DEFINE_STANDARD_RTTI (_pyNumberOfSegmentsHyp)
 };
 DEFINE_STANDARD_HANDLE (_pyNumberOfSegmentsHyp, _pyHypothesis);
 
@@ -246,6 +274,8 @@ public:
   _pyAlgorithm(const Handle(_pyCommand)& theCreationCmd);
   virtual bool Addition2Creation( const Handle(_pyCommand)& theAdditionCmd,
                                   const _pyID&              theMesh);
+
+  DEFINE_STANDARD_RTTI (_pyAlgorithm)
 };
 
 #endif