1 //=============================================================================
2 // File : SMESH_Quadrangle_2D.hxx
3 // Created : sam mai 18 08:11:36 CEST 2002
4 // Author : Paul RASCLE, EDF
6 // Copyright : EDF 2002
8 //=============================================================================
10 #ifndef _SMESH_QUADRANGLE_2D_HXX_
11 #define _SMESH_QUADRANGLE_2D_HXX_
13 #include "SMESH_2D_Algo.hxx"
14 #include "SMESH_Mesh.hxx"
15 #include "Utils_SALOME_Exception.hxx"
17 typedef struct uvPtStruct
21 double u; // original 2d parameter
23 double x; // 2d parameter, normalized [0,1]
28 typedef struct faceQuadStruct
34 bool isEdgeForward[4];
35 UVPtStruct* uv_edges[4];
39 class SMESH_Quadrangle_2D:
43 SMESH_Quadrangle_2D(int hypId, int studyId, SMESH_Gen* gen);
44 virtual ~SMESH_Quadrangle_2D();
46 virtual bool CheckHypothesis(SMESH_Mesh& aMesh,
47 const TopoDS_Shape& aShape);
49 virtual bool Compute(SMESH_Mesh& aMesh,
50 const TopoDS_Shape& aShape)
51 throw (SALOME_Exception);
53 FaceQuadStruct* CheckAnd2Dcompute(SMESH_Mesh& aMesh,
54 const TopoDS_Shape& aShape)
55 throw (SALOME_Exception);
57 void QuadDelete(FaceQuadStruct* quad);
59 ostream & SaveTo(ostream & save);
60 istream & LoadFrom(istream & load);
61 friend ostream & operator << (ostream & save, SMESH_Quadrangle_2D & hyp);
62 friend istream & operator >> (istream & load, SMESH_Quadrangle_2D & hyp);
66 void SetNormalizedGrid(SMESH_Mesh& aMesh,
67 const TopoDS_Shape& aShape,
69 throw (SALOME_Exception);
71 UVPtStruct* LoadEdgePoints(SMESH_Mesh& aMesh,
78 // FaceQuadStruct _quadDesc;