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
gdb
triangulator.h
Go to the documentation of this file.
1
/*******************************************************************************
2
** Copyright (c) 2006 MAK Technologies, Inc.
3
** All rights reserved.
4
*******************************************************************************/
5
/*******************************************************************************
6
** $RCSfile: triangulator.h,v $ $Revision: 1.8 $ $State: Exp $
7
*******************************************************************************/
8
9
#ifndef triangulator_H_
10
#define triangulator_H_
11
12
#include <vector>
13
#include "
gdb/vertexManager.h
"
14
#include "
gdb/gdbDefines.h
"
15
18
19
enum
DtTriangulationResult
20
{
21
DtNonFlatPolygon
,
22
DtInvalidZeroNormalPolygon
,
23
DtValidPolygon
24
};
25
26
34
class
DT_DLL_gdb
DtTriangulator
35
{
36
37
public
:
38
44
static
bool
triangulateTerrain(
DtTerrainDatabase
* db);
45
55
static
DtTriangulationResult
triangulatePolygon(
56
DtTerrainDatabase
* db,
57
DtPolygonIndirect
* node,
58
DtGroup
*
const
parent);
59
60
protected
:
61
67
static
double
kross(
const
DtVertexManager
* mgr,
int
a,
int
b,
int
c);
68
73
static
bool
collinear(
const
DtVertexManager
* mgr,
int
a,
int
b,
int
c);
74
82
static
bool
segmentInCone(
const
DtVertexManager
* mgr,
int
v0,
int
v1,
int
vm,
int
vp);
83
89
static
bool
between(
const
DtVertexManager
* mgr,
int
a,
int
b,
int
c);
90
97
static
bool
properIntersect(
const
DtVertexManager
* mgr,
int
a,
int
b,
int
c,
int
d);
98
106
static
bool
intersect(
const
DtVertexManager
* mgr,
int
a,
int
b,
int
c,
int
d);
107
114
static
bool
isDiagonal(
const
DtVertexManager
* mgr,
int
numberOfVertices,
115
std::vector<DtVertexID>& vertIds,
int
i0,
int
i1);
116
120
static
bool
isValidPoly(
const
DtPolygonIndirect
* poly);
121
125
static
bool
isFlatSurface(
const
DtPolygonIndirect
* poly);
126
129
static
void
printVerts(std::vector<DtVertexID> lst);
130
141
static
void
triangulatePolygon(
142
DtTerrainDatabase
* db,
143
DtSurfaceID
sid,
144
const
DtVertexManager
* mgr,
145
DtGroup
*
const
parent,
146
std::vector<DtVertexID>& vertIds);
147
153
static
bool
alignPolygonToXYPlane(
154
DtPolygonIndirect
* poly,
155
DtHomogeneousTransformMatrix
& aMatrix);
156
160
static
void
transformPolygon(
161
DtPolygonIndirect
* poly,
162
DtHomogeneousTransformMatrix
& aMatrix);
163
164
protected
:
165
166
static
const
double
theErrorMargin
;
167
168
};
169
170
#endif
171
Document ID: Generated on Mon Jul 4 01:00:18 EDT 2016 from SVN revision 166489
Copyright © 2005-2015 VT MÄK. All Rights Reserved (
www.mak.com
)