VR-Forces 4.6.1 Class Documentation
Home
Modules
Namespaces
Classes
Files
Examples
Behavior Models
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
include
gdb
opcodeTerrainIntersector.h
Go to the documentation of this file.
1
/*******************************************************************************
2
** Copyright (c) 2008 MAK Technologies, Inc.
3
** All rights reserved.
4
*******************************************************************************/
5
/*******************************************************************************
6
** $RCSfile: opcodeTerrainIntersector.h,v $ $Revision: 1.2 $ $State: Exp $
7
*******************************************************************************/
8
11
12
#ifndef opcodeTerrainIntersector_h
13
#define opcodeTerrainIntersector_h
14
15
#include "
gdb/terrainIntersector.h
"
16
#include "
gdb/terrainIntersectorDescriptor.h
"
17
18
class
DtOpcodeTerrainIntersectorDescriptor
;
19
class
DtOpcodeTerrainIntersectorImpl
;
20
21
// Terrain intersector that uses the external OPCODE library do do terrain
22
// intersection. This takes a little while to init(), and uses a decent
23
// amount of memory, but results in very fast runtime intersection checks.
24
class
DT_DLL_gdb
DtOpcodeTerrainIntersector
:
public
DtTerrainIntersector
25
{
26
private
:
27
// Not implemented.
28
DtOpcodeTerrainIntersector
();
29
// Not implemented.
30
DtOpcodeTerrainIntersector
(
const
DtOpcodeTerrainIntersector
& orig);
31
// Not implemented.
32
DtOpcodeTerrainIntersector
&
operator=
(
const
DtOpcodeTerrainIntersector
& orig);
33
34
public
:
35
DtOpcodeTerrainIntersector
(
DtTerrainDatabase
* terrainDb,
36
const
DtTerrainIntersectorDescriptor
* descriptor);
37
virtual
~
DtOpcodeTerrainIntersector
();
38
39
virtual
bool
init
();
40
virtual
bool
reinitialize
();
41
42
// \return The total number of bytes of memory used by this intersector
43
// and any of its internal indexing into the terrain.
44
virtual
unsigned
int
memoryUsage
()
const
;
45
46
virtual
bool
chordIntersect
(
const
DtChord
& chord,
47
DtChordIntersectionRecord
& record,
48
DtGdbNode::DtIntersectRecordType
irtFlag =
DtGdbNode::IRT_ALL_DATA_TERRAIN
)
const
;
49
50
virtual
bool
allIntersectsAlongChord
(
const
DtChord
& chord,
51
DtChordIntersectRecordList
& intList,
52
DtGdbNode::DtIntersectRecordType
irtFlag =
DtGdbNode::IRT_ALL_DATA_TERRAIN
)
const
;
53
54
virtual
bool
sphereIntersect
(
const
DtSphere
& sphere,
DtSphereIntersectionRecord
& record,
55
DtGdbNode::DtIntersectRecordType
irtFlag =
DtGdbNode::IRT_ALL_DATA_TERRAIN
)
const
;
56
57
virtual
int
terrainIntersectorType
()
const
;
58
59
// \return A descriptor for setting this intersector to the DtTerrainDatabase.
60
static
DtOpcodeTerrainIntersectorDescriptor
* createDescriptor();
61
62
// \return True if the OPCODE Intersector is valid to use on this terrain
63
// database. Tests to see if each vertex in the database can be converted
64
// to floating point without loosing too much precision.
65
static
bool
intersectorValid(
const
DtTerrainDatabase
* terrainDb);
66
67
protected
:
68
DtOpcodeTerrainIntersectorImpl
*
myImpl
;
69
};
70
71
// Descriptor for the DtOpcodeTerrainIntersector class.
72
class
DT_DLL_gdb
DtOpcodeTerrainIntersectorDescriptor
:
public
DtTerrainIntersectorDescriptor
73
{
74
public
:
75
DtOpcodeTerrainIntersectorDescriptor
();
76
DtOpcodeTerrainIntersectorDescriptor
(
const
DtOpcodeTerrainIntersectorDescriptor
& orig);
77
virtual
~
DtOpcodeTerrainIntersectorDescriptor
();
78
79
DtOpcodeTerrainIntersectorDescriptor
&
operator=
(
const
DtOpcodeTerrainIntersectorDescriptor
& orig);
80
81
virtual
int
terrainIntersectorType
()
const
;
82
83
virtual
void
descriptorInformation
(
DtString
& name,
DtString
& properties)
const
;
84
85
virtual
DtTerrainIntersectorDescriptor
*
clone
()
const
;
86
};
87
88
#endif
Document ID: Generated on Wed Jul 25 16:57:45 EDT 2018 from SVN revision 190790
Copyright © 2005-2018 VT MÄK. All Rights Reserved (
www.mak.com
)