MAGiC  V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
CAD4FE_MCVertex.cpp
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_MCVertex.cpp
15 //####//
16 //####//------------------------------------------------------------
17 //####//------------------------------------------------------------
18 //####// COPYRIGHT 2000-2024
19 //####// jeu 13 jun 2024 11:58:54 EDT
20 //####//------------------------------------------------------------
21 //####//------------------------------------------------------------
22 #include <vector>
23 #include <sstream>
24 #pragma hdrstop
25 
26 #include "gestionversion.h"
27 #include "mg_point.h"
28 #include "lc_point.h"
29 #include "CAD4FE_MCVertex.h"
30 
31 #include "CAD4FE_MCEdge.h"
33 
34 #ifdef __BORLANDC__
35 #pragma warn -8012
36 #endif
37 
38 using namespace CAD4FE;
39 
41  : MG_SOMMET(std::string("MC")+std::string(__vertex->get_idoriginal()), __vertex->get_point()), _ref_vertex(__vertex)
42 {
43  time = 0;
44  transfert_ccf(*__vertex);
45 }
46 
48 {
49  return _ref_vertex;
50 }
51 
52 void MCVertex::enregistrer(std::ostream& o,double version)
53 {
54  o <<"%" << get_id() << "=CAD4FE_MCVERTEX("<< get_idoriginal() << ",$" << GetRefVertex()->get_id() ;
55  o <<","<<_lst_vertices.size();
56  o <<",(";
57  for (std::map<unsigned long , MG_SOMMET*>::iterator itRefVertex = _lst_vertices.begin();
58  itRefVertex != _lst_vertices.end();
59  itRefVertex ++)
60  {
61  if (itRefVertex != _lst_vertices.begin())
62  o << ",";
63  o << "$"<< itRefVertex->first;
64  }
65  o << ")";
66  o << "," << get_nb_ccf();
67  if (get_nb_ccf()!=0)
68  {
69  o << ",(";
70  for (int i=0;i<get_nb_ccf();i++)
71  {
72  char nom[3];
73  get_type_ccf(i,nom);
74  o << "(" << nom << "," << get_valeur_ccf(i) << ")";
75  if (i!=get_nb_ccf()-1) o << "," ;
76  }
77  o << ")";
78  }
79  o << ");" << std::endl;
80 }
81 
83 {
84  _lst_vertices[__refVertex->get_id()] = __refVertex;
85 }
86 
87 void MCVertex::Merge(MCVertex * __mcVertex)
88 {
89  _lst_vertices[__mcVertex->GetRefVertex()->get_id()] = __mcVertex->GetRefVertex();
90  for (std::map<unsigned long, MG_SOMMET *>::const_iterator it=__mcVertex->_lst_vertices.begin(); it != __mcVertex->_lst_vertices.end(); it++)
91  _lst_vertices.insert(std::make_pair(it->first,it->second));
92 }
93 
94 std::map<unsigned long, MG_SOMMET * > & MCVertex::GetMergedRefVertices()
95 {
96  return _lst_vertices;
97 }
98 
99 bool MCVertex::Contains(MG_SOMMET* __refVertex) const
100 {
101  return _ref_vertex==__refVertex || _lst_vertices.find(__refVertex->get_id()) != _lst_vertices.end();
102 }
103 
105 {
106  std::map<unsigned long, MG_SOMMET*>::iterator itRefVertex = _lst_vertices.find(__refVertex->get_id());
107  if (itRefVertex != _lst_vertices.end())
108  {
109  _lst_vertices.erase(itRefVertex);
110  }
111 }
gestionversion.h
CAD4FE::MCVertex::RemoveRefVertex
void RemoveRefVertex(MG_SOMMET *)
Definition: CAD4FE_MCVertex.cpp:104
MG_IDENTIFICATEUR::get_id
unsigned long get_id()
Definition: mg_identificateur.cpp:53
CAD4FE::MCVertex::MergeRefVertex
void MergeRefVertex(MG_SOMMET *)
Definition: CAD4FE_MCVertex.cpp:82
CAD4FE::MCVertex::MCVertex
MCVertex(MG_SOMMET *__vertex)
Definition: CAD4FE_MCVertex.cpp:40
MG_ELEMENT_TOPOLOGIQUE::get_type_ccf
virtual void get_type_ccf(int num, char *nom)
Definition: mg_element_topologique.cpp:95
CAD4FE::MCVertex::GetRefVertex
MG_SOMMET * GetRefVertex()
Definition: CAD4FE_MCVertex.cpp:47
CAD4FE::MCVertex::time
int time
Definition: CAD4FE_MCVertex.h:47
mg_point.h
CAD4FE::MCVertex::enregistrer
virtual void enregistrer(std::ostream &o, double version)
Definition: CAD4FE_MCVertex.cpp:52
lc_point.h
MG_ELEMENT_TOPOLOGIQUE::get_nb_ccf
virtual int get_nb_ccf(void)
Definition: mg_element_topologique.cpp:154
CAD4FE::MCVertex
Definition: CAD4FE_MCVertex.h:35
CAD4FE::MCVertex::Contains
bool Contains(MG_SOMMET *) const
Definition: CAD4FE_MCVertex.cpp:99
CAD4FE_MCVertex.h
CAD4FE_MCEdge.h
CAD4FE::MCVertex::GetMergedRefVertices
std::map< unsigned long, MG_SOMMET * > & GetMergedRefVertices()
Definition: CAD4FE_MCVertex.cpp:94
CAD4FE::MCVertex::_lst_vertices
std::map< unsigned long, MG_SOMMET * > _lst_vertices
set of vertices that have been merged into the mcvertex
Definition: CAD4FE_MCVertex.h:61
CAD4FE::MCVertex::Merge
void Merge(MCVertex *__mcVertex)
Definition: CAD4FE_MCVertex.cpp:87
ot_algorithme_geometrique.h
CAD4FE
Definition: CAD4FE_ClosestPoint_Segment_MG_ARETE.h:34
MG_ELEMENT_TOPOLOGIQUE::transfert_ccf
virtual void transfert_ccf(MG_ELEMENT_TOPOLOGIQUE &a1)
Definition: mg_element_topologique.cpp:250
MG_ELEMENT_TOPOLOGIQUE::get_valeur_ccf
virtual bool get_valeur_ccf(char *nom, double &val)
Definition: mg_element_topologique.cpp:310
MG_ELEMENT_TOPOLOGIQUE::get_idoriginal
virtual std::string get_idoriginal(void)
Definition: mg_element_topologique.cpp:299
MG_SOMMET
Definition: mg_sommet.h:35
CAD4FE::MCVertex::_ref_vertex
MG_SOMMET * _ref_vertex
Definition: CAD4FE_MCVertex.h:58