VR-Forces 4.1 Class Documentation
Home
Modules
Namespaces
Classes
Files
Examples
Behavior Models
File List
File Members
include
terrainDbFactory
terrainIntersectorRec.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 terrainIntersectorRec_H_
9
#define terrainIntersectorRec_H_
10
11
#include "
terrainDbFactory/terrainDbFactoryDefines.h
"
12
#include "
terrainDbFactory/mfRec.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 Jan 29 18:21:16 EST 2013 from SVN revision 123193
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (
www.mak.com
)