23 #include <matrix/vlDcm.h>
27 #include <matrix/topoCoord.h>
28 #include <matrix/geodeticCoord.h>
29 #include <matrix/coordTransform.h>
30 #include <matrix/3dBoundingVolume.h>
31 #include <tbb/spin_rw_mutex.h>
34 #include <boost/optional.hpp>
100 virtual bool isHighFidelityTerrain()
const;
102 virtual bool skipThisObject()
const;
105 virtual void setStayAttachedEvenIfOff(
bool);
106 virtual bool stayAttachedEvenIfOff()
const;
114 void setIntersectsFallThroughToParent(
bool val);
115 bool intersectsFallThroughToParent()
const;
119 virtual double terrainHeight(
const DtVector& localLocation,
124 virtual bool terrainHeightAndSurface(
double lat,
double lon,
127 virtual bool terrainHeightAndSurface(
const DtVector& localLocation,
133 virtual bool closestIntersection(
const DtVector& localLocation,
137 virtual bool closestIntersection(
const DtVector& localLocation,
138 DtVector& intersectionPoint,
141 virtual bool closestIntersection(
const DtVector& localLocation,
148 virtual bool intersect(
const DtChord& chord,
DtPoint& intersectionPoint,
149 double& intersectionTime,
152 virtual bool intersect(
const DtChord& chord,
158 virtual bool closestIntersection(
const DtVector& curPosition,
162 virtual bool allIntersectsAlongChord(
const DtChord& chord,
167 virtual void embedInTerrainIfNeeded();
170 virtual bool attachedEntityIsMobile()
const;
173 virtual void updateCoordTransforms();
176 virtual void updateBoundingVolume();
179 virtual DtVector convertLocalPointToModelPoint(
const DtVector&
source)
const;
183 virtual DtChord convertLocalChordToModelChord(
const DtChord& source)
const;
186 virtual DtVector convertModelPointToDatabasePoint(
const DtPoint&)
const;
191 virtual void processObjectAboutToBeRemovedCallback();
193 virtual unsigned intersectChordWithBoundingVolume(
const DtChord& chord,
197 virtual unsigned intersectChordWithBoundingVolume(
const DtChord& chord,
bool calculateNormal,
201 virtual bool boundingVolumeAltitude(
const DtVector& p,
double& alt)
const;
208 virtual bool entityIsValidAndAttached()
const;
210 virtual int appearanceFlags()
const;
212 void setObjectGeometricModel(std::shared_ptr<DtTerrainInterface> newObjGeomModel);
213 std::shared_ptr<DtTerrainInterface> objectGeometricModel()
const;
228 virtual void setEmbarkedOn(
const DtUUID&);
UUID is a unique ID wrapper class.
Definition: uuid.h:59
DtVector myLastWorldPosition
Definition: attachedTerrain.h:247
NOTE: This entire class is deprecated, in favor of Dt3dChord.
Definition: chord.h:40
virtual const char * readerWriterType() const
Used to supply a string type that this reader writer type is. This can be used in place of dynamic-ca...
This class is used to interface with the terrain a particular entity is "attached" to...
Definition: attachedTerrain.h:57
bool myIntersectsFallThroughToParent
Definition: attachedTerrain.h:254
DtVrfChordIntersectionRecord represents a list of DtChordIntersectRecords. This is useful for followi...
Definition: vrfChordIntersectRecordList.h:31
DtDcm myLastWorldOrientationMatrix
Definition: attachedTerrain.h:245
DtRwSimObjectReference myEntity
Definition: attachedTerrain.h:231
This class allows one to collect and compare strings using an index number instead of having to do st...
Definition: symbolString.h:27
DtCoordTransform myModelNormalToLocalNormal
Definition: attachedTerrain.h:244
int myAttachedEntityAppearance
Definition: attachedTerrain.h:255
virtual void postGetSelf()
Called after either version of getSelf (mtl or environment). Default is no-op.
Definition: readerWriter.h:85
boost::optional< Dt3dBoundingVolume > myLastLocalBoundingVolume
Definition: attachedTerrain.h:249
Definition: readerWriterRegistry.h:39
Definition: surface.h:181
DtVector myLastLocalPosition
Definition: attachedTerrain.h:248
bool myIsMoveable
Definition: attachedTerrain.h:270
const DtSimulationServices * mySimulationServices
Definition: attachedTerrain.h:263
DtTerrainIntersectOptions Passed to terrain intersect functions to modify how intersect acts...
Definition: terrainIntersectOptions.h:22
Specialized reader/writer version of the shared object reference that will encapsulate the actual sha...
Definition: rwSimObjectReference.h:21
bool myAttachedEntityIsMobile
Definition: attachedTerrain.h:256
The DtPhysicalWorld is the primary interface to and manager of all of the "physical" aspects of the s...
Definition: physicalWorld.h:112
Definition: coordSystem.h:54
DtDcm myLastLocalOrientationMatrix
Definition: attachedTerrain.h:246
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
tbb::spin_rw_mutex myStayAttachedEvenIfOffMutex
Definition: attachedTerrain.h:267
bool myInitialPlacement
Definition: attachedTerrain.h:260
boost::signals2::scoped_connection mySimObjectDeletedConnection
Definition: attachedTerrain.h:265
DtRwBoolean myStayAttachedEvenIfOff
Definition: attachedTerrain.h:252
DtTerrainInterface allows access to common terrain calls without having to know the terrain implement...
Definition: terrainInterface.h:93
DtPlatformSimObjectFacade myPlatformSimObjectFacade
Definition: attachedTerrain.h:232
const DtSimObject * mySimObject
Definition: attachedTerrain.h:251
std::shared_ptr< DtTerrainInterface > myObjectGeometricModel
For now, this is the model that we get.
Definition: attachedTerrain.h:234
const char * source
Definition: lz4.h:442
bool myCheckMovingToNonMoving
Definition: attachedTerrain.h:258
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:96
Definition: vrfChordIntersectionRecord.h:19
DT_DLL_vrfutil bool intersection(const DtRailSegment *currentSegment, const DtRailSegment *nextSegment)
Given two segments, determine if where they meet is an intersection or just a bend in the road...
bool myScenarioIsRunning
Definition: attachedTerrain.h:257
Represents a single simulation object in the exercise. Object may be VRF simulation, or non-VRF simulated, and may be simulated by the local sim engine, or by a remote sim engine. Only public (external) state of the object is available. All data is read-only. All access to data of the object is thread safe within the simulation frame.
Definition: simObject.h:80
Description: Readable, Writable bool.
Definition: rwBoolean.h:26
DtUUID myEmbarkedOn
Definition: attachedTerrain.h:269
A DtChord is a finite line segment in 3-space, represented by two points. Data derived from the two e...
DtCoordTransform myGeocentricToTopographic
Last local orientation of the referenced entity. If different, then recalculates orientation matrix w...
Definition: attachedTerrain.h:242
const DtPhysicalWorld * myPhysicalWorld
For now,just use the global terrain database to return the coordinate system and perform the intersec...
Definition: attachedTerrain.h:238
const DtReaderWriter & operator=(const DtReaderWriter &orig)
assignment operator
bool myBVChanged
Definition: attachedTerrain.h:259
DtCoordTransform myTopographicToGeocentric
Definition: attachedTerrain.h:243
bool myMadeInitialPlacement
Definition: attachedTerrain.h:261
DtTerrainIntersectStatus Contains information about status of "data available" when an intersection c...
Definition: terrainIntersectStatus.h:23
A locally simulated VRF object.
Definition: localObject.h:98