VR-Forces 4.5 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator 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 
17 namespace makVrv
18 {
19  class DtDynamicTerrainFeature;
20 }
21 
23 {
27 };
28 
30 {
31  DtPoint points[3];
33  int shapeId;
34 
35  std::vector< boost::shared_ptr<makVrv::DtDynamicTerrainFeature> > dynamicTerrainFeatures;
36 };
37 
39 {
40 public:
42  DtTerrainProcessPolygonsBox(const DtPoint& nw, const DtPoint& ne, const DtPoint& sw, const DtPoint& se);
45  virtual ~DtTerrainProcessPolygonsBox();
46 
47  virtual double minX(bool inLocal = true) const;
48  virtual double maxX(bool inLocal = true) const;
49  virtual double minY(bool inLocal = true) const;
50  virtual double maxY(bool inLocal = true) const;
51  virtual double minZ(bool inLocal = true) const;
52  virtual double maxZ(bool inLocal = true) const;
53  virtual DtPoint northeast(bool inLocal = true) const;
54  virtual DtPoint northwest(bool inLocal = true) const;
55  virtual DtPoint southeast(bool inLocal = true) const;
56  virtual DtPoint southwest(bool inLocal = true) const;
57  virtual void setNewNW(const DtPoint& nw);
58  virtual void setNewNE(const DtPoint& ne);
59  virtual void setNewSW(const DtPoint& sw);
60  virtual void setNewSE(const DtPoint& se);
61  virtual void setMaxAltitude(double);
62  virtual void setMinAltitude(double);
63  virtual double maxAltitude() const;
64  virtual double minAltitude() const;
65  virtual bool isPointWithinAxisAlignedBoundingBox(const DtPoint& point) const;
66  virtual bool isTriangleWithinBox(const DtTerrainTriangleStruct& polygon) const;
67  virtual bool isPointInsideBoundingBox(const DtPoint &point) const;
68  virtual bool isUseAllTerrain() const;
69  virtual void setIsUseAllTerrain(bool useAllTerrain);
70  virtual bool useZ() const;
71  virtual void setUseZ(bool useZ);
72  virtual DtPoint centerOfBox() const;
73  virtual void setIsGeocentric(bool isGeo);
74  virtual bool isGeocentric() const;
75  virtual bool isTriangleAABBWithinAABB(const DtTerrainTriangleStruct& triangle) const;
76  virtual bool doesTriangleIntersect(const DtTerrainTriangleStruct& triangle) const;
77  virtual bool isBoxInsideTriangle(const DtTerrainTriangleStruct& triangle) const;
78 
79 protected:
80  virtual double determineSideOfLine(double x1, double x2, double y1, double y2, double xp, double yp ) const;
81  virtual DtCoordTransform transform() const;
83  virtual double maxMin(const std::deque<DtPoint>& points, DtPointAxis axis, bool mode) const;
84 
89  double myMinAltitude;
90  double myMaxAltitude;
92  bool myUseZ;
94  DtCoordTransform myTransform;
95 };
96 
97 typedef void (*DtTriangleCallbackFinalizeFcn)(int status, void* usr);
98 typedef void (*DtTriangleCallbackFcn)(DtTerrainTriangleStruct& triangle, void* usr);

Document ID: Generated on Thu Mar 23 18:54:12 EDT 2017 from SVN revision 174804
Copyright © 2005-2017 VT MÄK. All Rights Reserved (www.mak.com)