VR-Forces 4.5 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
attachedTerrain.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
15 
18 #include "vrfutil/rwInt.h"
19 #include "vrfutil/rwString.h"
20 #include "vrfutil/rwBoolean.h"
21 #include "vrfutil/readerWriter.h"
22 #include <matrix/vlDcm.h>
24 #include <geometry/point.h>
25 #include <geometry/chord.h>
26 #include <matrix/topoCoord.h>
27 #include <matrix/geodeticCoord.h>
28 #include <matrix/coordTransform.h>
29 
30 #include <boost/shared_ptr.hpp>
31 
32 class DtTerrainInterface;
33 class DtPhysicalWorld;
34 class DtVrfObject;
37 class DtSurface;
38 class Coordinate_System;
39 
41 {
42 public:
43 
46 
48  DtAttachedTerrain(const DtString& name,
49  DtReaderWriterRegistry* const parentRegistry = 0, DtVrfObject* owner = 0);
50 
51  DtAttachedTerrain(const DtSymbolString& name,
52  DtReaderWriterRegistry* const parentRegistry = 0, DtVrfObject* owner = 0);
53 
55  DtAttachedTerrain(const DtString& name, const DtAttachedTerrain& orig,
56  DtReaderWriterRegistry* const parentRegistry = 0);
57 
59  from, DtReaderWriterRegistry* const parentRegistry = 0);
60 
62  virtual ~DtAttachedTerrain();
63 
65  virtual DtVrfObject* vrfObject() const;
66 
69 
73  virtual const char* readerWriterType() const;
74 
75  static void objectAboutToBeRemovedCallback(DtVrfObject * vrfObject, void * usr);
76  virtual void processObjectAboutToBeRemovedCallback(DtVrfObject * vrfObject);
77 
78 public:
79  virtual const Coordinate_System* coordinateSystem() const;
80  virtual Coordinate_System* coordinateSystem();
81  virtual const Coordinate_System* objectModelCoordinateSystem() const;
82 
85  virtual void tick();
86 
88  virtual bool isHighFidelityTerrain() const;
89 
91  virtual void setStayAttachedEvenIfOff(bool);
92  virtual bool stayAttachedEvenIfOff() const;
93 
94  virtual double terrainHeight(const DtVector& localLocation,
95  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
96  virtual bool terrainHeight(const DtVector& localLocation,
97  double& terrainHeight, bool* dataAvailable = 0,
98  bool overrideBlockingAssert = false) const;
99 
100  virtual bool terrainHeightAndSurface(double lat, double lon,
101  double& terrainHeight, DtSurface& surface, bool* dataAvailable = 0,
102  bool overrideBlockingAssert = false) const;
103 
104  virtual bool terrainHeightAndSurface(const DtVector& localLocation,
105  double& terrainHeight, DtSurface& surface, bool* dataAvailable = 0,
106  bool overrideBlockingAssert = false) const;
107 
108 
109  virtual bool closestIntersection(const DtVector& localLocation,
110  DtPoint& intersectionPoint,
111  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
112 
113  virtual bool closestIntersection(const DtVector& localLocation,
114  DtVector& intersectionPoint,
115  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
116 
117  virtual bool closestIntersection(const DtVector& localLocation,
121  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
122 
123  virtual bool intersect(const DtChord& chord, DtPoint& intersectionPoint,
124  double& intersectionTime,
125  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
126 
127  virtual bool intersect(const DtChord& chord,
131  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
132 
135  virtual bool canCheckEntityHit() const;
136 
143  virtual bool closestIntersection(const DtVector& curPosition,
144  DtVector& intersection, bool ignoreWater, bool* dataAvailable = 0,
145  bool overrideBlockingAssert = false) const;
146 
172  virtual bool allIntersectsAlongChord(const DtChord& chord,
175  DtIntersectionRecord::INT_ALL_DATA, bool* dataAvailable = 0,
176  bool overrideBlockingAssert = false) const;
177 
178 protected:
179  bool testInvariant() const;
180 
183  virtual void updateCoordTransforms();
184 
186  virtual DtVector convertLocalPointToModelPoint(const DtVector& source) const;
187 
190  virtual DtChord convertLocalChordToModelChord(const DtChord& source) const;
191 
193  virtual DtVector convertModelPointToDatabasePoint(const DtPoint&) const;
194 
197  virtual void convertModelPointToDatabasePoint(DtVrfChordIntersectionRecord&) const;
198 
199 public:
200  virtual int appearanceFlags() const;
201 
202  void setObjectGeometricModel(boost::shared_ptr<DtTerrainInterface> newObjGeomModel);
203  boost::shared_ptr<DtTerrainInterface> objectGeometricModel() const;
204 
205  void setEntity(const DtSharedVrfObjectReference);
207 
208  void setPhysicalWorld(DtPhysicalWorld* newPhysicalWorld);
209  DtPhysicalWorld* physicalWorld();
210  const DtPhysicalWorld* physicalWorld() const;
211 
212  void clear();
213 
214  virtual DtAttachedTerrain* clone(const DtString& name, DtReaderWriterRegistry* const parentRegistry = 0) const;
215 
216 protected:
218 
220  boost::shared_ptr<DtTerrainInterface> myObjectGeometricModel;
221 
225 
228  DtCoordTransform myGeocentricToTopographic;
229  DtCoordTransform myTopographicToGeocentric;
230  DtCoordTransform myModelNormalToLocalNormal;
235 
240 };
241 

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)