1 //=============================================================================
2 // File : SMESH_MEFISTO_2D.hxx
3 // Created : sam mai 18 08:10:50 CEST 2002
4 // Author : Paul RASCLE, EDF
6 // Copyright : EDF 2002
8 //=============================================================================
10 #ifndef _SMESH_MEFISTO_2D_HXX_
11 #define _SMESH_MEFISTO_2D_HXX_
13 #include "SMESH_2D_Algo.hxx"
14 #include "SMESH_MaxElementArea.hxx"
15 #include "SMESH_LengthFromEdges.hxx"
18 #include <TopoDS_Face.hxx>
22 class SMESH_MEFISTO_2D:
26 SMESH_MEFISTO_2D(int hypId, int studyId, SMESH_Gen* gen);
27 virtual ~SMESH_MEFISTO_2D();
29 virtual bool CheckHypothesis(SMESH_Mesh& aMesh,
30 const TopoDS_Shape& aShape);
32 virtual bool Compute(SMESH_Mesh& aMesh,
33 const TopoDS_Shape& aShape);
35 double ComputeEdgeElementLength(SMESH_Mesh& aMesh,
36 const TopoDS_Shape& aShape);
38 void LoadPoints(SMESH_Mesh& aMesh,
43 map<int,int>& mefistoToDS);
45 void ComputeScaleOnFace(SMESH_Mesh& aMesh,
46 const TopoDS_Face& aFace,
50 void StoreResult (SMESH_Mesh& aMesh,
51 Z nbst, R2* uvst, Z nbt, Z* nust,
52 const TopoDS_Face& F, bool faceIsForward,
53 map<int,int>& mefistoToDS);
55 ostream & SaveTo(ostream & save);
56 istream & LoadFrom(istream & load);
57 friend ostream & operator << (ostream & save, SMESH_MEFISTO_2D & hyp);
58 friend istream & operator >> (istream & load, SMESH_MEFISTO_2D & hyp);
62 double _maxElementArea;
63 SMESH_MaxElementArea* _hypMaxElementArea;
64 SMESH_LengthFromEdges* _hypLengthFromEdges;