Moka libraries
Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
image-3d.hh
Go to the documentation of this file.
1
/*
2
* lib-extraction-images : Extraction de cartes à partir d'images 2D et 3D.
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-extraction-images
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
#ifndef IMAGE_3D_HH
26
#define IMAGE_3D_HH
27
//******************************************************************************
28
#include "inline-macro.hh"
29
#include "alt-stdint.hh"
30
/*******************************************************************************
31
* Cette classe virtuelle pure définit les méthodes de base pour travailler sur
32
* une image 3d pour un parcours de type haut-bas, devant-derrière et
33
* gauche-droite.
34
* On ne conserve que 2 plans à la fois, et on ne peut donc accéder qu'aux
35
* voxels d'un de ces 2 plans. D'ou les méthodes getCurrentVoxel pour le plan
36
* actuel, et getPrevVoxel pour le dernier plan.
37
*/
38
39
namespace
GMap3d
40
{
41
class
CImage3d
42
{
43
public
:
44
CImage3d
(
int
AActuPlaneIndex);
45
46
virtual
~CImage3d
();
47
48
bool
isOk
()
const
;
49
50
unsigned
int
getPlaneActu
()
const
;
51
52
unsigned
int
getWidth
()
const
;
53
unsigned
int
getHeight
()
const
;
54
55
bool
readNextPlane
();
56
57
bool
lastPlane
();
58
59
// Az* == false => FPrevPlane
60
// Az* == true => FActuPlane
61
virtual
bool
sameVoxel
(
unsigned
int
Ax1,
unsigned
int
Ay1,
bool
Az1,
62
unsigned
int
Ax2,
unsigned
int
Ay2,
bool
Az2)
const
=0;
63
66
virtual
bool
sameVoxel
(
unsigned
int
Ax,
unsigned
int
Ay,
bool
Az,
67
int
ARed,
int
AGreen,
int
ABlue,
int
AAlpha )
const
=0;
68
69
/* Les méthodes suivantes testent l'appartenante à la même région de deux
70
* voxels. Le premier mot de la méthode désigne la position du premier voxel
71
* par rapport au voxel courant. Le deuxième mot (après le -) désigne la
72
* position du deuxième voxel par rapport au premier (et donc est soit up,
73
* left ou behind). X et y désigne les cordonnées du voxel courant qui est
74
* dans le plan courant en z.
75
*/
76
bool
sameVoxelActuLeft
(
unsigned
int
x,
unsigned
int
y)
const
;
77
bool
sameVoxelActuBehind
(
unsigned
int
x,
unsigned
int
y)
const
;
78
bool
sameVoxelActuUp
(
unsigned
int
x,
unsigned
int
y)
const
;
79
80
bool
sameVoxelLeftBehind
(
unsigned
int
x,
unsigned
int
y)
const
;
81
bool
sameVoxelLeftUp
(
unsigned
int
x,
unsigned
int
y)
const
;
82
83
bool
sameVoxelBehindLeft
(
unsigned
int
x,
unsigned
int
y)
const
;
84
bool
sameVoxelBehindUp
(
unsigned
int
x,
unsigned
int
y)
const
;
85
86
bool
sameVoxelUpLeft
(
unsigned
int
x,
unsigned
int
y)
const
;
87
bool
sameVoxelUpBehind
(
unsigned
int
x,
unsigned
int
y)
const
;
88
89
bool
sameVoxelUpbehindLeft
(
unsigned
int
x,
unsigned
int
y)
const
;
90
91
bool
sameVoxelLeftbehindUp
(
unsigned
int
x,
unsigned
int
y)
const
;
92
93
bool
sameVoxelLeftupBehind
(
unsigned
int
x,
unsigned
int
y)
const
;
94
95
protected
:
96
virtual
bool
readData
() =0;
97
virtual
void
freePlane
(
bool
AActuPlane);
98
virtual
void
pushPlane
();
99
100
unsigned
int
FWidth
,
FHeight
;
101
102
bool
FIsOk
;
// vrai si on a réussi à créer l'image, faux sinon
103
104
int
FNbPlaneToRead
;
105
int
FActuPlaneIndex
;
106
107
private
:
108
bool
FNullActuPlane, FNullPrevPlane;
109
};
110
111
}
// namespace GMap3d
112
//******************************************************************************
113
#include INCLUDE_INLINE("image-3d.icc")
114
//******************************************************************************
115
#endif // IMAGE_3D_HH
116
//******************************************************************************
lib-extraction-images
image-3d.hh
Generated on Tue Apr 9 2013 09:51:42 for Moka libraries by
1.8.2