liba2ri  0.2
 All Data Structures
boundingbox.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 BOUNDING_BOX__H
29 #define BOUNDING_BOX__H
30 
31 #include <stdio.h>
32 #include <stdlib.h>
33 #include <math.h>
34 #include <gsl/gsl_math.h>
35 #include <gsl/gsl_eigen.h>
36 
37 #include "util.h"
38 #include "model.h"
39 #include "point.h"
40 #include "matrix.h"
41 
50 void a2ri_vf_axis_aligned_bounding_box (
51  vf_model m,
52  int *faces,
53  int nbfaces,
54  point3d ** ptmin,
55  point3d ** ptmax);
56 
65 void a2ri_vf_bounding_ball_minimale (
66  vf_model m,
67  int *faces,
68  int nbfaces,
69  point3d ** listcentre,
70  double **listradius);
71 
80 void a2ri_vf_bounding_ball_ritter (
81  vf_model m,
82  int *faces,
83  int nbfaces,
84  point3d ** listcentre,
85  double **listradius);
86 
96 void a2ri_vf_oriented_bounding_box (
97  vf_model m,
98  vector3d * newbasex,
99  vector3d * newbasey,
100  vector3d * newbasez,
101  point3d * ptmin,
102  point3d * ptmax);
103 
112 void a2ri_vef_bounding_ball_minimale (
113  vef_model m,
114  int *faces,
115  int nbfaces,
116  point3d ** listcentre,
117  double **listradius);
118 
127 void point3d_bounding_ball_minimale (
128  point3d * faces,
129  int nbfaces,
130  point3d ** listcentre,
131  double **listradius);
132 
133 #endif