VR-Forces Development_Version Class Documentation
Home
Modules
Namespaces
Classes
Files
Examples
Behavior Models
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
include
terrainDbFactory
terrainIntersectorRecord.h
Go to the documentation of this file.
1
/*******************************************************************************
2
** Copyright (c) 2008 MAK Technologies, Inc.
3
** All rights reserved.
4
*******************************************************************************/
5
/*******************************************************************************
6
** $RCSfile: terrainIntersectorRec.h,v $ $Revision: 1.2 $ $State: Exp $
7
*******************************************************************************/
8
#ifndef terrainIntersectorRecord_H_
9
#define terrainIntersectorRecord_H_
10
11
#include "
terrainDbFactory/terrainDbFactoryDefines.h
"
12
#include "
terrainDbFactory/metafileRecord.h
"
13
14
#include <map>
15
16
class
DtTerrainIntersectorDescriptor
;
17
class
DtTerrainIntersectorRecord
;
18
19
// This factory will map descriptor types to record creators. Each creator
20
// will be able to fully populate a descriptor from the descriptor record
21
22
typedef
DtTerrainIntersectorRecord
* (*DtTerrainIntDescCreatorFcn)(
const
DtTerrainIntersectorDescriptor
*);
23
typedef
std::map<int, DtTerrainIntDescCreatorFcn>
DtTerrainIntDescCreatorMap
;
24
25
class
DT_DLL_terrainDbFactory
DtTerrainIntersectorDescriptorFactory
26
{
27
public
:
28
// Constructor will add default descriptors
29
DtTerrainIntersectorDescriptorFactory
();
30
31
DtTerrainIntersectorRecord
* createRecordFromDescriptor(
const
DtTerrainIntersectorDescriptor
*);
32
void
addCreator(
int
,
DtTerrainIntDescCreatorFcn
);
33
34
protected
:
35
36
DtTerrainIntDescCreatorMap
myFactory
;
37
};
38
39
// This class in and of itself does nothing. It is used as a base class
40
// for intersectors that are implemented by the system
41
class
DT_DLL_terrainDbFactory
DtTerrainIntersectorRecord
:
public
DtMetafileRecord
42
{
43
public
:
44
45
// default constructor.
46
DtTerrainIntersectorRecord
();
47
48
// destructor
49
virtual
~
DtTerrainIntersectorRecord
();
50
51
// copy constructor
52
DtTerrainIntersectorRecord
(
const
DtTerrainIntersectorRecord
& orig);
53
54
// assignment operator
55
DtTerrainIntersectorRecord
&
operator=
(
const
DtTerrainIntersectorRecord
& rhs);
56
57
// Returns "DtNoTerrainIntersectorRecordString".
58
virtual
DtString
recordTypeName
()
const
;
59
virtual
DtConfigCategoryType
recordCategory
()
const
;
60
61
virtual
int
terrainIntersectorType()
const
= 0;
62
virtual
DtTerrainIntersectorRecord
* clone()
const
= 0;
63
virtual
DtTerrainIntersectorDescriptor
* createIntersectorDescriptor()
const
= 0;
64
65
static
DtTerrainIntersectorDescriptorFactory
* factory();
66
67
protected
:
68
static
DtTerrainIntersectorDescriptorFactory
gTerrainRecordDescriptorFactory
;;
69
};
70
71
class
DT_DLL_terrainDbFactory
DtNativeIntersectorRecord
:
public
DtTerrainIntersectorRecord
72
{
73
public
:
74
75
// default constructor.
76
DtNativeIntersectorRecord
();
77
78
// destructor
79
virtual
~
DtNativeIntersectorRecord
();
80
81
// copy constructor
82
DtNativeIntersectorRecord
(
const
DtNativeIntersectorRecord
& orig);
83
84
// assignment operator
85
DtNativeIntersectorRecord
&
operator=
(
const
DtNativeIntersectorRecord
& rhs);
86
87
// Returns "DtNativeTerrainIntersectorRecordString".
88
virtual
DtString
recordTypeName
()
const
;
89
virtual
DtConfigCategoryType
recordCategory
()
const
;
90
91
virtual
int
terrainIntersectorType
()
const
;
92
93
static
DtMetafileRecord
* create();
94
static
DtTerrainIntersectorRecord
* createFromDescriptor(
const
DtTerrainIntersectorDescriptor
*);
95
96
virtual
DtTerrainIntersectorRecord
*
clone
()
const
;
97
virtual
DtTerrainIntersectorDescriptor
*
createIntersectorDescriptor
()
const
;
98
};
99
100
class
DT_DLL_terrainDbFactory
DtSpatialSubdivisionIntersectorRecord
:
public
DtTerrainIntersectorRecord
101
{
102
public
:
103
104
// default constructor.
105
DtSpatialSubdivisionIntersectorRecord
();
106
107
// destructor
108
virtual
~
DtSpatialSubdivisionIntersectorRecord
();
109
110
// copy constructor
111
DtSpatialSubdivisionIntersectorRecord
(
const
DtSpatialSubdivisionIntersectorRecord
& orig);
112
113
// assignment operator
114
DtSpatialSubdivisionIntersectorRecord
&
operator=
(
const
DtSpatialSubdivisionIntersectorRecord
& rhs);
115
116
// Returns "DtNoTerrainIntersectorRecordString".
117
virtual
DtString
recordTypeName
()
const
;
118
virtual
DtConfigCategoryType
recordCategory
()
const
;
119
120
virtual
int
terrainIntersectorType
()
const
;
121
122
virtual
void
setSpatialSubdivisionCells(
int
x = 100,
int
y = 100,
int
z = 100);
123
virtual
void
spatialSubdivisionCells(
int
& x,
int
& y,
int
&z);
124
125
static
DtMetafileRecord
* create();
126
static
DtTerrainIntersectorRecord
* createFromDescriptor(
const
DtTerrainIntersectorDescriptor
*);
127
128
virtual
DtTerrainIntersectorRecord
*
clone
()
const
;
129
130
// identifies a token or passes it to the parent class.
131
virtual
bool
processToken
(std::istream& stream,
DtString
& token);
132
virtual
DtTerrainIntersectorDescriptor
*
createIntersectorDescriptor
()
const
;
133
134
protected
:
135
136
// Write self to stream.
137
virtual
bool
writeAttributes
(std::ostream& stream)
const
;
138
virtual
bool
getAttribute
(
const
DtString
attrName,
DtString
& value,
unsigned
index=0);
139
virtual
bool
setToken
(
const
DtString
& token,
const
DtString
value);
140
141
protected
:
142
int
myX
;
143
int
myY
;
144
int
myZ
;
145
};
146
147
class
DT_DLL_terrainDbFactory
DtOpcodeIntersectorRecord
:
public
DtTerrainIntersectorRecord
148
{
149
public
:
150
151
// default constructor.
152
DtOpcodeIntersectorRecord
();
153
154
// destructor
155
virtual
~
DtOpcodeIntersectorRecord
();
156
157
// copy constructor
158
DtOpcodeIntersectorRecord
(
const
DtOpcodeIntersectorRecord
& orig);
159
160
// assignment operator
161
DtOpcodeIntersectorRecord
&
operator=
(
const
DtOpcodeIntersectorRecord
& rhs);
162
163
// Returns "DtNoTerrainIntersectorRecordString".
164
virtual
DtString
recordTypeName
()
const
;
165
virtual
DtConfigCategoryType
recordCategory
()
const
;
166
167
virtual
int
terrainIntersectorType
()
const
;
168
169
static
DtMetafileRecord
* create();
170
static
DtTerrainIntersectorRecord
* createFromDescriptor(
const
DtTerrainIntersectorDescriptor
*);
171
172
virtual
DtTerrainIntersectorRecord
*
clone
()
const
;
173
virtual
DtTerrainIntersectorDescriptor
*
createIntersectorDescriptor
()
const
;
174
};
175
176
inline
DtTerrainIntersectorDescriptorFactory
*
DtTerrainIntersectorRecord::factory
()
177
{
178
return
&
gTerrainRecordDescriptorFactory
;
179
}
180
181
#endif
Document ID: Generated on Tue Mar 8 22:13:38 EST 2016 from SVN revision 162938
Copyright © 2005-2015 VT MÄK. All Rights Reserved (
www.mak.com
)