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 
CAD4FE::MakeLoops::CoEdge::Face
MG_FACE * Face()
Definition: CAD4FE_MakeLoops.cpp:58
CAD4FE::MakeLoops::CoEdge::EndMeshDir
OT_VECTEUR_3D EndMeshDir(MG_MAILLAGE *__mesh)
Definition: CAD4FE_MakeLoops.cpp:139
CAD4FE::MakeLoops::CoEdge::EndDir
OT_VECTEUR_3D EndDir()
Definition: CAD4FE_MakeLoops.cpp:109
CAD4FE::MakeLoops::CoEdge::~CoEdge
~CoEdge()
Definition: CAD4FE_MakeLoops.cpp:52
CAD4FE::MakeLoops::_mapFaceCoEdge
std::map< MG_FACE *, std::set< CoEdge * > > _mapFaceCoEdge
Definition: CAD4FE_MakeLoops.h:75
MG_COSOMMET
Definition: mg_cosommet.h:31
MG_COARETE
Definition: mg_coarete.h:31
CAD4FE::MakeLoops
Definition: CAD4FE_MakeLoops.h:36
CAD4FE::MakeLoops::CoEdge::StartCoVertex
MG_COSOMMET * StartCoVertex()
Definition: CAD4FE_MakeLoops.cpp:77
CAD4FE::MakeLoops::CoEdge::StartMeshDir
OT_VECTEUR_3D StartMeshDir(MG_MAILLAGE *__mesh)
Definition: CAD4FE_MakeLoops.cpp:119
CAD4FE::MakeLoops::CoEdge::StartDir
OT_VECTEUR_3D StartDir()
Definition: CAD4FE_MakeLoops.cpp:99
CAD4FE::MakeLoops::CoEdge
Definition: CAD4FE_MakeLoops.h:38
CAD4FE::MakeLoops::GetFaceLoops
void GetFaceLoops(MG_FACE *__face, std::vector< std::vector< CoEdge * > > &__loops)
Definition: CAD4FE_MakeLoops.cpp:381
CAD4FE::MakeLoops::CoEdge::CoEdge
CoEdge()
CAD4FE::MakeLoops::~MakeLoops
~MakeLoops()
Definition: CAD4FE_MakeLoops.cpp:330
CAD4FE::MakeLoops::CoEdge::IsBefore
bool IsBefore(CoEdge &__mcEdgeSense)
Definition: CAD4FE_MakeLoops.cpp:95
CAD4FE::MakeLoops::CoEdge::AngleInPlane
double AngleInPlane(CoEdge &__coEdge, OT_VECTEUR_3D &__normal)
Definition: CAD4FE_MakeLoops.cpp:270
CAD4FE::MakeLoops::CoEdge::MeshAngleInPlane
double MeshAngleInPlane(CoEdge &__coEdge, OT_VECTEUR_3D &__normal, MG_MAILLAGE *__mesh)
Definition: CAD4FE_MakeLoops.cpp:248
CAD4FE::MakeLoops::CoEdge::Edge
MG_ARETE * Edge()
Definition: CAD4FE_MakeLoops.cpp:57
CAD4FE::MakeLoops::CoEdge::sense
int sense
Definition: CAD4FE_MakeLoops.h:66
CAD4FE::MakeLoops::CoEdge::IsInverse
bool IsInverse(CoEdge &__mcEdgeSense)
Definition: CAD4FE_MakeLoops.cpp:59
CAD4FE::MakeLoops::CoEdge::next
CoEdge * next
Definition: CAD4FE_MakeLoops.h:65
OT_VECTEUR_3D
Definition: ot_mathematique.h:94
CAD4FE::MakeLoops::CoEdge::EndCoVertex
MG_COSOMMET * EndCoVertex()
Definition: CAD4FE_MakeLoops.cpp:84
CAD4FE::MakeLoops::CoEdge::prev
CoEdge * prev
Definition: CAD4FE_MakeLoops.h:64
CAD4FE::MakeLoops::CoEdge::f
MG_FACE * f
Definition: CAD4FE_MakeLoops.h:63
CAD4FE::MakeLoops::CoEdge::Sense
int Sense()
Definition: CAD4FE_MakeLoops.cpp:56
CAD4FE::MakeLoops::PrintFaceNormalAtVertices
std::string PrintFaceNormalAtVertices(MG_FACE *__face)
Definition: CAD4FE_MakeLoops.cpp:344
CAD4FE
Definition: CAD4FE_ClosestPoint_Segment_MG_ARETE.h:34
CAD4FE::MakeLoops::CoEdge::e
MG_ARETE * e
Definition: CAD4FE_MakeLoops.h:62
MG_MAILLAGE
Definition: mg_maillage.h:62
CAD4FE::MakeLoops::CoEdge::IsAfter
bool IsAfter(CoEdge &__mcEdgeSense)
Definition: CAD4FE_MakeLoops.cpp:91
MG_ARETE
Definition: mg_arete.h:36
MG_FACE
Definition: mg_face.h:34
MG_SOMMET
Definition: mg_sommet.h:35
CAD4FE::MakeLoops::CoEdge::MeshDir
OT_VECTEUR_3D MeshDir(MG_MAILLAGE *__mesh, MG_SOMMET *__v, int __meshSense)
Definition: CAD4FE_MakeLoops.cpp:159
CAD4FE::MakeLoops::CoEdge::EndVertex
MG_SOMMET * EndVertex()
Definition: CAD4FE_MakeLoops.cpp:70
CAD4FE::MakeLoops::CoEdge::StartVertex
MG_SOMMET * StartVertex()
Definition: CAD4FE_MakeLoops.cpp:63
CAD4FE::MakeLoops::MakeLoops
MakeLoops(std::vector< MG_FACE * > __faceList, std::vector< MG_ARETE * > __edgeList, std::vector< int > __senseList)
Definition: CAD4FE_MakeLoops.cpp:311