ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/geometrie/src/mg_poutre.cpp
Revision: 795
Committed: Wed Apr 6 17:42:49 2016 UTC (9 years, 4 months ago) by francois
File size: 3659 byte(s)
Log Message:
ounlie un fichier dans la derniere mise a jour

File Contents

# Content
1 //------------------------------------------------------------
2 //------------------------------------------------------------
3 // MAGiC
4 // Jean Christophe Cuilli�re et Vincent FRANCOIS
5 // D�partement de G�nie M�canique - UQTR
6 //------------------------------------------------------------
7 // Le projet MAGIC est un projet de recherche du d�partement
8 // de g�nie m�canique de l'Universit� du Qu�bec �
9 // Trois Rivi�res
10 // Les librairies ne peuvent �tre utilis�es sans l'accord
11 // des auteurs (contact : francois@uqtr.ca)
12 //------------------------------------------------------------
13 //------------------------------------------------------------
14 //
15 // mg_poutre.cpp
16 //
17 //------------------------------------------------------------
18 //------------------------------------------------------------
19 // COPYRIGHT 2000
20 // Version du 02/03/2006 � 11H22
21 //------------------------------------------------------------
22 //------------------------------------------------------------
23
24
25 #include "gestionversion.h"
26 #include "mg_poutre.h"
27 //#include "message.h"
28
29 MG_POUTRE::MG_POUTRE(std::string idori,unsigned long num):MG_ELEMENT_TOPOLOGIQUE(num,idori),num_materiau(-1)
30 {
31 }
32
33 MG_POUTRE::MG_POUTRE(std::string idori):MG_ELEMENT_TOPOLOGIQUE(idori),num_materiau(-1)
34 {
35 }
36
37 MG_POUTRE::MG_POUTRE(MG_POUTRE& mdd):MG_ELEMENT_TOPOLOGIQUE(mdd),lst_boucle(mdd.lst_boucle)
38 {
39 }
40
41 MG_POUTRE::~MG_POUTRE()
42 {
43 }
44
45 void MG_POUTRE::ajouter_mg_boucle(class MG_BOUCLE* mgbou)
46 {
47 lst_boucle.insert(lst_boucle.end(),mgbou);
48 }
49 bool MG_POUTRE::est_une_poutre_element(void)
50 {
51 return false;
52 }
53 void MG_POUTRE::supprimer_mg_boucle(class MG_BOUCLE* mgbou)
54 {
55 std::vector<MG_BOUCLE*>::iterator i;
56 for (i=lst_boucle.begin();i!=lst_boucle.end();i++)
57 {
58 if ((*i)==mgbou)
59 {
60 lst_boucle.erase(i);
61 return;
62 }
63 }
64 }
65
66
67 int MG_POUTRE::get_nb_mg_boucle(void)
68 {
69 return lst_boucle.size();
70 }
71
72 MG_BOUCLE* MG_POUTRE::get_mg_boucle(int num)
73 {
74 return lst_boucle[num];
75 }
76
77 int MG_POUTRE::get_dimension(void)
78 {
79 return 1;
80 }
81
82 void MG_POUTRE::get_topologie_sousjacente(TPL_MAP_ENTITE<MG_ELEMENT_TOPOLOGIQUE*> *lst)
83 {
84 int nb=lst_boucle.size();
85 for (int i=0;i<nb;i++)
86 {
87 MG_BOUCLE* bou=lst_boucle[i];
88 int nb2=bou->get_nb_mg_coarete();
89 for (int j=0;j<nb2;j++)
90 {
91 MG_ARETE* are=bou->get_mg_coarete(j)->get_arete();
92 lst->ajouter(are);
93 are->get_topologie_sousjacente(lst);
94 }
95 }
96 }
97
98 void MG_POUTRE::enregistrer(std::ostream& o,double version)
99 {
100 o << "%" << get_id() << "=POUTRE(" << get_idoriginal() << ",(";
101 for (unsigned int i=0;i<lst_boucle.size();i++)
102 {
103 o << "$" << lst_boucle[i]->get_id();
104 if (i!=lst_boucle.size()-1) o << ",";
105 else o << ")";
106 }
107 int nb=get_nb_ccf();
108 if (version<2)
109 {
110 o << "," << num_materiau << "," << nb;
111 if (nb!=0)
112 {
113 o << ",(";
114 for (int i=0;i<nb;i++)
115 {
116 char nom[3];
117 get_type_ccf(i,nom);
118 o << "(" << nom << "," << get_valeur_ccf(i) << ")";
119 if (i!=nb-1) o << "," ;
120 }
121 o << ")";
122 }
123 o << ");" << std::endl;
124 }
125 else
126 {
127 o << "," ;
128 enregistrer_ccf(o,version);
129 o << ");" << std::endl;
130 }
131 }
132
133 void MG_POUTRE::change_num_materiau(int num)
134 {
135 num_materiau=num;
136 }
137
138 int MG_POUTRE::get_num_materiau(void)
139 {
140 return num_materiau;
141 }
142 bool MG_POUTRE::contient_element(MG_ELEMENT_MAILLAGE *ele)
143 {
144 bool res=get_lien_maillage()->contient(ele);
145 return res;
146 }
147
148 VCT& MG_POUTRE::get_vectorisation(void)
149 {
150 VCT *p=NULL;
151 return *p;
152 }