ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/mailleur/src/m3d_triangle.cpp
Revision: 1158
Committed: Thu Jun 13 22:18:49 2024 UTC (10 months, 4 weeks ago) by francois
File size: 4480 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_triangle.cpp
15     //####//
16     //####//------------------------------------------------------------
17     //####//------------------------------------------------------------
18     //####// COPYRIGHT 2000-2024
19     //####// jeu 13 jun 2024 11:58:55 EDT
20     //####//------------------------------------------------------------
21     //####//------------------------------------------------------------
22 francois 283
23    
24     #include "gestionversion.h"
25    
26    
27    
28     #include "m3d_triangle.h"
29 francois 558 #include "mg_maillage.h"
30 francois 283
31    
32    
33    
34    
35    
36    
37 francois 1150 M3D_TRIANGLE::M3D_TRIANGLE(unsigned long num,MG_ELEMENT_TOPOLOGIQUE* topo,class MG_NOEUD *mgnoeud1,class MG_NOEUD *mgnoeud2,class MG_NOEUD *mgnoeud3,class MG_SEGMENT* mgsegment1,class MG_SEGMENT* mgsegment2,class MG_SEGMENT* mgsegment3,int origine):MG_TRIANGLE(num,topo,mgnoeud1,mgnoeud2,mgnoeud3,mgsegment1,mgsegment2,mgsegment3,origine),nb_voisin(0),etat_front(MAGIC::MAILLEURFRONTALETAT::FRONT_NONACTIF),frontiere(0)
38 francois 283 {
39     }
40    
41    
42 francois 1150 M3D_TRIANGLE::M3D_TRIANGLE(MG_ELEMENT_TOPOLOGIQUE* topo,class MG_NOEUD *mgnoeud1,class MG_NOEUD *mgnoeud2,class MG_NOEUD *mgnoeud3,class MG_SEGMENT* mgsegment1,class MG_SEGMENT* mgsegment2,class MG_SEGMENT* mgsegment3,int origine):MG_TRIANGLE(topo,mgnoeud1,mgnoeud2,mgnoeud3,mgsegment1,mgsegment2,mgsegment3,origine),nb_voisin(0),etat_front(MAGIC::MAILLEURFRONTALETAT::FRONT_NONACTIF),frontiere(0)
43 francois 283 {
44     }
45    
46 francois 420 M3D_TRIANGLE::M3D_TRIANGLE(M3D_TRIANGLE& mdd):MG_TRIANGLE(mdd),nb_voisin(mdd.nb_voisin),frontiere(mdd.frontiere)
47 francois 283 {
48     voisin[0]=mdd.voisin[0];
49     voisin[1]=mdd.voisin[1];
50     }
51    
52     M3D_TRIANGLE::~M3D_TRIANGLE()
53     {
54     }
55    
56    
57     int M3D_TRIANGLE::get_type_entite(void)
58     {
59 francois 1150 return MAGIC::TYPE_ENTITE::IDM3D_TRIANGLE;
60 francois 283 }
61    
62    
63     void M3D_TRIANGLE::change_etat_front(int num)
64     {
65     etat_front=num;
66     }
67     int M3D_TRIANGLE::get_etat_front(void)
68     {
69     return etat_front;
70     }
71    
72    
73     void M3D_TRIANGLE::change_mgfront(class MG_FRONT_3D* ft)
74     {
75     mgfront=ft;
76     }
77    
78     MG_FRONT_3D* M3D_TRIANGLE::get_mgfront(void)
79     {
80     return mgfront;
81     }
82    
83    
84     int M3D_TRIANGLE::ajouter_voisin(class MG_TETRA* tet)
85     {
86     if (nb_voisin==0)
87     {
88     voisin[0]=tet;
89     voisin[1]=NULL;
90     nb_voisin=1;
91     return 1;
92     }
93     if (nb_voisin==1)
94     {
95     voisin[1]=tet;
96     nb_voisin=2;
97     return 1;
98     }
99     return 0;
100     }
101    
102     int M3D_TRIANGLE::supprimer_voisin(class MG_TETRA* tet)
103     {
104     if (nb_voisin==1)
105     {
106     voisin[0]=NULL;
107     voisin[1]=NULL;
108     nb_voisin=0;
109     return 1;
110     }
111     if (nb_voisin==2)
112     {
113     if (voisin[0]==tet)
114     {
115     voisin[0]=voisin[1];
116     voisin[1]=NULL;
117     nb_voisin=1;
118     return 1;
119     }
120     else
121     {
122     voisin[1]=NULL;
123     nb_voisin=1;
124     return 1;
125     }
126     }
127     return 0;
128     }
129    
130     class MG_TETRA* M3D_TRIANGLE::get_voisin(int num)
131     {
132     if ((num<0) && (num>1)) return NULL;
133     return voisin[num];
134     }
135    
136    
137     int M3D_TRIANGLE::get_nb_voisin(void)
138     {
139     return nb_voisin;
140     }
141    
142    
143    
144     double M3D_TRIANGLE::get_qualite(void)
145     {
146     return qualite;
147     }
148    
149     void M3D_TRIANGLE::change_qualite(double val)
150     {
151     qualite=val;
152     }
153    
154 francois 420 void M3D_TRIANGLE::change_frontiere(void)
155     {
156     if (frontiere==0)frontiere=1; else frontiere=0;
157     }
158    
159    
160     int M3D_TRIANGLE::get_frontiere(void)
161     {
162     return frontiere;
163     }
164 francois 551
165     void M3D_TRIANGLE::enregistrer(std::ostream& o)
166     {
167 francois 558 if ((liaison_topologique==NULL) && (MG_MAILLAGE::DIMENSIONMAILLAGESANSTOPO!=2) && (frontiere==0) ) return;
168     if (liaison_topologique==NULL) o << "%" << get_id() << "=TRIANGLE(NULL,$" << noeud1->get_id() << ",$" << noeud2->get_id() << ",$" << noeud3->get_id() << "," << origine_creation << ");" << std::endl;
169     else if (liaison_topologique->get_dimension()==2) o << "%" << get_id() << "=TRIANGLE($"<< get_lien_topologie()->get_id() << ",$" << noeud1->get_id() << ",$" << noeud2->get_id() << ",$" << noeud3->get_id() << "," << origine_creation << ");" << std::endl;
170 francois 551 }