VR-Forces 4.0.4 Class Documentation
Public Member Functions | Protected Member Functions | Protected Attributes
DtAttachedTerrain Class Reference
Inheritance diagram for DtAttachedTerrain:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 DtAttachedTerrain ()
 default constructor
 DtAttachedTerrain (const DtString &name, DtReaderWriterRegistry *const parentRegistry=0)
 real constructor
 DtAttachedTerrain (const DtSymbolString &name, DtReaderWriterRegistry *const parentRegistry=0)
 DtAttachedTerrain (const DtString &name, const DtAttachedTerrain &orig, DtReaderWriterRegistry *const parentRegistry=0)
 copy constructor
 DtAttachedTerrain (const DtSymbolString &name, const DtAttachedTerrain &from, DtReaderWriterRegistry *const parentRegistry=0)
virtual ~DtAttachedTerrain ()
 destructor
DtAttachedTerrainoperator= (const DtAttachedTerrain &orig)
 Assign to DtRwBoundingVolume. Assigns value only.
DtAttachedTerrainoperator= (const DtObjectGeometricModelEntry &orig)
virtual const char * readerWriterType () const
 Used to supply a string type that this reader writer type is.
DtAttachedTerrainoperator= (const DtObjectType &type)
virtual const Coordinate_SystemcoordinateSystem () const
virtual Coordinate_SystemcoordinateSystem ()
virtual const Coordinate_SystemobjectModelCoordinateSystem () const
virtual double terrainHeight (const DtVector &localLocation, bool *dataAvailable=0, bool overrideBlockingAssert=false) const
virtual bool terrainHeight (const DtVector &localLocation, double &terrainHeight, bool *dataAvailable=0, bool overrideBlockingAssert=false) const
virtual bool terrainHeightAndSurface (const DtVector &localLocation, double &terrainHeight, DtSurface &surface, bool *dataAvailable=0, bool overrideBlockingAssert=false) const
virtual bool closestIntersection (const DtVector &localLocation, DtPoint &intersectionPoint, DtVectorNetworkRecord *vectorNetworkRecord=0, DtVectorNetworkIntersectionRecord *vecNetworkIntersectionRecord=0, bool *dataAvailable=0, bool overrideBlockingAssert=false) const
virtual bool closestIntersection (const DtVector &localLocation, DtVector &intersectionPoint, DtVectorNetworkRecord *vectorNetworkRecord=0, DtVectorNetworkIntersectionRecord *vecNetworkIntersectionRecord=0, bool *dataAvailable=0, bool overrideBlockingAssert=false) const
virtual bool closestIntersection (const DtVector &localLocation, DtChordIntersectionRecord &record, DtIntersectionRecord::DtIntersectionType irtFlag=DtIntersectionRecord::INT_ALL_DATA, DtVectorNetworkRecord *vectorDatarecord=0, DtVectorNetworkIntersectionRecord *vectorIntersectionRecord=0, bool *dataAvailable=0, bool overrideBlockingAssert=false) const
virtual bool intersect (const DtChord &chord, DtPoint &intersectionPoint, double &intersectionTime, DtVectorNetworkRecord *record=0, DtVectorNetworkIntersectionRecord *intersectionRecord=0, bool *dataAvailable=0, bool overrideBlockingAssert=false) const
virtual bool intersect (const DtChord &chord, DtChordIntersectionRecord &record, DtIntersectionRecord::DtIntersectionType irtFlag=DtIntersectionRecord::INT_ALL_DATA, DtVectorNetworkRecord *vectorDatarecord=0, DtVectorNetworkIntersectionRecord *vectorIntersectionRecord=0, bool *dataAvailable=0, bool overrideBlockingAssert=false) const
virtual bool closestIntersection (const DtVector &curPosition, DtVector &intersection, bool ignoreWater, bool *dataAvailable=0, bool overrideBlockingAssert=false) const
 Returns true if a there is a terrain intersection at the given local position.
virtual const DtVectorNetworkvectorNetwork () const
 virtual DtVectorNetwork* vectorNetwork();
void setObjectName (const DtString &)
const DtString objectName () const
void setObjectType (const DtObjectType &)
const DtObjectTypeobjectType () const
void addRef ()
void removeRef ()
int referenceCount () const
void setObjectGeometricModel (const DtObjectGeometricModel *newObjGeomModel)
const DtObjectGeometricModelobjectGeometricModel () const
void setEntity (const DtVrfObject *)
const DtVrfObjectentity () const
void setPhysicalWorld (DtPhysicalWorld *newPhysicalWorld)
DtPhysicalWorldphysicalWorld ()
const DtPhysicalWorldphysicalWorld () const
void clear ()
virtual DtAttachedTerrainclone (const DtString &name, DtReaderWriterRegistry *const parentRegistry=0) const

