VR-Forces 4.1 Class Documentation
Home
Modules
Namespaces
Classes
Files
Examples
Behavior Models
File List
File Members
include
terrainInterface
terrainImplementation.h
Go to the documentation of this file.
1
/*******************************************************************************
2
** Copyright (c) 2010 MAK Technologies, Inc.
3
** All rights reserved.
4
*******************************************************************************/
5
8
10
11
#pragma once
12
13
#include "
terrainInterface/terrainInterfaceDefines.h
"
14
#include <
geometry/intersectionRecord.h
>
15
#include <
geometry/chord.h
>
16
#include <
gdb/vecNetwrkRecord.h
>
17
#include <
gdb/vecNwrkIntRec.h
>
18
#include <
geometry/intRecLst.h
>
19
#include "
tdbutil/stringKeyFactory.h
"
20
#include "
terrainInterface/terrainPagingGeometry.h
"
21
#include "
terrainInterface/terrainProcessPolygonsBox.h
"
22
#include "
features/feature.h
"
23
#include "
features/featureSet.h
"
24
#include "
features/featureContext.h
"
25
26
#include <string>
27
28
class
DtChordIntersectionRecord
;
29
class
DtSphereIntersectionRecord
;
30
class
DtString
;
31
class
Coordinate_System
;
32
class
DtConsoleCommandManager
;
33
class
DtTerrainCapabilities
;
34
35
namespace
makArchives
36
{
37
class
DtGenericTerrainRecord;
38
}
39
40
namespace
MAKVRinTerra
41
{
42
class
DtProj;
43
}
44
48
class
DT_DLL_terrainInterface
DtTerrainImplementation
49
{
50
public
:
51
typedef
std::map<std::string, std::string>
TerrainSettings
;
52
53
private
:
55
56
DtTerrainImplementation
();
57
DtTerrainImplementation
(
const
DtTerrainImplementation
& orig);
58
DtTerrainImplementation
& operator=(
const
DtTerrainImplementation
& orig);
60
public
:
61
DtTerrainImplementation
(
DtConsoleCommandManager
* cmdManager);
62
virtual
~
DtTerrainImplementation
();
63
66
virtual
bool
loadTerrain(
const
makArchives::DtGenericTerrainRecord
& rec,
67
MAKVRinTerra::DtFeatureLoader
& featureLoader,
68
const
TerrainSettings
& settings =
TerrainSettings
()) = 0;
69
70
virtual
const
Coordinate_System
* coordinateSystem()
const
= 0;
71
91
virtual
bool
chordIntersect(
const
DtChord
& chord,
92
DtChordIntersectionRecord
& record,
93
DtIntersectionRecord::DtIntersectionType
irtFlag =
94
DtIntersectionRecord::INT_ALL_DATA
,
bool
* dataAvailable = 0,
95
bool
overrideBlockingAssert =
false
)
const
= 0;
96
116
virtual
bool
allIntersectsAlongChord(
const
DtChord
& chord,
117
DtChordIntersectRecordList
& intList,
118
DtIntersectionRecord::DtIntersectionType
irtFlag =
119
DtIntersectionRecord::INT_ALL_DATA
,
bool
* dataAvailable = 0,
120
bool
overrideBlockingAssert =
false
)
const
= 0;
121
141
virtual
bool
sphereIntersect(
const
DtSphere
& sphere,
142
DtSphereIntersectionRecord
& record,
143
DtIntersectionRecord::DtIntersectionType
irtFlag =
144
DtIntersectionRecord::INT_ALL_DATA
,
bool
* dataAvailable = 0,
145
bool
overrideBlockingAssert =
false
)
const
= 0;
146
161
virtual
void
preloadTerrainAreas(
162
const
DtTerrainPagingGeometryList
& preloadGeometry) {};
163
166
virtual
const
DtTerrainCapabilities
* terrainCapabilities()
const
= 0;
167
178
virtual
void
setAssertOnBlockingTerrainCalls(
bool
assertBlock);
179
virtual
bool
assertOnBlockingTerrainCalls()
const
;
181
187
virtual
void
setIntersectDataLoadExpireTime
(
const
double
& expireTime) {};
188
193
virtual
void
expireDataLoadRequestsBeforeTime
(
const
double
& currentTime) {};
194
195
virtual
void
processTrianglesInArea(
DtTriangleCallbackFcn
func,
DtTriangleCallbackFinalizeFcn
finalize,
DtTerrainProcessPolygonsBox
& box,
void
* usr)
const
;
196
197
virtual
void
breakUpChords(
const
MAKVRinTerra::DtProj
&,
const
DtChord
& chord,
198
std::vector<DtChord>& chords);
199
200
protected
:
204
bool
myAssertOnBlockingTerrainCalls
;
205
207
TerrainSettings
mySettings
;
208
};
209
210
typedef
DtStringKeyFactoryWithParam
<
DtTerrainImplementation
,
211
DtConsoleCommandManager
*>
DtTerrainImplementationFactory
;
212
typedef
DtTerrainImplementationFactory::DtCreatorFcn
213
DtTerrainImplementationCreatorFcn
;
Document ID: Generated on Tue Jan 29 18:21:16 EST 2013 from SVN revision 123193
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (
www.mak.com
)