VR-Link API Documentation for HLA 1.3
Home
Namespaces
Classes
Files
Examples
Libraries
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
include
matrix
3dExtent.h
Go to the documentation of this file.
1
/*******************************************************************************
2
** Copyright (c) 1992-2010 VT MAK
3
** All rights reserved.
4
*******************************************************************************/
5
6
#ifndef _3dExtent_H
7
#define _3dExtent_H
8
12
13
14
#include <
vlutil/vlMachineTypes.h
>
15
#include "
3dPoint.h
"
16
#include <iosfwd>
17
18
#ifdef DtUSE_UTILITIES_NAMESPACE
19
namespace
DtUSE_UTILITIES_NAMESPACE
20
{
21
#endif
22
23
class
Dt3dChord
;
24
45
class
DT_DLL_MATRIX
Dt3dExtent
46
{
47
public
:
48
52
Dt3dExtent
();
53
55
Dt3dExtent
(
const
Dt3dExtent
& orig);
56
59
Dt3dExtent
(
const
double
minX,
const
double
maxX,
60
const
double
minY,
const
double
maxY,
61
const
double
minZ,
const
double
maxZ );
62
66
Dt3dExtent
(
const
Dt3dPoint
& p0,
const
Dt3dPoint
& p1);
67
71
Dt3dExtent
(
const
Dt3dChord
& lineSeg);
72
73
virtual
~
Dt3dExtent
();
74
75
Dt3dExtent
& operator=(
const
Dt3dExtent
& orig);
76
77
virtual
bool
operator==
(
const
Dt3dExtent
& rhs)
const
;
78
virtual
bool
operator!=
(
const
Dt3dExtent
& rhs)
const
;
79
80
//- -------------- access/manipulate size/shape routines -----------------
81
83
84
double
minX()
const
;
85
double
minY()
const
;
86
double
minZ()
const
;
87
double
maxX()
const
;
88
double
maxY()
const
;
89
double
maxZ()
const
;
90
91
void
setMinX(
double
x);
92
void
setMinY(
double
y);
93
void
setMinZ(
double
z);
94
void
setMaxX(
double
x);
95
void
setMaxY(
double
y);
96
void
setMaxZ(
double
z);
98
100
virtual
const
Dt3dPoint
center()
const
;
101
103
virtual
void
setCenter(
const
Dt3dPoint
& p);
104
106
virtual
void
setFromCenter(
const
Dt3dPoint
& p,
107
const
double
& xDist,
108
const
double
& yDist,
109
const
double
& zDist);
110
111
113
114
double
xSize()
const
;
115
double
ySize()
const
;
116
double
zSize()
const
;
118
120
virtual
Dt3dPoint
maxPoint()
const
;
121
123
virtual
Dt3dPoint
minPoint()
const
;
124
128
bool
empty()
const
;
129
131
virtual
void
expandToInclude(
const
Dt3dExtent
& otherExtent);
132
134
virtual
void
expandToInclude(
const
Dt3dPoint
& point);
135
137
virtual
void
expandToInclude(
const
Dt3dChord
& chord);
138
139
140
//- --------------- intersection tests ---------------------------
141
//- --- could be potentially moved to an DtExtentIntersector class ---
142
145
virtual
bool
contains(
const
Dt3dExtent
& otherExtent)
const
;
146
149
virtual
bool
contains(
const
Dt3dPoint
& point)
const
;
150
153
virtual
bool
contains(
const
Dt3dChord
& chord)
const
;
154
157
bool
intersects(
const
Dt3dExtent
& otherExtent)
const
;
158
161
bool
doesNotIntersect(
const
Dt3dExtent
& otherExtent)
const
;
162
166
bool
intersects(
const
Dt3dChord
& chord)
const
;
167
168
protected
:
169
175
bool
intersectsLineOfChord(
const
Dt3dChord
& chord,
176
double
& distInChordLengthsFirst,
double
& distInChordLengthsLast)
const
;
177
188
bool
intersectsSoFar(
const
double
pointVal,
189
const
double
rayVal,
const
double
side0,
const
double
side1,
190
double
&firstTime,
double
&lastTime)
const
;
191
192
//- --------------- end intersection tests ---------------------------
193
194
protected
:
197
void
guaranteeValidConstruction();
198
199
protected
:
200
double
myMinX
;
201
double
myMaxX
;
202
double
myMinY
;
203
double
myMaxY
;
204
double
myMinZ
;
205
double
myMaxZ
;
206
207
public
:
208
210
static
Dt3dExtent
& nullExtent();
211
212
};
213
214
#define _3dExtent_inl
215
#include "3dExtent.inl"
216
#undef _3dExtent_inl
217
218
DT_DLL_MATRIX
std::ostream&
operator<<
(std::ostream& os,
const
Dt3dExtent
& extent);
219
DT_DLL_MATRIX
std::istream&
operator>>
(std::istream& is,
Dt3dExtent
& extent);
220
221
#ifdef DtUSE_UTILITIES_NAMESPACE
222
}
223
#endif
224
225
226
#endif
227
Document ID: Generated on Wed Jan 7 13:31:29 EST 2015 from SVN revision 149162
Copyright © 2005-2014 VT MÄK. All Rights Reserved (
www.mak.com
)