Moka kernel
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
Moka kernel
Todo List
Namespaces
Classes
Files
File List
lib-gmapkernel
g-map
g-map-generic
g-map-vertex
tools
geometry
geometry.cc
geometry.hh
geometry.icc
math-extension.cc
math-extension.hh
plane.cc
plane.hh
plane.icc
transformation-matrix.cc
transformation-matrix.hh
transformation-matrix.icc
vector.cc
vector.hh
vector.icc
vertex.cc
vertex.hh
vertex.icc
streams
alt-stdint.hh
attributes-id.hh
chrono.hh
inline-macro.hh
File Members
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
plane.hh
Go to the documentation of this file.
1
/*
2
* lib-gmapkernel : Un noyau de 3-G-cartes et des opérations.
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-gmapkernel
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 PLANE_HH
26
#define PLANE_HH
27
//******************************************************************************
28
#include <cassert>
29
30
#include "
inline-macro.hh
"
31
#include "
vertex.hh
"
32
34
typedef
enum
{
XY_Proj
,
YZ_Proj
,
XZ_Proj
}
TProjection
;
35
//******************************************************************************
39
class
CPlane
40
{
41
public
:
42
44
46
53
CPlane
();
54
65
CPlane
(
TCoordinate
Aa,
TCoordinate
Ab,
TCoordinate
Ac,
TCoordinate
Ad);
66
76
CPlane
(
const
CVertex
& APoint1,
77
const
CVertex
& APoint2,
78
const
CVertex
& APoint3);
79
88
CPlane
(
const
CVertex
& ANormal,
const
CVertex
& APoint);
89
91
virtual
~CPlane
();
92
94
96
98
107
void
setPlane
(
TCoordinate
Aa,
TCoordinate
Ab,
TCoordinate
Ac,
TCoordinate
Ad);
108
116
void
setPlane
(
const
CVertex
& APoint1,
117
const
CVertex
& APoint2,
118
const
CVertex
& APoint3);
119
127
void
setPlane
(
const
CVertex
& ANormal,
const
CVertex
& APoint);
128
134
const
CVertex
&
getNormal
()
const
;
135
141
TCoordinate
getNormalNorm
()
const
;
142
148
TCoordinate
getA
()
const
;
149
155
TCoordinate
getB
()
const
;
156
162
TCoordinate
getC
()
const
;
163
169
TCoordinate
getD
()
const
;
170
175
void
reverseOrientation
();
176
183
bool
isPointOnPlane
(
const
CVertex
& APoint)
const
;
184
192
TCoordinate
pointDistance
(
const
CVertex
& APoint)
const
;
193
205
bool
getLineIntersection
(
const
CVertex
& APoint,
206
const
CVertex
& ADirection,
207
TCoordinate
* AInterParam)
const
;
208
219
bool
getLineIntersection
(
const
CVertex
& APoint,
220
const
CVertex
& ADirection,
221
CVertex
* AInter)
const
;
222
229
TProjection
getBestProjection
()
const
;
230
238
CVertex
projectPoint
(
const
CVertex
& APoint)
const
;
239
248
CVertex
projectPoint
(
const
CVertex
& APoint,
TProjection
AProj)
const
;
249
258
CVertex
unprojectPoint
(
const
CVertex
& APoint,
TProjection
AProj)
const
;
259
261
265
friend
std::ostream &
operator <<
(std::ostream & AStream,
const
CPlane
& APlane);
266
267
private
:
268
270
272
277
CVertex
FNormal;
278
280
TCoordinate
FNormalNorm;
281
283
TCoordinate
FD;
284
286
};
287
//******************************************************************************
288
#include INCLUDE_INLINE("plane.icc")
289
//******************************************************************************
290
#endif
291
//******************************************************************************
lib-gmapkernel
tools
geometry
plane.hh
Generated on Tue Apr 9 2013 09:51:36 for Moka kernel by
1.8.2