liba2ri  0.2
 All Data Structures
face.h
1 /*************************************/
2 /* Auteur : Rémi Synave */
3 /* Date de création : 01/03/07 */
4 /* Date de modification : 08/01/10 */
5 /* Version : 0.2 */
6 /*************************************/
7 
8 /***************************************************************************/
9 /* This file is part of a2ri. */
10 /* */
11 /* a2ri is free software: you can redistribute it and/or modify it */
12 /* under the terms of the GNU Lesser General Public License as published */
13 /* by the Free Software Foundation, either version 3 of the License, or */
14 /* (at your option) any later version. */
15 /* */
16 /* a2ri is distributed in the hope that it will be useful, */
17 /* but WITHOUT ANY WARRANTY; without even the implied warranty of */
18 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
19 /* GNU Lesser General Public License for more details. */
20 /* */
21 /* You should have received a copy of the GNU Lesser General Public */
22 /* License along with a2ri. */
23 /* If not, see <http://www.gnu.org/licenses/>. */
24 /***************************************************************************/
25 
26 
27 
28 #ifndef FACE__H
29 #define FACE__H
30 
31 #include <stdio.h>
32 #include <stdlib.h>
33 #include <math.h>
34 #include "edge.h"
35 
36 
37 #define UNKNOW -1
38 #define BLACK 0
39 #define WHITE 1
40 #define GRAY 2
41 
42 typedef struct
43 {
44  int ve1;
45  int ve2;
46  int ve3;
47  int type;
48  int *sharedpolyhedrons;
49  int nbsharedpolyhedrons;
50 } vf_face;
51 
52 typedef struct
53 {
54  int ed1;
55  int ed2;
56  int ed3;
57  int type;
58  int *sharedpolyhedrons;
59  int nbsharedpolyhedrons;
60 } vef_face;
61 
67 void vf_face_display (
68  vf_face f);
69 
75 void vf_face_reverse (
76  vf_face * f);
77 
84 int vf_face_contains (
85  vf_face * f,
86  int numvertex);
87 
88 
94 void vf_face_free (
95  vf_face * f);
96 
102 void vef_face_display (
103  vef_face f);
104 
110 void vef_face_reverse (
111  vef_face * f);
112 
122 void vef_face_get_vertices (
123  vef_face f,
124  vef_edge * list,
125  int *ve1,
126  int *ve2,
127  int *ve3);
128 
135 int vef_face_contains (
136  vef_face * f,
137  int numedge);
138 
139 
145 void vef_face_free (
146  vef_face * f);
147 
148 #endif