1 //=============================================================================
2 // File : SMESH_Algo.hxx
3 // Created : sam mai 18 09:20:46 CEST 2002
4 // Author : Paul RASCLE, EDF
6 // Copyright : EDF 2002
8 //=============================================================================
10 #ifndef _SMESH_ALGO_HXX_
11 #define _SMESH_ALGO_HXX_
13 #include "SMESH_Hypothesis.hxx"
15 #include <TopoDS_Shape.hxx>
16 #include <TopoDS_Edge.hxx>
26 public SMESH_Hypothesis
29 SMESH_Algo(int hypId, int studyId, SMESH_Gen* gen);
30 virtual ~SMESH_Algo();
32 const vector<string> & GetCompatibleHypothesis();
33 virtual bool CheckHypothesis(SMESH_Mesh& aMesh,
34 const TopoDS_Shape& aShape);
36 virtual bool Compute(SMESH_Mesh& aMesh,
37 const TopoDS_Shape& aShape);
39 virtual const list<SMESHDS_Hypothesis*>&
40 GetUsedHypothesis(SMESH_Mesh& aMesh,
41 const TopoDS_Shape& aShape);
43 const list<SMESHDS_Hypothesis*>&
44 GetAppliedHypothesis(SMESH_Mesh& aMesh,
45 const TopoDS_Shape& aShape);
47 static double EdgeLength(const TopoDS_Edge& E);
49 virtual ostream & SaveTo(ostream & save);
50 virtual istream & LoadFrom(istream & load);
51 friend ostream& operator << (ostream & save, SMESH_Algo & hyp);
52 friend istream& operator >> (istream & load, SMESH_Algo & hyp);
55 vector<string> _compatibleHypothesis;
56 list<SMESHDS_Hypothesis*> _appliedHypList;
57 list<SMESHDS_Hypothesis*> _usedHypList;