+ virtual int GetDim() const;
+ int GetStudyId() const;
+ virtual void NotifySubMeshesHypothesisModification();
+ virtual int GetShapeType() const;
+ virtual const char* GetLibName() const;
+ 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;
+ };
+ /*!
+ * \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; }