ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/mailleur/src/m3d_triangle.cpp
Revision: 5
Committed: Tue Jun 12 20:26:34 2007 UTC (17 years, 11 months ago)
Original Path: magic/lib/mailleur/mailleur/src/m3d_triangle.cpp
File size: 3718 byte(s)
Log Message:

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_triangle.cpp
16     //
17     //------------------------------------------------------------
18     //------------------------------------------------------------
19     // COPYRIGHT 2000
20     // Version du 02/03/2006 à 11H23
21     //------------------------------------------------------------
22     //------------------------------------------------------------
23    
24    
25     #include "gestionversion.h"
26    
27    
28     //#pragma hdrstop
29    
30     #include "m3d_triangle.h"
31    
32     //---------------------------------------------------------------------------
33    
34     //#pragma package(smart_init)
35    
36    
37    
38    
39    
40    
41     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 ):MG_TRIANGLE(num,topo,mgnoeud1,mgnoeud2,mgnoeud3,mgsegment1,mgsegment2,mgsegment3),nb_voisin(0),etat_front(FRONT_NONACTIF)
42     {
43     }
44    
45    
46     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):MG_TRIANGLE(topo,mgnoeud1,mgnoeud2,mgnoeud3,mgsegment1,mgsegment2,mgsegment3),nb_voisin(0),etat_front(FRONT_NONACTIF)
47     {
48     }
49    
50     M3D_TRIANGLE::M3D_TRIANGLE(M3D_TRIANGLE& mdd):MG_TRIANGLE(mdd),nb_voisin(mdd.nb_voisin)
51     {
52     voisin[0]=mdd.voisin[0];
53     voisin[1]=mdd.voisin[1];
54     }
55    
56     M3D_TRIANGLE::~M3D_TRIANGLE()
57     {
58     }
59    
60    
61     int M3D_TRIANGLE::get_type_entite(void)
62     {
63     return IDM3D_TRIANGLE;
64     }
65    
66    
67     void M3D_TRIANGLE::change_etat_front(int num)
68     {
69     etat_front=num;
70     }
71     int M3D_TRIANGLE::get_etat_front(void)
72     {
73     return etat_front;
74     }
75    
76    
77     void M3D_TRIANGLE::change_mgfront(class MG_FRONT_3D* ft)
78     {
79     mgfront=ft;
80     }
81    
82     MG_FRONT_3D* M3D_TRIANGLE::get_mgfront(void)
83     {
84     return mgfront;
85     }
86    
87    
88     int M3D_TRIANGLE::ajouter_voisin(class MG_TETRA* tet)
89     {
90     if (nb_voisin==0)
91     {
92     voisin[0]=tet;
93     voisin[1]=NULL;
94     nb_voisin=1;
95     return 1;
96     }
97     if (nb_voisin==1)
98     {
99     voisin[1]=tet;
100     nb_voisin=2;
101     return 1;
102     }
103     return 0;
104     }
105    
106     int M3D_TRIANGLE::supprimer_voisin(class MG_TETRA* tet)
107     {
108     if (nb_voisin==1)
109     {
110     voisin[0]=NULL;
111     voisin[1]=NULL;
112     nb_voisin=0;
113     return 1;
114     }
115     if (nb_voisin==2)
116     {
117     if (voisin[0]==tet)
118     {
119     voisin[0]=voisin[1];
120     voisin[1]=NULL;
121     nb_voisin=1;
122     return 1;
123     }
124     else
125     {
126     voisin[1]=NULL;
127     nb_voisin=1;
128     return 1;
129     }
130     }
131     return 0;
132     }
133    
134     class MG_TETRA* M3D_TRIANGLE::get_voisin(int num)
135     {
136     if ((num<0) && (num>1)) return NULL;
137     return voisin[num];
138     }
139    
140    
141     int M3D_TRIANGLE::get_nb_voisin(void)
142     {
143     return nb_voisin;
144     }
145    
146    
147    
148     double M3D_TRIANGLE::get_qualite(void)
149     {
150     return qualite;
151     }
152    
153     void M3D_TRIANGLE::change_qualite(double val)
154     {
155     qualite=val;
156     }
157