MAGiC  V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
CAD4FE_MakeLoops.h
Aller à la documentation de ce fichier.
1 //####//------------------------------------------------------------
2 //####//------------------------------------------------------------
3 //####// MAGiC
4 //####// Jean Christophe Cuilliere et Vincent FRANCOIS
5 //####// Departement de Genie Mecanique - UQTR
6 //####//------------------------------------------------------------
7 //####// MAGIC est un projet de recherche de l equipe ERICCA
8 //####// du departement de genie mecanique de l Universite du Quebec a Trois Rivieres
9 //####// http://www.uqtr.ca/ericca
10 //####// http://www.uqtr.ca/
11 //####//------------------------------------------------------------
12 //####//------------------------------------------------------------
13 //####//
14 //####// CAD4FE_MakeLoops.h
15 //####//
16 //####//------------------------------------------------------------
17 //####//------------------------------------------------------------
18 //####// COPYRIGHT 2000-2024
19 //####// jeu 13 jun 2024 11:58:56 EDT
20 //####//------------------------------------------------------------
21 //####//------------------------------------------------------------
22 
23 #ifndef CAD4FE_MakeLoopsH
24 #define CAD4FE_MakeLoopsH
25 
26 #include <map>
27 #include <string>
28 
29 class CoEdge;
30 class MG_FACE;
31 class MG_COARETE;
32 class MG_ARETE;
33 
34 namespace CAD4FE {
35 
36 class MakeLoops {
37 public:
38 class CoEdge {
39  public:
40  CoEdge();
41  CoEdge(MG_FACE * __face, MG_ARETE * __e, int __sense);
42  ~CoEdge();
43  int Sense();
44  MG_ARETE * Edge();
45  MG_FACE * Face();
46  bool IsInverse(CoEdge & __mcEdgeSense);
48  MG_SOMMET * EndVertex();
51  bool IsAfter(CoEdge & __mcEdgeSense);
52  bool IsBefore(CoEdge & __mcEdgeSense);
57  OT_VECTEUR_3D MeshDir(MG_MAILLAGE * __mesh, MG_SOMMET * __v, int __meshSense);
58  double MeshAngleInPlane(CoEdge & __coEdge, OT_VECTEUR_3D & __normal, MG_MAILLAGE * __mesh);
59  double AngleInPlane(CoEdge & __coEdge, OT_VECTEUR_3D & __normal);
60  double AngleInPlane(OT_VECTEUR_3D & dir1_3D, OT_VECTEUR_3D & dir2_3D, OT_VECTEUR_3D & __normal);
61 
66  int sense;
67 };
68 
69 public:
70  MakeLoops(std::vector <MG_FACE*> __faceList, std::vector <MG_ARETE*> __edgeList, std::vector <int> __senseList);
71  ~MakeLoops();
72  void GetFaceLoops(MG_FACE* __face, std::vector < std::vector < CoEdge *> > & __loops );
73  std::string PrintFaceNormalAtVertices(MG_FACE * __face);
74 protected:
75  std::map < MG_FACE * , std::set < CoEdge * > > _mapFaceCoEdge;
76 };
77 
78 }
79 
80 
81 #endif
82 
double AngleInPlane(CoEdge &__coEdge, OT_VECTEUR_3D &__normal)
bool IsBefore(CoEdge &__mcEdgeSense)
OT_VECTEUR_3D EndMeshDir(MG_MAILLAGE *__mesh)
OT_VECTEUR_3D StartMeshDir(MG_MAILLAGE *__mesh)
bool IsInverse(CoEdge &__mcEdgeSense)
double MeshAngleInPlane(CoEdge &__coEdge, OT_VECTEUR_3D &__normal, MG_MAILLAGE *__mesh)
OT_VECTEUR_3D MeshDir(MG_MAILLAGE *__mesh, MG_SOMMET *__v, int __meshSense)
bool IsAfter(CoEdge &__mcEdgeSense)
std::string PrintFaceNormalAtVertices(MG_FACE *__face)
MakeLoops(std::vector< MG_FACE * > __faceList, std::vector< MG_ARETE * > __edgeList, std::vector< int > __senseList)
std::map< MG_FACE *, std::set< CoEdge * > > _mapFaceCoEdge
void GetFaceLoops(MG_FACE *__face, std::vector< std::vector< CoEdge * > > &__loops)