VR-Forces 4.3.1 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) 2005 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
15 
17 #include "vrfutil/rwInt.h"
18 #include "vrfutil/rwString.h"
19 #include "vrfutil/readerWriter.h"
20 #include "vrfutil/rwObjectType.h"
21 #include <matrix/vlDcm.h>
22 #include <geometry/intersectionRecord.h>
23 #include <geometry/point.h>
24 #include <geometry/chord.h>
26 
27 class Coordinate_System;
29 class DtPhysicalWorld;
30 class DtGdbNode;
31 class DtTerrainDatabase;
32 class DtVrfObject;
33 class DtChordIntersectionRecord;
34 class DtChordIntersectRecordList;
35 class DtSurface;
36 
38 {
39 public:
40 
43 
45  DtAttachedTerrain(const DtString& name,
46  DtReaderWriterRegistry* const parentRegistry = 0);
47 
48  DtAttachedTerrain(const DtSymbolString& name,
49  DtReaderWriterRegistry* const parentRegistry = 0);
50 
52  DtAttachedTerrain(const DtString& name, const DtAttachedTerrain& orig,
53  DtReaderWriterRegistry* const parentRegistry = 0);
54 
55  DtAttachedTerrain(const DtSymbolString& name, const DtAttachedTerrain&
56  from, DtReaderWriterRegistry* const parentRegistry = 0);
57 
59  virtual ~DtAttachedTerrain();
60 
64 
68  virtual const char* readerWriterType() const;
69 
70  DtAttachedTerrain& operator=(const DtObjectType& type);
71 
72  static void objectAboutToBeRemovedCallback(DtVrfObject * vrfObject, void * usr);
73  virtual void processObjectAboutToBeRemovedCallback(DtVrfObject * vrfObject);
74 
75 public:
76  virtual const Coordinate_System* coordinateSystem() const;
77  virtual Coordinate_System* coordinateSystem();
78  virtual const Coordinate_System* objectModelCoordinateSystem() const;
79 
80 
81  virtual double terrainHeight(const DtVector& localLocation,
82  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
83  virtual bool terrainHeight(const DtVector& localLocation,
84  double& terrainHeight, bool* dataAvailable = 0,
85  bool overrideBlockingAssert = false) const;
86 
87  virtual bool terrainHeightAndSurface(const DtVector& localLocation,
88  double& terrainHeight, DtSurface& surface, bool* dataAvailable = 0,
89  bool overrideBlockingAssert = false) const;
90 
91 
92  virtual bool closestIntersection(const DtVector& localLocation,
93  DtPoint& intersectionPoint,
94  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
95 
96  virtual bool closestIntersection(const DtVector& localLocation,
97  DtVector& intersectionPoint,
98  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
99 
100  virtual bool closestIntersection(const DtVector& localLocation,
101  DtChordIntersectionRecord& record,
102  DtIntersectionRecord::DtIntersectionType irtFlag =
103  DtIntersectionRecord::INT_ALL_DATA,
104  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
105 
106  virtual bool intersect(const DtChord& chord, DtPoint& intersectionPoint,
107  double& intersectionTime,
108  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
109 
110  virtual bool intersect(const DtChord& chord,
111  DtChordIntersectionRecord& record,
112  DtIntersectionRecord::DtIntersectionType irtFlag =
113  DtIntersectionRecord::INT_ALL_DATA,
114  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
115 
122  virtual bool closestIntersection(const DtVector& curPosition,
123  DtVector& intersection, bool ignoreWater, bool* dataAvailable = 0,
124  bool overrideBlockingAssert = false) const;
125 
151  virtual bool allIntersectsAlongChord(const DtChord& chord,
152  DtChordIntersectRecordList& intList,
153  DtIntersectionRecord::DtIntersectionType irtFlag =
154  DtIntersectionRecord::INT_ALL_DATA, bool* dataAvailable = 0,
155  bool overrideBlockingAssert = false) const;
156 
157 protected:
158  bool testInvariant() const;
159 
162  virtual double setOriginToDatabase();
163 
165  virtual const DtDcm& rotateToDcm() const;
166  virtual const DtDcm& rotateBackDcm() const;
167 
169  virtual DtVector rotateTerrainLocation(const DtVector& source) const;
170 
173  virtual DtChord convertAndRotateChordToLocal(const DtChord& source) const;
174 
176  virtual DtPoint convertLocalToSimTerrain(const DtPoint&, double addHeight = 0.) const;
177 
180  virtual void convertLocalToSimTerrain(DtChordIntersectionRecord&, double addHeight = 0.) const;
181 
182 public:
183  void setObjectName(const DtString&);
184  const DtString objectName() const;
185 
186  void setObjectType(const DtObjectType&);
187  const DtObjectType& objectType() const;
188 
189  void addRef();
190  void removeRef();
191  int referenceCount() const;
192 
193  void setObjectGeometricModel(const DtObjectGeometricModel* newObjGeomModel);
194  const DtObjectGeometricModel* objectGeometricModel() const;
195 
196  void setEntity(const DtVrfObject*);
197  const DtVrfObject* entity() const;
198 
199  void setPhysicalWorld(DtPhysicalWorld* newPhysicalWorld);
200  DtPhysicalWorld* physicalWorld();
201  const DtPhysicalWorld* physicalWorld() const;
202 
203  void clear();
204 
205  virtual DtAttachedTerrain* clone(const DtString& name, DtReaderWriterRegistry* const parentRegistry = 0) const;
206 
207 protected:
211 
214 
218 
222 
225  mutable DtTaitBryan myLastEntityOrientation;
226  mutable DtDcm myRotateToDcm;
227  mutable DtDcm myRotateBackDcm;
228 };
229 

Document ID: Generated on Wed Jul 29 00:55:00 EDT 2015 from SVN revision 155257
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)