MAGiC  V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
CAD4FE_MCNode.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_MCNode.h
15 //####//
16 //####//------------------------------------------------------------
17 //####//------------------------------------------------------------
18 //####// COPYRIGHT 2000-2024
19 //####// jeu 13 jun 2024 11:58:56 EDT
20 //####//------------------------------------------------------------
21 //####//------------------------------------------------------------
22 
23 #ifndef CAD4FE_MCNodeH
24 #define CAD4FE_MCNodeH
25 
26 #include <map>
27 #include <set>
28 
29 #include "CAD4FE_Mesher_platform.h"
30 #include "gestionversion.h"
31 #include "mg_noeud.h"
32 #include "ot_mathematique.h"
33 
34 const unsigned int IDMCNODE=5000;
35 
36 class MG_FACE;
37 class MG_ARETE;
38 class MG_SOMMET;
40 
41 namespace CAD4FE {
42 
43 class MCSegment;
44 class FaceBoundaryPoint;
45 class MCFace;
46 
47 class MCNode : public MG_NOEUD {
48 public:
49 
50 typedef std::map< MG_FACE *, OT_VECTEUR_3D > FMap;
51 typedef FMap::iterator FMapIterator;
52 typedef std::map< MG_ARETE *, double > EMap;
53 typedef EMap::iterator EMapIterator;
54 typedef EMap::const_iterator EMapCIterator;
55 typedef std::set< MG_SOMMET * > VMap;
56 typedef VMap::iterator VMapIterator;
57 typedef VMap::const_iterator VMapCIterator;
58 
59 MCNode(unsigned long num,MG_ELEMENT_TOPOLOGIQUE* mcTopo,MG_ELEMENT_TOPOLOGIQUE* refTopo,double xx,double yy,double zz);
60 MCNode(MG_ELEMENT_TOPOLOGIQUE* mcTopo,MG_ELEMENT_TOPOLOGIQUE* refTopo,double xx,double yy,double zz);
61 MCNode(MG_ELEMENT_TOPOLOGIQUE* mcTopo,MG_FACE* __refFace, double __uv[2], double __xyz[3]);
62 MCNode(MG_ELEMENT_TOPOLOGIQUE* mcTopo,MG_ARETE* __refEdge, double __t, double __xyz[3]);
63 MCNode();
64 MCNode(const MCNode&);
65 virtual ~MCNode();
66 virtual void enregistrer(std::ostream& o,double version);
67 void CopyGeometry(const MCNode&);
68 
69  enum CreatorType {
70  unknown = 0,
79 
80  void NormalMCFace(MCFace* __mcFace, double * __normal);
81 bool IsInFace (MG_FACE *);
82 bool IsInEdge (MG_ARETE *);
83 bool IsInVertex (MG_SOMMET*);
84 bool RefTopoIsInFace (MG_FACE *);
85 bool RefTopoIsInEdge (MG_ARETE *);
88 
91 double GetEdgeParams (MG_ARETE *);
92 double T (MG_ARETE *);
93 
94 virtual int get_type_entite ();
95 
96 void ConstructMapping();
97 void ConstructMergedVertexMapping(MG_SOMMET * __mergedVertex);
98 
99 void SharedFaces(MCNode * , std::set <MG_FACE*> & __setF);
100 void SharedEdges(MCNode * __other, std::set <MG_ARETE*> & __setE);
101 void SharedVertices(MCNode * __other, std::set <MG_SOMMET*> & __setV);
102 
105 
106 void Print();
107 
111 void SetRefFaceMapping(MG_FACE * __face, double * __uv);
112 void SetRefEdgeMapping(MG_ARETE * __edge, double __t);
113 void SetRefVertexMapping(MG_SOMMET * __vertex);
114 
115 void SetSaveFormat(char __format);
116 
117 
118 protected:
124 };
125 
126 }
127 
128 #endif
const unsigned int IDMCNODE
Definition: CAD4FE_MCNode.h:34
std::set< MG_SOMMET * > VMap
Definition: CAD4FE_MCNode.h:55
bool IsInEdge(MG_ARETE *)
FMap::iterator FMapIterator
Definition: CAD4FE_MCNode.h:51
bool RefTopoIsInVertex(MG_SOMMET *)
bool RefTopoIsInFace(MG_FACE *)
VMap::iterator VMapIterator
Definition: CAD4FE_MCNode.h:56
void SetRefEdgeMapping(MG_ARETE *__edge, double __t)
EMap::iterator EMapIterator
Definition: CAD4FE_MCNode.h:53
virtual ~MCNode()
EMap::const_iterator EMapCIterator
Definition: CAD4FE_MCNode.h:54
enum CAD4FE::MCNode::CreatorType Creator
MG_ELEMENT_TOPOLOGIQUE * get_lien_topologie_reference()
void SharedEdges(MCNode *__other, std::set< MG_ARETE * > &__setE)
std::map< MG_FACE *, OT_VECTEUR_3D > FMap
Definition: CAD4FE_MCNode.h:50
OT_VECTEUR_3D & GetFaceParams(MG_FACE *)
MG_SOMMET * GetMergedVertex(MG_FACE *__face)
void SharedFaces(MCNode *, std::set< MG_FACE * > &__setF)
@ intersection_plane_mg_arete
Definition: CAD4FE_MCNode.h:74
@ intersection_plane_mg_polysurface
Definition: CAD4FE_MCNode.h:75
@ intersection_plane_mg_face
Definition: CAD4FE_MCNode.h:76
double T(MG_ARETE *)
double GetEdgeParams(MG_ARETE *)
virtual int get_type_entite()
EMap & GetRefEdgeMapping()
VMap & GetRefVertexMapping()
void SharedVertices(MCNode *__other, std::set< MG_SOMMET * > &__setV)
virtual void enregistrer(std::ostream &o, double version)
bool IsInVertex(MG_SOMMET *)
VMap::const_iterator VMapCIterator
Definition: CAD4FE_MCNode.h:57
void SetRefFaceMapping(MG_FACE *__face, double *__uv)
bool RefTopoIsInEdge(MG_ARETE *)
void change_lien_topologie_reference(MG_ELEMENT_TOPOLOGIQUE *__refTopo)
FMap & GetRefFaceMapping()
void ConstructMergedVertexMapping(MG_SOMMET *__mergedVertex)
std::map< MG_ARETE *, double > EMap
Definition: CAD4FE_MCNode.h:52
void SetRefVertexMapping(MG_SOMMET *__vertex)
OT_VECTEUR_3D & UV(MG_FACE *)
bool IsInFace(MG_FACE *)
MG_ELEMENT_TOPOLOGIQUE * _refTopo
void CopyGeometry(const MCNode &)
void SetSaveFormat(char __format)
void NormalMCFace(MCFace *__mcFace, double *__normal)