Moka libraries
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
voxel.hh
Go to the documentation of this file.
1 /*
2  * lib-spamod : Visualisation des objets en discret.
3  * Copyright (C) 2004, Moka Team, Université de Poitiers, Laboratoire SIC
4  * http://www.sic.sp2mi.univ-poitiers.fr/
5  * Copyright (C) 2009, Guillaume Damiand, CNRS, LIRIS,
6  * guillaume.damiand@liris.cnrs.fr, http://liris.cnrs.fr/
7  *
8  * This file is part of lib-spamod
9  *
10  * This program is free software: you can redistribute it and/or modify
11  * it under the terms of the GNU Lesser General Public License as published by
12  * the Free Software Foundation, either version 3 of the License, or
13  * (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU Lesser General Public License for more details.
19  *
20  * You should have received a copy of the GNU Lesser General Public License
21  * along with this program. If not, see <http://www.gnu.org/licenses/>.
22  */
23 
24 /******************************************************************************
25  * Fichier : Voxel.h *
26  * Auteur : DEXET Martine *
27  *----------------------------------------------------------------------------*
28  * Ce fichier contient la spécification de la classe Voxel. Cette classe *
29  * permet de représenter ce centre d'un voxel à l'aide de trois coordonnées *
30  * entières. *
31  * *
32  *****************************************************************************/
33 
34 
35 #ifndef VOXEL_H
36 #define VOXEL_H
37 
38 
39 
40 /******************************************************************************
41  * Classe Voxel *
42  *****************************************************************************/
43 
44 class Voxel {
45 
46  public:
47 
48  // Constructeurs.
49  Voxel();
50  Voxel(int alpha, int b, int c);
51 
52  // Méthodes permettant la lecture des coordonnées.
53  int Get_X() const;
54  int Get_Y() const;
55  int Get_Z() const;
56 
57  // Méthode permettant l'écriture des coordonnées.
58  void Set_XYZ(int alpha, int b, int c);
59 
60  // Opérateur de transfert <<.
61  friend std::ostream & operator<<(std::ostream & s,Voxel * v);
62 
63 
64  private:
65 
66  // Variables représentant les coordonnées du centre du voxel.
67  int x, y, z;
68 };
69 
70 /******************************************************************************
71  * Fichier : Voxel.inl *
72  * Auteur : DEXET Martine *
73  *----------------------------------------------------------------------------*
74  * Ce fichier contient l'implémentation des méthodes de la classe Voxel *
75  * *
76  *****************************************************************************/
77 
78 
79 // Constructeurs.
80 inline
82  :x(0), y(0), z(0)
83 {}
84 
85 inline
86 Voxel::Voxel(int alpha, int b, int c)
87  :x(alpha), y(b), z(c)
88 {}
89 
90 
91 // Méthodes permettant la lecture des coordonnées.
92 inline
93 int Voxel::Get_X() const
94 {
95  return x;
96 }
97 
98 inline
99 int Voxel::Get_Y() const
100 {
101  return y;
102 }
103 
104 inline
105 int Voxel::Get_Z() const
106 {
107  return z;
108 }
109 
110 
111  // Méthode permettant l'écriture des coordonnées.
112 inline
113 void Voxel::Set_XYZ(int alpha, int b, int c)
114 {
115  x = alpha;
116  y = b;
117  z = c;
118 }
119 
120 
121 // Opérateur de transfert <<.
122 inline
123 std::ostream & operator<<(std::ostream & s,Voxel * v)
124 {
125  s << v->Get_X() << " " << v->Get_Y() << " " << v->Get_Z() << std::endl;
126  return s;
127 }
128 
129 #endif