VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
terrainProcessPolygonsBox.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2012 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 #pragma once
6 
8 #include "geometry/surface.h"
9 #include "geometry/point.h"
10 #include "matrix/coordTransform.h"
11 
12 #include <deque>
13 #include <vector>
14 
15 #include <boost/shared_ptr.hpp>
16 #include <boost/optional.hpp>
17 
18 class Coordinate_System;
19 
20 namespace makVrv
21 {
22  class DtDynamicTerrainFeature;
23 }
24 
26 {
27  DtTerrainTriangleStruct() : shapeId(0) { }
28 
29  DtPoint points[3];
31  int shapeId;
32 
33  std::vector< boost::shared_ptr<makVrv::DtDynamicTerrainFeature> > dynamicTerrainFeatures;
34 };
35 
40 {
41 public:
42  explicit DtTerrainProcessPolygonsBox(const Coordinate_System& local);
44  const Coordinate_System& local,
45  const DtPoint& nw, const DtPoint& ne, const DtPoint& sw, const DtPoint& se);
46 
47  virtual ~DtTerrainProcessPolygonsBox();
48 
54  virtual DtPoint northeast(bool inLocal = true) const;
55  virtual DtPoint northwest(bool inLocal = true) const;
56  virtual DtPoint southeast(bool inLocal = true) const;
57  virtual DtPoint southwest(bool inLocal = true) const;
59 
62  virtual void setNewNW(const DtPoint& nw);
63  virtual void setNewNE(const DtPoint& ne);
64  virtual void setNewSW(const DtPoint& sw);
65  virtual void setNewSE(const DtPoint& se);
67 
74  virtual double minAltitude() const;
75  virtual double maxAltitude() const;
76  virtual void setMinAltitude(double);
77  virtual void setMaxAltitude(double);
79 
80  virtual bool isUseAllTerrain() const;
81  virtual void setIsUseAllTerrain(bool useAllTerrain);
82 
83  virtual bool doesTriangleIntersectBox(const DtTerrainTriangleStruct& polygon) const;
84  virtual bool isPointInsideBox(const DtPoint &point) const;
85  virtual DtPoint centerOfBox() const;
86 
87 protected:
88  virtual DtCoordTransform transform() const;
89  virtual void clearTopoData();
90 
97  double myMinAltitude;
98  double myMaxAltitude;
99  mutable boost::optional<DtPoint> myNorthwestTopo;
100  mutable boost::optional<DtPoint> myNortheastTopo;
101  mutable boost::optional<DtPoint> mySouthwestTopo;
102  mutable boost::optional<DtPoint> mySoutheastTopo;
103  mutable boost::optional<DtPoint> myTopoAABBMin;
104  mutable boost::optional<DtPoint> myTopoAABBMax;
105  mutable boost::optional<DtCoordTransform> myTransform;
106 };
107 
108 typedef void (*DtTriangleCallbackFinalizeFcn)(int status, void* usr);
109 typedef void (*DtTriangleCallbackFcn)(DtTerrainTriangleStruct& triangle, void* usr);
110 
114 {
115 public:
117  virtual bool processTriangles() const;
118 
120  virtual void processTriangle(const DtTerrainTriangleStruct& triangle) = 0;
121 
124  virtual bool processAABBs() const;
125 
127  virtual void queryAABB(const DtVector& min, const DtVector& max, const DtCoordTransform& toLocal);
128 
132  virtual bool objectAABB(const DtVector& min, const DtVector& max, const DtCoordTransform& toLocal);
133 
135  virtual bool processElevationTiles() const;
136 
139  virtual bool elevationTile(const DtVector &p1, const DtVector& p2, const DtVector& p3, const DtVector& p4);
140 
144  virtual bool forcePaging() const;
145 
147  virtual void setFailure(const std::string& reason);
148 
151  virtual bool shouldExit() const;
152 
154  virtual void setName(const std::string& name);
155 
157  virtual std::string& name();
158 
159 protected:
160 
161  std::string myTerrainAreaName;
162 
163 };
164 
double myMaxAltitude
Definition: terrainProcessPolygonsBox.h:98
boost::optional< DtPoint > myTopoAABBMin
Definition: terrainProcessPolygonsBox.h:103
boost::optional< DtPoint > myNorthwestTopo
Definition: terrainProcessPolygonsBox.h:99
DtPoint mySouthwest
Definition: terrainProcessPolygonsBox.h:95
DtSurface surface
Definition: terrainProcessPolygonsBox.h:30
const Coordinate_System & myLocal
Definition: terrainProcessPolygonsBox.h:91
Definition: surface.h:179
DtPoint myNorthwest
Definition: terrainProcessPolygonsBox.h:93
DtPoint myNortheast
Definition: terrainProcessPolygonsBox.h:94
boost::optional< DtPoint > myTopoAABBMax
Definition: terrainProcessPolygonsBox.h:104
Definition: terrainProcessPolygonsBox.h:25
Definition: coordSystem.h:54
std::string myTerrainAreaName
Definition: terrainProcessPolygonsBox.h:161
bool myIsUseAllTerrain
Definition: terrainProcessPolygonsBox.h:92
#define DT_DLL_terrainInterface
This file is used to determine how to build.
Definition: terrainInterfaceDefines.h:25
boost::optional< DtPoint > myNortheastTopo
Definition: terrainProcessPolygonsBox.h:100
boost::optional< DtPoint > mySouthwestTopo
Definition: terrainProcessPolygonsBox.h:101
boost::optional< DtPoint > mySoutheastTopo
Definition: terrainProcessPolygonsBox.h:102
DtPoint mySoutheast
Definition: terrainProcessPolygonsBox.h:96
boost::optional< DtCoordTransform > myTransform
Definition: terrainProcessPolygonsBox.h:105
void(* DtTriangleCallbackFcn)(DtTerrainTriangleStruct &triangle, void *usr)
Definition: terrainProcessPolygonsBox.h:109
DtTerrainTriangleStruct()
Definition: terrainProcessPolygonsBox.h:27
int shapeId
Definition: terrainProcessPolygonsBox.h:31
Interface for getting terrain triangle data out of DtTerrainInterface::trianglesInArea.
Definition: terrainProcessPolygonsBox.h:113
double myMinAltitude
Definition: terrainProcessPolygonsBox.h:97
std::vector< boost::shared_ptr< makVrv::DtDynamicTerrainFeature > > dynamicTerrainFeatures
Definition: terrainProcessPolygonsBox.h:33
Definition: point.h:34
void(* DtTriangleCallbackFinalizeFcn)(int status, void *usr)
Definition: terrainProcessPolygonsBox.h:108
Represents an area query which can be used to extract triangles from DtTerrainInterface.
Definition: terrainProcessPolygonsBox.h:39

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)