Protected Member Functions

bool testInvariant () const
virtual double setOriginToDatabase ()
 Given the current entity, sets the geodetic origin in the terrain database to account for entity movement.
virtual const DtDcm & rotateToDcm () const
 Creates a rotation Dcm based on current orientation.
virtual const DtDcm & rotateBackDcm () const
virtual DtVector rotateTerrainLocation (const DtVector &source) const
 Given the location, rotate it given the entity orientation.
virtual DtChord convertAndRotateChordToLocal (const DtChord &source) const
 Converts the given chord from the simulation terrain database coordinate system into the current terrain database coordinate system.
virtual DtPoint convertLocalToSimTerrain (const DtPoint &, double addHeight=0.) const
 Takes the local coordinates and converts it back to the simulation terrain. Adds height if supplied.
virtual void convertLocalToSimTerrain (DtChordIntersectionRecord &, double addHeight=0.) const
 Converts both normal and intersection point.

Protected Attributes

DtRwString myObjectName
DtRwObjectType myObjectType
int myReferenceCount
const DtObjectGeometricModelmyObjectGeometricModel
 For now, this is the model that we get.
const DtVrfObjectmyEntity
 The entity this terrain represents.
DtPhysicalWorldmyPhysicalWorld
 For now,just use the global terrain database to return the coordinate system and perform the intersection calls.
DtTaitBryan myLastEntityOrientation
 Last local orientation of the referenced entity.
DtDcm myRotateToDcm
DtDcm myRotateBackDcm

Constructor & Destructor Documentation

default constructor

DtAttachedTerrain::DtAttachedTerrain ( const DtString name,
DtReaderWriterRegistry *const  parentRegistry = 0 
)

real constructor

DtAttachedTerrain::DtAttachedTerrain ( const DtSymbolString name,
DtReaderWriterRegistry *const  parentRegistry = 0 
)
DtAttachedTerrain::DtAttachedTerrain ( const DtString name,
const DtAttachedTerrain orig,
DtReaderWriterRegistry *const  parentRegistry = 0 
)

copy constructor

DtAttachedTerrain::DtAttachedTerrain ( const DtSymbolString name,
const DtAttachedTerrain from,
DtReaderWriterRegistry *const  parentRegistry = 0 
)

destructor


Member Function Documentation

DtAttachedTerrain& DtAttachedTerrain::operator= ( const DtAttachedTerrain orig)

Assign to DtRwBoundingVolume. Assigns value only.

DtAttachedTerrain& DtAttachedTerrain::operator= ( const DtObjectGeometricModelEntry orig)
virtual const char* DtAttachedTerrain::readerWriterType ( ) const [virtual]

Used to supply a string type that this reader writer type is.

This can be used in place of dynamic-casting. Also used by the opd editor to determine which type of control to create

Reimplemented from DtReaderWriter.

