X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESH%2FSMESH_Algo.hxx;h=d548be2f9526920440cff77c834f884bd98ea9eb;hp=2cc313af40c8bd8443f26b1659b9b8b59d5b7dc3;hb=a274ade365bd0f0e19d56c577acc4a13aa1972a7;hpb=6d32f944a0a115b6419184c50b57bf7c4eef5786 diff --git a/src/SMESH/SMESH_Algo.hxx b/src/SMESH/SMESH_Algo.hxx index 2cc313af4..d548be2f9 100644 --- a/src/SMESH/SMESH_Algo.hxx +++ b/src/SMESH/SMESH_Algo.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2019 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2021 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -36,6 +36,7 @@ #include "SMESH_Hypothesis.hxx" #include +#include #include #include @@ -89,10 +90,11 @@ class SMESH_EXPORT SMESH_Algo : public SMESH_Hypothesis std::set _outElemTypes; // produced types of mesh elements std::string _label; // GUI type name + Features(): _dim( -1 ) {} bool IsCompatible( const Features& algo2 ) const; }; /*! - * \brief Returns a structure describing algorithm features + * \brief Return a structure describing algorithm features */ static const Features& GetFeatures( const std::string& algoType ); const Features& GetFeatures() const { return GetFeatures( _name ); } @@ -126,7 +128,7 @@ class SMESH_EXPORT SMESH_Algo : public SMESH_Hypothesis virtual std::istream & LoadFrom(std::istream & load); /*! - * \brief Returns all types of compatible hypotheses + * \brief Return all types of compatible hypotheses */ const std::vector < std::string > & GetCompatibleHypothesis(); @@ -195,7 +197,7 @@ class SMESH_EXPORT SMESH_Algo : public SMESH_Hypothesis MapShapeNbElems& aResMap) = 0; /*! - * \brief Returns a list of compatible hypotheses used to mesh a shape + * \brief Return a list of compatible hypotheses used to mesh a shape * \param aMesh - the mesh * \param aShape - the shape * \param ignoreAuxiliary - do not include auxiliary hypotheses in the list @@ -212,22 +214,11 @@ class SMESH_EXPORT SMESH_Algo : public SMESH_Hypothesis const TopoDS_Shape & aShape, const bool ignoreAuxiliary=true) const; /*! - * \brief Returns a list of compatible hypotheses assigned to a shape in a mesh - * \param aMesh - the mesh - * \param aShape - the shape - * \param ignoreAuxiliary - do not include auxiliary hypotheses in the list - * \retval const std::list - hypotheses list - * - * List the relevant hypothesis associated to the shape. Relevant hypothesis - * have a name (type) listed in the algorithm. Hypothesis associated to - * father shape -are not- taken into account (see GetUsedHypothesis) + * \brief Return sub-shape to which hypotheses returned by GetUsedHypothesis() are assigned */ - const std::list & - GetAppliedHypothesis(SMESH_Mesh & aMesh, - const TopoDS_Shape & aShape, - const bool ignoreAuxiliary=true) const; + virtual const std::list < TopoDS_Shape > & GetAssignedShapes() const; /*! - * \brief Returns the filter recognizing only compatible hypotheses + * \brief Return the filter recognizing only compatible hypotheses * \param ignoreAuxiliary - make filter ignore compatible auxiliary hypotheses * \retval SMESH_HypoFilter* - the filter that can be NULL */ @@ -441,8 +432,8 @@ protected: const SMESH_HypoFilter * _compatibleAllHypFilter; const SMESH_HypoFilter * _compatibleNoAuxHypFilter; std::vector _compatibleHypothesis; - std::list _appliedHypList; std::list _usedHypList; + std::list _assigedShapeList; // _usedHypList assigned to // Algo features influencing which Compute() and how is called: @@ -482,12 +473,28 @@ class SMESH_EXPORT SMESH_1D_Algo: public SMESH_Algo { public: SMESH_1D_Algo(int hypId, SMESH_Gen* gen); + /*! + * \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; }; class SMESH_EXPORT SMESH_2D_Algo: public SMESH_Algo { public: SMESH_2D_Algo(int hypId, SMESH_Gen* gen); + /*! + * \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 Method in which an algorithm generating a structured mesh * fixes positions of in-face nodes after there movement @@ -501,6 +508,14 @@ class SMESH_EXPORT SMESH_3D_Algo: public SMESH_Algo { public: SMESH_3D_Algo(int hypId, SMESH_Gen* gen); + /*! + * \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; }; #endif