VR-Forces 4.6.1 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 
136  virtual bool elevationTile(const DtVector &p1, const DtVector& p2, const DtVector& p3, const DtVector& p4);
137 
141  virtual bool forcePaging() const;
142 
144  virtual void setFailure(const std::string& reason);
145 
148  virtual bool shouldExit() const;
149 };
150 

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)