#include "SMESH_ComputeError.hxx"
#include "SMESH_Hypothesis.hxx"
-#include <TopoDS_Shape.hxx>
-#include <TopoDS_Edge.hxx>
#include <GeomAbs_Shape.hxx>
#include <string>
class SMESH_MesherHelper;
class SMESH_ProxyMesh;
class SMESH_subMesh;
+class TopoDS_Edge;
class TopoDS_Face;
class TopoDS_Shape;
class TopoDS_Vertex;
*/
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.
// ==================================================================
// 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;
// 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()
* \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
/*!
* \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