+ virtual int GetDim() const;
+ int GetStudyId() const;
+ SMESH_Gen* GetGen() const { return (SMESH_Gen*) _gen; }
+ virtual int GetShapeType() const;
+ virtual const char* GetLibName() const;
+ virtual void NotifySubMeshesHypothesisModification();
+ void SetLibName(const char* theLibName);
+
+ //void SetParameters(const char *theParameters);
+ //char* GetParameters() const;
+
+ // void SetLastParameters(const char* theParameters);
+ // char* GetLastParameters() const;
+ // void ClearParameters();
+
+ /*!
+ * \brief Initialize my parameter values by the mesh built on the geometry
+ * \param theMesh - the built mesh
+ * \param theShape - the geometry of interest
+ * \retval bool - true if parameter values have been successfully defined
+ */
+ virtual bool SetParametersByMesh(const SMESH_Mesh* theMesh, const TopoDS_Shape& theShape)=0;
+
+ struct TDefaults
+ {
+ double _elemLength;
+ int _nbSegments;
+ TopoDS_Shape* _shape; // future shape of the mesh being created
+ };
+ /*!
+ * \brief Initialize my parameter values by default parameters.
+ * \retval bool - true if parameter values have been successfully defined
+ */
+ virtual bool SetParametersByDefaults(const TDefaults& dflts, const SMESH_Mesh* theMesh=0)=0;
+
+ /*!
+ * \brief Return true if me is an auxiliary hypothesis
+ * \retval bool - auxiliary or not
+ *
+ * An auxiliary hypothesis is optional, i.e. an algorithm
+ * can work without it and another hypothesis of the same
+ * dimention can be assigned to the shape
+ */
+ virtual bool IsAuxiliary() const
+ { return GetType() == PARAM_ALGO && _param_algo_dim < 0; }
+
+ /*!
+ * \brief Find a mesh with given persistent ID
+ */
+ SMESH_Mesh* GetMeshByPersistentID(int id);