DtAttachedTerrain& DtAttachedTerrain::operator= ( const DtObjectType type)
virtual const Coordinate_System* DtAttachedTerrain::coordinateSystem ( ) const [virtual]
virtual double DtAttachedTerrain::terrainHeight ( const DtVector localLocation,
bool dataAvailable = 0,
bool  overrideBlockingAssert = false 
) const [virtual]
virtual bool DtAttachedTerrain::terrainHeight ( const DtVector localLocation,
double &  terrainHeight,
bool dataAvailable = 0,
bool  overrideBlockingAssert = false 
) const [virtual]
virtual bool DtAttachedTerrain::terrainHeightAndSurface ( const DtVector localLocation,
double &  terrainHeight,
DtSurface surface,
bool dataAvailable = 0,
bool  overrideBlockingAssert = false 
) const [virtual]
virtual bool DtAttachedTerrain::closestIntersection ( const DtVector localLocation,
DtPoint intersectionPoint,
DtVectorNetworkRecord vectorNetworkRecord = 0,
DtVectorNetworkIntersectionRecord vecNetworkIntersectionRecord = 0,
bool dataAvailable = 0,
bool  overrideBlockingAssert = false 
) const [virtual]
virtual bool DtAttachedTerrain::closestIntersection ( const DtVector localLocation,
DtVector intersectionPoint,
DtVectorNetworkRecord vectorNetworkRecord = 0,
DtVectorNetworkIntersectionRecord vecNetworkIntersectionRecord = 0,
bool dataAvailable = 0,
bool  overrideBlockingAssert = false 
) const [virtual]
virtual bool DtAttachedTerrain::closestIntersection ( const DtVector localLocation,
DtChordIntersectionRecord record,
DtIntersectionRecord::DtIntersectionType  irtFlag = DtIntersectionRecord::INT_ALL_DATA,
DtVectorNetworkRecord vectorDatarecord = 0,
DtVectorNetworkIntersectionRecord vectorIntersectionRecord = 0,
bool dataAvailable = 0,
bool  overrideBlockingAssert = false 
) const [virtual]
virtual bool DtAttachedTerrain::intersect ( const DtChord chord,
DtPoint intersectionPoint,
double &  intersectionTime,
DtVectorNetworkRecord record = 0,
DtVectorNetworkIntersectionRecord intersectionRecord = 0,
bool dataAvailable = 0,
bool  overrideBlockingAssert = false 
) const [virtual]
virtual bool DtAttachedTerrain::intersect ( const DtChord chord,
DtChordIntersectionRecord record,
DtIntersectionRecord::DtIntersectionType  irtFlag = DtIntersectionRecord::INT_ALL_DATA,
DtVectorNetworkRecord vectorDatarecord = 0,
DtVectorNetworkIntersectionRecord vectorIntersectionRecord = 0,
bool dataAvailable = 0,
bool  overrideBlockingAssert = false 
) const [virtual]
virtual bool DtAttachedTerrain::closestIntersection ( const DtVector curPosition,
DtVector intersection,
bool  ignoreWater,
bool dataAvailable = 0,
bool  overrideBlockingAssert = false 
) const [virtual]

Returns true if a there is a terrain intersection at the given local position.

The algorithm checks for intersections along a chord in the direction of gravity at that location (from halfHeightOfChord above to halfHeightOfChord below localPosition). If ignoreWaterSurface is true, advances through list of intersection returned until first DtSurface that is not a water surface is found.

virtual const DtVectorNetwork* DtAttachedTerrain::vectorNetwork ( ) const [virtual]

virtual DtVectorNetwork* vectorNetwork();

bool DtAttachedTerrain::testInvariant ( ) const [protected]
virtual double DtAttachedTerrain::setOriginToDatabase ( ) [protected, virtual]

Given the current entity, sets the geodetic origin in the terrain database to account for entity movement.

Returns the entities height above the terrain

virtual const DtDcm& DtAttachedTerrain::rotateToDcm ( ) const [protected, virtual]

Creates a rotation Dcm based on current orientation.

virtual const DtDcm& DtAttachedTerrain::rotateBackDcm ( ) const [protected, virtual]
virtual DtVector DtAttachedTerrain::rotateTerrainLocation ( const DtVector source) const [protected, virtual]

Given the location, rotate it given the entity orientation.

virtual DtChord DtAttachedTerrain::convertAndRotateChordToLocal ( const DtChord source) const [protected, virtual]

Converts the given chord from the simulation terrain database coordinate system into the current terrain database coordinate system.

virtual DtPoint DtAttachedTerrain::convertLocalToSimTerrain ( const DtPoint ,
double  addHeight = 0. 
) const [protected, virtual]

Takes the local coordinates and converts it back to the simulation terrain. Adds height if supplied.

virtual void DtAttachedTerrain::convertLocalToSimTerrain ( DtChordIntersectionRecord ,
double  addHeight = 0. 
) const [protected, virtual]

Converts both normal and intersection point.

Note that the normal does not get height added on

virtual DtAttachedTerrain* DtAttachedTerrain::clone ( const DtString name,
DtReaderWriterRegistry *const  parentRegistry = 0 
) const [virtual]

Member Data Documentation

For now, this is the model that we get.

The entity this terrain represents.

If 0, should mean to represent global terrain

For now,just use the global terrain database to return the coordinate system and perform the intersection calls.

DtTaitBryan DtAttachedTerrain::myLastEntityOrientation [mutable, protected]

Last local orientation of the referenced entity.

If different, then recalculates orientation matrix when orientationMatrix() is called.

DtDcm DtAttachedTerrain::myRotateToDcm [mutable, protected]
DtDcm DtAttachedTerrain::myRotateBackDcm [mutable, protected]

The documentation for this class was generated from the following file:

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)