ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/mailleur/src/dly_tetra.h
Revision: 551
Committed: Fri Sep 26 19:32:11 2014 UTC (10 years, 7 months ago) by francois
Content type: text/plain
File size: 3877 byte(s)
Log Message:
Preparation pour Mailleur3D apres une erreur

File Contents

# User Rev Content
1 francois 285 //------------------------------------------------------------
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_noeud.h
16     //
17     //------------------------------------------------------------
18     //------------------------------------------------------------
19     // COPYRIGHT 2000
20     // Version du 02/03/2006 � 11H23
21     //------------------------------------------------------------
22     //------------------------------------------------------------
23    
24     #ifndef dly_tetraH
25     #define dly_tetraH
26     //---------------------------------------------------------------------------
27    
28    
29     #include <vector>
30    
31    
32     class DLY_TETRA
33     {
34     public:
35     DLY_TETRA(class DLY_NOEUD *no1,class DLY_NOEUD *no2,class DLY_NOEUD *no3,class DLY_NOEUD *no4);
36     DLY_TETRA(class DLY_NOEUD *no1,class DLY_NOEUD *no2,class DLY_NOEUD *no3,class DLY_NOEUD *no4,double qual);
37     DLY_TETRA(DLY_TETRA& mdd);
38     virtual ~DLY_TETRA();
39    
40     DLY_NOEUD* get_noeud1(void);
41     DLY_NOEUD* get_noeud2(void);
42     DLY_NOEUD* get_noeud3(void);
43     DLY_NOEUD* get_noeud4(void);
44    
45     class DLY_TRIANGLE* get_triangle1(void);
46     DLY_TRIANGLE* get_triangle2(void);
47     DLY_TRIANGLE* get_triangle3(void);
48     DLY_TRIANGLE* get_triangle4(void);
49     class DLY_SEGMENT* get_segment1(void);
50     DLY_SEGMENT* get_segment2(void);
51     DLY_SEGMENT* get_segment3(void);
52     DLY_SEGMENT* get_segment4(void);
53     DLY_SEGMENT* get_segment5(void);
54     DLY_SEGMENT* get_segment6(void);
55     void change_triangle1(DLY_TRIANGLE* tri);
56     void change_triangle2(DLY_TRIANGLE* tri);
57     void change_triangle3(DLY_TRIANGLE* tri);
58     void change_triangle4(DLY_TRIANGLE* tri);
59     void change_segment1(DLY_SEGMENT* seg);
60     void change_segment2(DLY_SEGMENT* seg);
61     void change_segment3(DLY_SEGMENT* seg);
62     void change_segment4(DLY_SEGMENT* seg);
63     void change_segment5(DLY_SEGMENT* seg);
64     void change_segment6(DLY_SEGMENT* seg);
65    
66     DLY_TETRA* get_voisin1(void);
67     DLY_TETRA* get_voisin2(void);
68     DLY_TETRA* get_voisin3(void);
69     DLY_TETRA* get_voisin4(void);
70     void change_voisin1(DLY_TETRA* tet);
71     void change_voisin2(DLY_TETRA* tet);
72     void change_voisin3(DLY_TETRA* tet);
73     void change_voisin4(DLY_TETRA* tet);
74    
75     int get_feuille(void);
76     void change_feuille(int num);
77     void ajoute_fils(std::vector<DLY_TETRA*> &liste);
78     void ajoute_fils(DLY_TETRA* tet);
79     int get_nb_fils(void);
80     DLY_TETRA* get_fils(int i);
81    
82     int point_dans_le_tetra(double x,double y,double z);
83     int point_dans_la_sphere(double x,double y,double z);
84    
85     double get_volume(void);
86     double calcul_volume(class FCT_TAILLE *metrique=NULL,int conserve=1);
87     void decoupe_noeud(std::vector<double> &lstpt);
88     void get_normal1(double *nor);
89     void get_normal2(double *nor);
90     void get_normal3(double *nor);
91     void get_normal4(double *nor);
92     double get_qualite(void);
93     double get_critere_subdivision(void);
94    
95     private:
96     DLY_NOEUD* noeud1;
97     DLY_NOEUD* noeud2;
98     DLY_NOEUD* noeud3;
99     DLY_NOEUD* noeud4;
100     class DLY_TRIANGLE* tri1;
101     class DLY_TRIANGLE* tri2;
102     class DLY_TRIANGLE* tri3;
103     class DLY_TRIANGLE* tri4;
104     class DLY_SEGMENT* seg1;
105     class DLY_SEGMENT* seg2;
106     class DLY_SEGMENT* seg3;
107     class DLY_SEGMENT* seg4;
108     class DLY_SEGMENT* seg5;
109     class DLY_SEGMENT* seg6;
110     DLY_TETRA* voisin1;
111     DLY_TETRA* voisin2;
112     DLY_TETRA* voisin3;
113     DLY_TETRA* voisin4;
114     int feuille;
115     std::vector<DLY_TETRA*> fils;
116     double volume;
117     double qualite;
118     double *normal1,*normal2,*normal3,*normal4;
119     };
120    
121    
122     #endif