ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/mailleur/src/m3d_tetra.cpp
Revision: 1158
Committed: Thu Jun 13 22:18:49 2024 UTC (10 months, 4 weeks ago) by francois
File size: 3688 byte(s)
Log Message:
compatibilité Ubuntu 22.04
Suppression des refeences à Windows
Ajout d'une banière

File Contents

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