28 #ifndef _SMESH_ALGO_HXX_
29 #define _SMESH_ALGO_HXX_
37 #include <TopoDS_Shape.hxx>
38 #include <TopoDS_Edge.hxx>
39 #include <GeomAbs_Shape.hxx>
82 virtual std::ostream &
SaveTo(std::ostream & save);
89 virtual std::istream &
LoadFrom(std::istream & load);
94 const std::vector < std::string > & GetCompatibleHypothesis();
103 virtual bool CheckHypothesis(
SMESH_Mesh& aMesh,
151 virtual const std::list <const SMESHDS_Hypothesis *> &
154 const bool ignoreAuxiliary=
true);
166 const std::list <const SMESHDS_Hypothesis *> &
169 const bool ignoreAuxiliary=
true);
177 const bool ignoreAuxiliary)
const;
190 void InitComputeError();
253 static bool GetNodeParamOnEdge(
const SMESHDS_Mesh* theMesh,
254 const TopoDS_Edge& theEdge,
255 std::vector< double > & theParams);
264 static bool GetSortedNodesOnEdge(
const SMESHDS_Mesh* theMesh,
265 const TopoDS_Edge& theEdge,
266 const bool ignoreMediumNodes,
267 std::map< double, const SMDS_MeshNode* > & theNodes);
275 static bool IsReversedSubMesh (
const TopoDS_Face& theFace,
282 static double EdgeLength(
const TopoDS_Edge & E);
290 static GeomAbs_Shape Continuity(
const TopoDS_Edge & E1,
const TopoDS_Edge & E2);
295 static bool IsContinuous(
const TopoDS_Edge & E1,
const TopoDS_Edge & E2) {
296 return ( Continuity( E1, E2 ) >= GeomAbs_G1 );
305 static const SMDS_MeshNode* VertexNode(
const TopoDS_Vertex& V,