X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESH%2FSMESH_Algo.hxx;h=03154a989fcee01691d6d04984c20881bcefef37;hp=8739abaca6f510d788e3823698cf6aabe6fee069;hb=refs%2Ftags%2FV9_0_0;hpb=7eda9ca931ed2a11cb5e4637e4ffe19f5c061115 diff --git a/src/SMESH/SMESH_Algo.hxx b/src/SMESH/SMESH_Algo.hxx index 8739abaca..03154a989 100644 --- a/src/SMESH/SMESH_Algo.hxx +++ b/src/SMESH/SMESH_Algo.hxx @@ -20,7 +20,7 @@ // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// SMESH SMESH : implementaion of SMESH idl descriptions +// SMESH SMESH : implementation of SMESH idl descriptions // File : SMESH_Algo.hxx // Author : Paul RASCLE, EDF // Module : SMESH @@ -35,8 +35,6 @@ #include "SMESH_ComputeError.hxx" #include "SMESH_Hypothesis.hxx" -#include -#include #include #include @@ -54,6 +52,7 @@ class SMESH_Mesh; class SMESH_MesherHelper; class SMESH_ProxyMesh; class SMESH_subMesh; +class TopoDS_Edge; class TopoDS_Face; class TopoDS_Shape; class TopoDS_Vertex; @@ -70,7 +69,7 @@ typedef std::map< SMESH_subMesh*, std::vector >::iterator MapShapeNbElemsIt * Methods of the class are grouped into several parts: * - main lifecycle methods, like Compute() * - methods describing features of the algorithm, like NeedShape() - * - methods related to dependencies between sub-meshes imposed by the algorith + * - methods related to dependencies between sub-meshes imposed by the algorithm * - static utilities, like EdgeLength() */ // ================================================================================== @@ -103,10 +102,9 @@ class SMESH_EXPORT SMESH_Algo : public SMESH_Hypothesis /*! * \brief Creates algorithm * \param hypId - algorithm ID - * \param studyId - study ID * \param gen - SMESH_Gen */ - SMESH_Algo(int hypId, int studyId, SMESH_Gen * gen); + SMESH_Algo(int hypId, SMESH_Gen * gen); /*! * \brief Destructor @@ -166,6 +164,15 @@ class SMESH_EXPORT SMESH_Algo : public SMESH_Hypothesis */ virtual bool Compute(SMESH_Mesh & aMesh, SMESH_MesherHelper* aHelper); + /*! + * \brief Return true if the algorithm can mesh a given shape + * \param [in] aShape - shape to check + * \param [in] toCheckAll - if true, this check returns OK if all shapes are OK, + * else, returns OK if at least one shape is OK + * \retval bool - \c true by default + */ + virtual bool IsApplicableToShape(const TopoDS_Shape & shape, bool toCheckAll) const; + /*! * \brief Sets _computeCanceled to true. It's usage depends on * implementation of a particular mesher. @@ -256,7 +263,7 @@ public: // ================================================================== // SMESH_Hypothesis::GetDim(); - // 1 - dimention of target mesh + // 1 - dimension of target mesh bool OnlyUnaryInput() const { return _onlyUnaryInput; } // 2 - is collection of tesselatable shapes inacceptable as input; @@ -270,7 +277,7 @@ public: // 3 - is a Dim-1 mesh prerequisite bool NeedShape() const { return _requireShape; } - // 4 - is shape existance required + // 4 - is shape existence required bool SupportSubmeshes() const { return _supportSubmeshes; } // 5 - whether supports submeshes if !NeedDiscreteBoundary() @@ -349,7 +356,7 @@ public: * \param E2 - the 2nd edge * \retval GeomAbs_Shape - regularity at the junction between E1 and E2 */ - static GeomAbs_Shape Continuity(TopoDS_Edge E1, TopoDS_Edge E2); + static GeomAbs_Shape Continuity(const TopoDS_Edge& E1, const TopoDS_Edge& E2); /*! * \brief Return true if an edge can be considered as a continuation of another @@ -364,7 +371,7 @@ public: /*! * \brief Return true if an edge has no 3D curve */ - static bool isDegenerated( const TopoDS_Edge & E ); + static bool isDegenerated( const TopoDS_Edge & E, const bool checkLength=false ); /*! * \brief Return the node built on a vertex @@ -467,19 +474,19 @@ protected: class SMESH_EXPORT SMESH_0D_Algo: public SMESH_Algo { public: - SMESH_0D_Algo(int hypId, int studyId, SMESH_Gen* gen); + SMESH_0D_Algo(int hypId, SMESH_Gen* gen); }; class SMESH_EXPORT SMESH_1D_Algo: public SMESH_Algo { public: - SMESH_1D_Algo(int hypId, int studyId, SMESH_Gen* gen); + SMESH_1D_Algo(int hypId, SMESH_Gen* gen); }; class SMESH_EXPORT SMESH_2D_Algo: public SMESH_Algo { public: - SMESH_2D_Algo(int hypId, int studyId, SMESH_Gen* gen); + SMESH_2D_Algo(int hypId, SMESH_Gen* gen); /*! * \brief Method in which an algorithm generating a structured mesh * fixes positions of in-face nodes after there movement @@ -492,7 +499,7 @@ public: class SMESH_EXPORT SMESH_3D_Algo: public SMESH_Algo { public: - SMESH_3D_Algo(int hypId, int studyId, SMESH_Gen* gen); + SMESH_3D_Algo(int hypId, SMESH_Gen* gen); }; #endif