//============================================================================= // File : SMESH_Algo.hxx // Created : sam mai 18 09:20:46 CEST 2002 // Author : Paul RASCLE, EDF // Project : SALOME // Copyright : EDF 2002 // $Header$ //============================================================================= #ifndef _SMESH_ALGO_HXX_ #define _SMESH_ALGO_HXX_ #include "SMESH_Hypothesis.hxx" #include #include #include #include #include class SMESH_gen; class SMESH_Mesh; class SMESH_Algo: public SMESH_Hypothesis { public: SMESH_Algo(int hypId, int studyId, SMESH_Gen* gen); virtual ~SMESH_Algo(); const vector & GetCompatibleHypothesis(); virtual bool CheckHypothesis(SMESH_Mesh& aMesh, const TopoDS_Shape& aShape); virtual bool Compute(SMESH_Mesh& aMesh, const TopoDS_Shape& aShape); virtual const list& GetUsedHypothesis(SMESH_Mesh& aMesh, const TopoDS_Shape& aShape); const list& GetAppliedHypothesis(SMESH_Mesh& aMesh, const TopoDS_Shape& aShape); static double EdgeLength(const TopoDS_Edge& E); virtual ostream & SaveTo(ostream & save); virtual istream & LoadFrom(istream & load); friend ostream& operator << (ostream & save, SMESH_Algo & hyp); friend istream& operator >> (istream & load, SMESH_Algo & hyp); protected: vector _compatibleHypothesis; list _appliedHypList; list _usedHypList; }; #endif