ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/mailleur/src/m3d_tetra.cpp
Revision: 763
Committed: Wed Dec 2 19:55:53 2015 UTC (9 years, 5 months ago) by francois
File size: 3604 byte(s)
Log Message:
Le fichier MAGiC est maintenant versionné. LA version actuelle est 2.0. L'ancienne version est 1.0.
Tout est transparent pour l'utilisateur. Les vieilles versions sont lisibles mais les nouveaux enregistrements sont dans la version la plus récente.
Changement des conditions aux limites : ajout d'un parametre pour dire si la condition numerique est une valeur ou une formule ou un lien vers une autre entité magic.
Les parametres pour saisir sont maintenant -ccf -ccfi -ccff -ccft -ccfit -ccfft

File Contents

# User Rev Content
1 5 //------------------------------------------------------------
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     // m3d_tetra.cpp
16     //
17     //------------------------------------------------------------
18     //------------------------------------------------------------
19     // COPYRIGHT 2000
20     // Version du 02/03/2006 à 11H23
21     //------------------------------------------------------------
22     //------------------------------------------------------------
23    
24    
25     #include "gestionversion.h"
26    
27     //#include <vcl.h>
28     //#pragma hdrstop
29    
30     #include <math.h>
31     #include "m3d_tetra.h"
32     #include "ot_mathematique.h"
33     #include "const.h"
34    
35     //---------------------------------------------------------------------------
36    
37     //#pragma package(smart_init)
38    
39    
40    
41    
42 francois 54 M3D_TETRA::M3D_TETRA(unsigned long num,MG_ELEMENT_TOPOLOGIQUE* topo,class MG_NOEUD *mgnoeud1,class MG_NOEUD *mgnoeud2,class MG_NOEUD *mgnoeud3,class MG_NOEUD *mgnoeud4,class MG_TRIANGLE* mgtriangle1,class MG_TRIANGLE* mgtriangle2,class MG_TRIANGLE* mgtriangle3,class MG_TRIANGLE* mgtriangle4,int origine):MG_TETRA(num,topo,mgnoeud1,mgnoeud2,mgnoeud3,mgnoeud4,mgtriangle1,mgtriangle2,mgtriangle3,mgtriangle4,origine),etat(ACTIF)//,optimisation(0)
43 5 {
44     calcule_volume();
45     }
46    
47 francois 54 M3D_TETRA::M3D_TETRA(MG_ELEMENT_TOPOLOGIQUE* topo,class MG_NOEUD *mgnoeud1,class MG_NOEUD *mgnoeud2,class MG_NOEUD *mgnoeud3,class MG_NOEUD *mgnoeud4,class MG_TRIANGLE* mgtriangle1,class MG_TRIANGLE* mgtriangle2,class MG_TRIANGLE* mgtriangle3,class MG_TRIANGLE* mgtriangle4,int origine):MG_TETRA(topo,mgnoeud1,mgnoeud2,mgnoeud3,mgnoeud4,mgtriangle1,mgtriangle2,mgtriangle3,mgtriangle4,origine),etat(ACTIF)//,optimisation(0)
48 5 {
49     calcule_volume();
50     }
51    
52 francois 35 M3D_TETRA::M3D_TETRA(M3D_TETRA& mdd):MG_TETRA(mdd),etat(mdd.etat),volume(mdd.volume)//,optimisation(mdd.optimisation)
53 5 {
54     }
55    
56     M3D_TETRA::~M3D_TETRA()
57     {
58     }
59    
60     void M3D_TETRA::etat_detruit(void)
61     {
62     etat=DETRUIT;
63     }
64    
65     void M3D_TETRA::etat_actif(void)
66     {
67     etat=ACTIF;
68     }
69    
70     int M3D_TETRA::get_etat(void)
71     {
72    
73     return etat;
74     }
75    
76     int M3D_TETRA::get_type_entite(void)
77     {
78     return IDM3D_TETRA;
79     }
80    
81    
82     double M3D_TETRA::get_volume(void)
83     {
84     return volume;
85     }
86    
87    
88     void M3D_TETRA::change_volume(double vol)
89     {
90     volume=vol;
91     }
92    
93    
94     void M3D_TETRA::calcule_volume(void)
95     {
96     OT_VECTEUR_3D ab(noeud2->get_x()-noeud1->get_x(),noeud2->get_y()-noeud1->get_y(),noeud2->get_z()-noeud1->get_z());
97     OT_VECTEUR_3D ac(noeud3->get_x()-noeud1->get_x(),noeud3->get_y()-noeud1->get_y(),noeud3->get_z()-noeud1->get_z());
98     OT_VECTEUR_3D da(noeud1->get_x()-noeud4->get_x(),noeud1->get_y()-noeud4->get_y(),noeud1->get_z()-noeud4->get_z());
99    
100     OT_VECTEUR_3D pvec=ab&ac;
101     volume=pvec*da;
102     volume=fabs(volume)/3.;
103    
104     }
105 francois 35 /*
106     int M3D_TETRA::est_optimise(void)
107     {
108     return optimisation;
109     }
110 5
111 francois 35 void M3D_TETRA::est_optimise(int num)
112     {
113     optimisation=num;
114     }
115     */
116     double M3D_TETRA::get_qualite(void)
117     {
118     return qualite;
119     }
120    
121     void M3D_TETRA::change_qualite(double qu)
122     {
123     qualite=qu;
124     }
125    
126 francois 763 void M3D_TETRA::enregistrer(std::ostream& o,double version)
127 francois 551 {
128 francois 763 if (etat!=DETRUIT) MG_TETRA::enregistrer(o,version);
129 francois 551 }