VR-Forces 4.0.4 Class Documentation
Public Types | Public Member Functions | Static Public Member Functions | Protected Attributes | Static Protected Attributes
DtTerrainInterface Class Reference

List of all members.

Public Types

typedef std::map< std::string,
std::string > 
TerrainSettings

Public Member Functions

 DtTerrainInterface ()
 Constructor.
virtual ~DtTerrainInterface ()
 Destructor.
virtual bool init ()
 Virtual initialization.
virtual void addTerrainImplementation (const DtString &implementationName, DtTerrainImplementationCreatorFcn creatorFcn)
 Add a terrain implementation type to the set of terrain implementations that can be used by this interface.
virtual bool loadTerrain (const DtString &filename, const TerrainSettings &settings=TerrainSettings())
 Settings will be merged into existing -- not replace.
virtual bool unloadTerrain ()
virtual bool terrainIsLoaded ()
virtual DtString loadedFilename () const
virtual const Coordinate_SystemcoordinateSystem () const
virtual Coordinate_SystemcoordinateSystem ()
virtual double terrainHeightAboveSeaLevel (const DtPoint &databaseLocation, bool *dataAvailable=0, bool overrideBlockingAssert=false) const
 Returns the height above sea level for the topmost terrain intersection at databaseLocation.
virtual bool terrainHeightAndIntersection (const DtVector &localLocation, double &height, DtChordIntersectionRecord &record, DtIntersectionRecord::DtIntersectionType irtFlag=DtIntersectionRecord::INT_ALL_DATA, bool *dataAvailable=0, bool overrideBlockingAssert=false) const
 Returns whether there is a terrain intersection and if so sets height and record from the topmost terrain intersection point.
virtual bool closestIntersection (const DtVector &localLocation, DtPoint &intersectionPoint, bool *dataAvailable=0, bool overrideBlockingAssert=false) const
 Similar to the terrainHeight functions above.
virtual bool closestIntersection (double lat, double lon, DtPoint &intersectionPoint, bool *dataAvailable=0, bool overrideBlockingAssert=false) const
 Same as above function, but accepts location in lat/lon.
virtual bool closestIntersection (const DtVector &localLocation, DtChordIntersectionRecord &record, DtIntersectionRecord::DtIntersectionType irtFlag=DtIntersectionRecord::INT_ALL_DATA, bool *dataAvailable=0, bool overrideBlockingAssert=false) const
 Same as above function, but returns the entire intersection record, and not just the intersection point.
virtual bool closestIntersection (double lat, double lon, DtChordIntersectionRecord &record, DtIntersectionRecord::DtIntersectionType irtFlag=DtIntersectionRecord::INT_ALL_DATA, bool *dataAvailable=0, bool overrideBlockingAssert=false) const
 Same as above function, but accepts location in lat/lon.
virtual bool closestIntersection (const std::list< DtVector > &localLocationList, DtChordIntersectRecordList &recordList, int &numIntersections, DtIntersectionRecord::DtIntersectionType irtFlag=DtIntersectionRecord::INT_ALL_DATA, bool *dataAvailable=0, bool overrideBlockingAssert=false) const
 Returns complete intersection information about the closest terrain intersection point for each location in the list in Database Coordinates.
virtual bool intersect (const DtChord &chord, DtPoint &intersectionPoint, double &intersectionTime, bool *dataAvailable=0, bool overrideBlockingAssert=false) const
 Calculates the first terrain intersection point along a chord given in Database Coordinates.
virtual bool intersect (const DtChord &chord, DtChordIntersectionRecord &record, DtIntersectionRecord::DtIntersectionType irtFlag=DtIntersectionRecord::INT_ALL_DATA, bool *dataAvailable=0, bool overrideBlockingAssert=false) const
 Returns complete intersection information about the first terrain intersection point along a chord given in Database Coordinates.
virtual bool intersect (const DtSphere &sphere, DtSphereIntersectionRecord &record, DtIntersectionRecord::DtIntersectionType irtFlag=DtIntersectionRecord::INT_ALL_DATA, bool *dataAvailable=0, bool overrideBlockingAssert=false) const
 Sphere intersection test.
virtual bool allIntersectsAlongChord (const DtChord &chord, DtChordIntersectRecordList &intList, DtIntersectionRecord::DtIntersectionType irtFlag=DtIntersectionRecord::INT_ALL_DATA, bool *dataAvailable=0, bool overrideBlockingAssert=false) const
 Computes the list of all intersections of a chord (in Database Coordinates) with the terrain database.
virtual bool intersectList (const std::list< DtChord > &chordList, DtChordIntersectRecordList &recordList, int &numTerrainIntersections, int &numVectorNetworkIntersections, DtIntersectionRecord::DtIntersectionType irtFlag=DtIntersectionRecord::INT_ALL_DATA, bool *dataAvailable=0, bool overrideBlockingAssert=false) const
 Returns complete intersection information about the first terrain intersection points along each of a list of DtChords given in Database Coordinates.
virtual const DtVectorNetworkvectorNetwork () const
 Vector network accessor.
virtual void preloadTerrainAreas (const DtTerrainPagingGeometryList &preloadGeometry)
 Specifies a list of terrain areas that should be preloaded by the terrain implementation, in the case of a paging or streaming terrain source.
virtual const
DtTerrainCapabilities
terrainCapabilities () const
virtual bool intersectVectorNetwork (const DtChord &chord, DtVectorNetworkRecord *vectorRecord, DtVectorNetworkIntersectionRecord *vectorIntersectionRecord) const
 User passes in the chord to intersect the vector network and the vectorRecord defining the desired search parameters like the kind of features to be searched.
virtual bool intersectVectorNetwork (const DtVector &localLocation, DtVectorNetworkRecord *vectorRecord, DtVectorNetworkIntersectionRecord *vectorIntersectionRecord) const
 User passes in the location to intersect the vector network and the vectorRecord defining the desired search parameters like the kind of features to be searched.
virtual bool addTerrainPassThroughLayer (const DtString &layerType)
 Adds a pass though layer registered with the specified type to the currently loaded terrain implementation.
virtual void setIntersectDataLoadExpireTime (const double &expireTime)
 Set the default expiration time for data load requests generated by intersect calls that require data that has not been loaded (paged-in).
virtual void expireDataLoadRequestsBeforeTime (const double &currentTime)
virtual void setDataPath (const std::string &)
 Sets the path to find for the data directory.
virtual std::string dataPath () const
virtual void setUserDataPath (const std::string &)
 Sets the path to find for the data directory.
virtual std::string userDataPath () const
virtual void trianglesInArea (DtTriangleCallbackFcn func, DtTriangleCallbackFinalizeFcn finalize, DtTerrainProcessPolygonsBox &box, void *usr) const
 Calls the function in the first argument on each triangle in the area specified by the box.
virtual void setAssertOnBlockingTerrainCalls (bool assertBlock)
 Determines if an exception should be thrown if a blocking terrain call is made.
virtual bool assertOnBlockingTerrainCalls () const
 Determines if an exception should be thrown if a blocking terrain call is made.

Static Public Member Functions

static void setModelDefinitionFilePath (const DtString &fullFilePath)
static DtString modelDefinitionFilePath ()

Protected Attributes

DtTerrainImplementationmyTerrainImpl
bool myTerrainIsLoaded
 Status publisher needs to keep track of when terrain is loaded and unloaded.
DtTerrainImplementationManagermyTerrainImplManager
DtConsoleCommandManagermyConsoleCommandManager
std::list< DtConsoleCommand * > myCommandList
DtString myLoadedFilename
 The last filename that was passed to loadTerrain()
TerrainSettings mySettings

Static Protected Attributes

static DtString theModelDefinitionFilePath
static double theTerrainPagingMaxHeight

Member Typedef Documentation

typedef std::map<std::string, std::string> DtTerrainInterface::TerrainSettings

Constructor & Destructor Documentation

Constructor.

Destructor.


Member Function Documentation

virtual bool DtTerrainInterface::init ( ) [virtual]

Virtual initialization.

Call this after construction, and before calling any other members on the class. Creates the terrain implementation manager

virtual void DtTerrainInterface::addTerrainImplementation ( const DtString implementationName,
DtTerrainImplementationCreatorFcn  creatorFcn 
) [virtual]

Add a terrain implementation type to the set of terrain implementations that can be used by this interface.

virtual bool DtTerrainInterface::loadTerrain ( const DtString filename,
const TerrainSettings settings = TerrainSettings() 
) [virtual]

Settings will be merged into existing -- not replace.

virtual bool DtTerrainInterface::unloadTerrain ( ) [virtual]
virtual DtString DtTerrainInterface::loadedFilename ( ) const [virtual]
Returns:
The last filename that was passed to loadTerrain() and successfully loaded.
virtual const Coordinate_System* DtTerrainInterface::coordinateSystem ( ) const [virtual]
virtual double DtTerrainInterface::terrainHeightAboveSeaLevel ( const DtPoint databaseLocation,
bool dataAvailable = 0,
bool  overrideBlockingAssert = false 
) const [virtual]

Returns the height above sea level for the topmost terrain intersection at databaseLocation.

Parameters:
Input
databaseLocationthe location to test
Output
dataAvailablePlease see "Synchronous and asynchronous calls with paged terrains" for information on how to specify that this function be blocking or non-blocking. If the data is not yet paged in, dataAvailable will be set to false and zero will be returned.
overrideBlockingAssertwhen set to true this parameter will prevent an assertion from being thrown when the terrain implementation has myAssertOnBlockingTerrainCalls set to true. This should only be done when the call is being made from outside the main simulation thread and a blocking call would not cause a a problem.
Returns:
terrainHeight (or zero if the terrain is not yet available)
virtual bool DtTerrainInterface::terrainHeightAndIntersection ( const DtVector localLocation,
double &  height,
DtChordIntersectionRecord record,
DtIntersectionRecord::DtIntersectionType  irtFlag = DtIntersectionRecord::INT_ALL_DATA,
bool dataAvailable = 0,
bool  overrideBlockingAssert = false 
) const [virtual]

Returns whether there is a terrain intersection and if so sets height and record from the topmost terrain intersection point.

Parameters:
Input
localLocationthe location to test
irtFlagspecifies which data should be calculated and returned for each intersection point
Output
dataAvailablePlease see "Synchronous and asynchronous calls with paged terrains" for information on how to specify that this function be blocking or non-blocking. If the data is not yet paged in, dataAvailable will be set to false, height will be set to zero, and the record will not reflect any results.
overrideBlockingAssertwhen set to true this parameter will prevent an assertion from being thrown when the terrain implementation has myAssertOnBlockingTerrainCalls set to true. This should only be done when the call is being made from outside the main simulation thread and a blocking call would not cause a a problem.
Returns:
result of the terrain intersection or data availability
Return values:
truea terrain intersection was found
falseif dataAvailable was specified and returns true, then the database does not have an intersection at localLocation. Otherwise false indicates that the data is not yet available.
virtual bool DtTerrainInterface::closestIntersection ( const DtVector localLocation,
DtPoint intersectionPoint,
bool dataAvailable = 0,
bool  overrideBlockingAssert = false 
) const [virtual]

Similar to the terrainHeight functions above.

Function to determine the closest intersection to a specified location, either in local (DB) coordinates or in lat/lon. The closest intersection is defined as the closest intersection in the down or up direction from location. Thus if there are multiple terrain levels, it will not necessarily return an intersection with the topmost as the terrainHeight functions do.

Note:
Unlike the terrainHeight functions, if the vectorNetworkRecord and vectorNetworkIntersectionRecord are non-NULL, it will compute an intersection with the vector network and return the best intersection as defined by the metrics in the vectorNetworkRecord.

Return Values: True if any intersection, vector data or terrain, is found. If a vector data intersection is found, then the vecNetworkIntersectionRecord is set appropriately. If at least one terrain intersection is found, the intersectionPoint parameter is set to the closest intersection point.

Parameters:
Input
localLocationthe location to test
Output
intersectionPointthe point of intersection, left unchanged if dataAvailable is set to false.
dataAvailablePlease see "Synchronous and asynchronous calls with paged terrains" for information on how to specify that this function be blocking or non-blocking. If the data is not yet paged in, dataAvailable will be set to false, intersectionPoint will not be modified and false will be returned.
overrideBlockingAssertwhen set to true this parameter will prevent an assertion from being thrown when the terrain implementation has myAssertOnBlockingTerrainCalls set to true. This should only be done when the call is being made from outside the main simulation thread and a blocking call would not cause a a problem.
Returns:
result of the terrain intersection or data availability
Return values:
truea terrain intersection was found
falseif dataAvailable was specified and returns true, then the database does not have an intersection at localLocation. Otherwise false indicates that the data is not yet available.
virtual bool DtTerrainInterface::closestIntersection ( double  lat,
double  lon,
DtPoint intersectionPoint,
bool dataAvailable = 0,
bool  overrideBlockingAssert = false 
) const [virtual]

Same as above function, but accepts location in lat/lon.

Parameters:
Input
latthe latititude to test
lonthe longitude to test
Output
dataAvailablePlease see "Synchronous and asynchronous calls with paged terrains" for information on how to specify that this function be blocking or non-blocking. If the data is not yet paged in, dataAvailable will be set to false, intersectionPoint will not be modified and false will be returned.
overrideBlockingAssertwhen set to true this parameter will prevent an assertion from being thrown when the terrain implementation has myAssertOnBlockingTerrainCalls set to true. This should only be done when the call is being made from outside the main simulation thread and a blocking call would not cause a a problem.
Returns:
result of the terrain intersection or data availability
Return values:
truea terrain intersection was found
falseif dataAvailable was specified and returns true, then the database does not have an intersection at localLocation. Otherwise false indicates that the data is not yet available.
virtual bool DtTerrainInterface::closestIntersection ( const DtVector localLocation,
DtChordIntersectionRecord record,
DtIntersectionRecord::DtIntersectionType  irtFlag = DtIntersectionRecord::INT_ALL_DATA,
bool dataAvailable = 0,
bool  overrideBlockingAssert = false 
) const [virtual]

Same as above function, but returns the entire intersection record, and not just the intersection point.

Parameters:
Input
localLocationthe location to test
irtFlagspecifies which data should be calculated and returned for each intersection point
Output
recordthe result of the terrain intersection
dataAvailablePlease see "Synchronous and asynchronous calls with paged terrains" for information on how to specify that this function be blocking or non-blocking. If the data is not yet paged in, dataAvailable will be set to false, record will not be modified and false will be returned.
overrideBlockingAssertwhen set to true this parameter will prevent an assertion from being thrown when the terrain implementation has myAssertOnBlockingTerrainCalls set to true. This should only be done when the call is being made from outside the main simulation thread and a blocking call would not cause a a problem.
Returns:
result of the terrain intersection or data availability
Return values:
truea terrain intersection was found
falseif dataAvailable was specified and returns true, then the database does not have an intersection at localLocation. Otherwise false indicates that the data is not yet available.
virtual bool DtTerrainInterface::closestIntersection ( double  lat,
double  lon,
DtChordIntersectionRecord record,
DtIntersectionRecord::DtIntersectionType  irtFlag = DtIntersectionRecord::INT_ALL_DATA,
bool dataAvailable = 0,
bool  overrideBlockingAssert = false 
) const [virtual]

Same as above function, but accepts location in lat/lon.

Parameters:
Input
latthe latititude to test
lonthe longitude to test
irtFlagspecifies which data should be calculated and returned for each intersection point
Output
recordthe result of the terrain intersection
dataAvailablePlease see "Synchronous and asynchronous calls with paged terrains" for information on how to specify that this function be blocking or non-blocking. If the data is not yet paged in, dataAvailable will be set to false, intersectionPoint will not be modified and false will be returned.
overrideBlockingAssertwhen set to true this parameter will prevent an assertion from being thrown when the terrain implementation has myAssertOnBlockingTerrainCalls set to true. This should only be done when the call is being made from outside the main simulation thread and a blocking call would not cause a a problem.
Returns:
result of the terrain intersection or data availability
Return values:
truea terrain intersection was found
falseif dataAvailable was specified and returns true, then the database does not have an intersection at localLocation. Otherwise false indicates that the data is not yet available.
virtual bool DtTerrainInterface::closestIntersection ( const std::list< DtVector > &  localLocationList,
DtChordIntersectRecordList recordList,
int &  numIntersections,
DtIntersectionRecord::DtIntersectionType  irtFlag = DtIntersectionRecord::INT_ALL_DATA,
bool dataAvailable = 0,
bool  overrideBlockingAssert = false 
) const [virtual]

Returns complete intersection information about the closest terrain intersection point for each location in the list in Database Coordinates.

Parameters:
Input
localLocationListlist of locations to test
irtFlagspecifies which data should be calculated and returned for each intersection point
Output
recordLista DtChordIntersectionRecordList (one record for each localLocation).
numIntersectionsset to the number of intersections that occur for the list of locations.
dataAvailablePlease see "Synchronous and asynchronous calls with paged terrains" for information on how to specify that this function be blocking or non-blocking. If the data is not yet paged in, dataAvailable will be set to false, recordList will not represent any intersections and numIntersections will be set to 0.
overrideBlockingAssertwhen set to true this parameter will prevent an assertion from being thrown when the terrain implementation has myAssertOnBlockingTerrainCalls set to true. This should only be done when the call is being made from outside the main simulation thread and a blocking call would not cause a a problem.
Returns:
result of the terrain intersection or data availability
Return values:
trueany chord intersects the terrain
falseif dataAvailable was specified and returns true, then none of the chords intersect the terrain. Otherwise false indicates that the data is not yet available.
virtual bool DtTerrainInterface::intersect ( const DtChord chord,
DtPoint intersectionPoint,
double &  intersectionTime,
bool dataAvailable = 0,
bool  overrideBlockingAssert = false 
) const [virtual]

Calculates the first terrain intersection point along a chord given in Database Coordinates.

Parameters:
Input
chordthe chord to test
Output
intersectionPointlocation of the intersection or left unchanged if there's no intersection or the data is not yet available (see dataAvailable).
intersectionTimetime of the intersection along the input chord or left unchanged if there's no intersection or the data is not yet available (see dataAvailable).
dataAvailablePlease see "Synchronous and asynchronous calls with paged terrains" for information on how to specify that this function be blocking or non-blocking. If the data is not yet paged in, dataAvailable will be set to false, and intersectionPoint and intersectionTime will be left unchanged.
overrideBlockingAssertwhen set to true this parameter will prevent an assertion from being thrown when the terrain implementation has myAssertOnBlockingTerrainCalls set to true. This should only be done when the call is being made from outside the main simulation thread and a blocking call would not cause a a problem.
Returns:
result of the terrain intersection or data availability
Return values:
trueif the chord intersects the terrain
falseif dataAvailable was specified and returns true, then the chord does not intersect the terrain. Otherwise false indicates that the data is not yet available.
virtual bool DtTerrainInterface::intersect ( const DtChord chord,
DtChordIntersectionRecord record,
DtIntersectionRecord::DtIntersectionType  irtFlag = DtIntersectionRecord::INT_ALL_DATA,
bool dataAvailable = 0,
bool  overrideBlockingAssert = false 
) const [virtual]

Returns complete intersection information about the first terrain intersection point along a chord given in Database Coordinates.

The irtFlag value specifies which data should be calculated and returned for each intersection point.

Parameters:
Input
chordthe chord to test
irtFlagspecifies which data should be calculated and returned for each intersection point
Output
recordthe result of the terrain intersection
dataAvailablePlease see "Synchronous and asynchronous calls with paged terrains" for information on how to specify that this function be blocking or non-blocking. If the data is not yet paged in, dataAvailable will be set to false, record will not reflect any terrain intersections
overrideBlockingAssertwhen set to true this parameter will prevent an assertion from being thrown when the terrain implementation has myAssertOnBlockingTerrainCalls set to true. This should only be done when the call is being made from outside the main simulation thread and a blocking call would not cause a a problem.
Returns:
result of the terrain intersection or data availability
Return values:
trueif the chord intersects the terrain
falseif dataAvailable was specified and returns true, then the chord does not intersect the terrain. Otherwise false indicates that the data is not yet available.
virtual bool DtTerrainInterface::intersect ( const DtSphere sphere,
DtSphereIntersectionRecord record,
DtIntersectionRecord::DtIntersectionType  irtFlag = DtIntersectionRecord::INT_ALL_DATA,
bool dataAvailable = 0,
bool  overrideBlockingAssert = false 
) const [virtual]

Sphere intersection test.

Parameters:
Input
spherethe sphere to test
irtFlagspecifies which data should be calculated and returned for each intersection point
Output
recordthe result of the terrain intersection
dataAvailablePlease see "Synchronous and asynchronous calls with paged terrains" for information on how to specify that this function be blocking or non-blocking. If the data is not yet paged in, dataAvailable will be set to false, record will not reflect any terrain intersections
overrideBlockingAssertwhen set to true this parameter will prevent an assertion from being thrown when the terrain implementation has myAssertOnBlockingTerrainCalls set to true. This should only be done when the call is being made from outside the main simulation thread and a blocking call would not cause a a problem.
Returns:
result of the terrain intersection or data availability
Return values:
trueif the sphere intersects with any terrain polygons
falseif dataAvailable was specified and returns true, then the sphere does not intersect the terrain. Otherwise false indicates that the data is not yet available.
virtual bool DtTerrainInterface::allIntersectsAlongChord ( const DtChord chord,
DtChordIntersectRecordList intList,
DtIntersectionRecord::DtIntersectionType  irtFlag = DtIntersectionRecord::INT_ALL_DATA,
bool dataAvailable = 0,
bool  overrideBlockingAssert = false 
) const [virtual]

Computes the list of all intersections of a chord (in Database Coordinates) with the terrain database.

Parameters:
Input
chordthe chord to test
irtFlagspecifies which data should be calculated and returned for each intersection point
Note:
that passing an irtFlag value of INT_EXISTS will probably never return more than one intersection.
Parameters:
Output
intListthe result of the terrain intersection
dataAvailablePlease see "Synchronous and asynchronous calls with paged terrains" for information on how to specify that this function be blocking or non-blocking. If the data is not yet paged in, dataAvailable will be set to false and intList will not reflect any terrain intersections
overrideBlockingAssertwhen set to true this parameter will prevent an assertion from being thrown when the terrain implementation has myAssertOnBlockingTerrainCalls set to true. This should only be done when the call is being made from outside the main simulation thread and a blocking call would not cause a a problem.
Returns:
result of the terrain intersection or data availability
Return values:
trueif the chord intersects the terrain
falseif dataAvailable was specified and returns true, then the chord does not intersect the terrain. Otherwise false indicates that the data is not yet available.
virtual bool DtTerrainInterface::intersectList ( const std::list< DtChord > &  chordList,
DtChordIntersectRecordList recordList,
int &  numTerrainIntersections,
int &  numVectorNetworkIntersections,
DtIntersectionRecord::DtIntersectionType  irtFlag = DtIntersectionRecord::INT_ALL_DATA,
bool dataAvailable = 0,
bool  overrideBlockingAssert = false 
) const [virtual]

Returns complete intersection information about the first terrain intersection points along each of a list of DtChords given in Database Coordinates.

The returned record list is a DtChordIntersectionRecordList (one record for each chord).

Parameters:
Input
chordListthe chords to test
irtFlagspecifies which data should be calculated and returned for each intersection point
Output
numTerrainIntersectionsnumber of chords that intersected with the terrain
numVectorNetworkIntersectionsnumber of chords that intersected with the vector network
dataAvailablePlease see "Synchronous and asynchronous calls with paged terrains" for information on how to specify that this function be blocking or non-blocking. If the data is not yet paged in, dataAvailable will be set to false, numTerrainIntersections and numVectorNetworkIntersections will be set to zero and the recordList will not reflect any intersections.
overrideBlockingAssertwhen set to true this parameter will prevent an assertion from being thrown when the terrain implementation has myAssertOnBlockingTerrainCalls set to true. This should only be done when the call is being made from outside the main simulation thread and a blocking call would not cause a a problem.
Returns:
result of the terrain intersection or data availability
Return values:
trueif any chord intersected the terrain (or vector network if specified)
falseif dataAvailable was specified and returns true, then the chord does not intersect the terrain. Otherwise false indicates that the data is not yet available.
virtual const DtVectorNetwork* DtTerrainInterface::vectorNetwork ( ) const [virtual]

Vector network accessor.

virtual void DtTerrainInterface::preloadTerrainAreas ( const DtTerrainPagingGeometryList preloadGeometry) [virtual]

Specifies a list of terrain areas that should be preloaded by the terrain implementation, in the case of a paging or streaming terrain source.

The typical use of this is to specify parts of the terrain that are expected to be needed in the near future.

The terrain may not be loaded immediately upon making this call, and there is no guarantee that the terrain areas will be available for intersection immediately after making this call.

Parameters:
preloadGeometryA list of the geometric areas that should be preloaded. They can be specified using any of the subclasses of DtTerrainPagingGeometry.
Note:
The geometry set with this call completely replaces any geometry previously set using this call.
This call may be a noop depending on what type of terrain is loaded.
Returns:
A class which describes the capabilities of the currently loaded terrain. This provides a guide on particular features of the terrain implementation that are supported or not supported, and should guide the user of the DtTerrainInterface API when interacting with this terrain. If no terrain is loaded, this will return a null pointer.
virtual bool DtTerrainInterface::intersectVectorNetwork ( const DtChord chord,
DtVectorNetworkRecord vectorRecord,
DtVectorNetworkIntersectionRecord vectorIntersectionRecord 
) const [virtual]

User passes in the chord to intersect the vector network and the vectorRecord defining the desired search parameters like the kind of features to be searched.

Returns the best feature intersection and associated data in the vectorIntersectionRecord.

virtual bool DtTerrainInterface::intersectVectorNetwork ( const DtVector localLocation,
DtVectorNetworkRecord vectorRecord,
DtVectorNetworkIntersectionRecord vectorIntersectionRecord 
) const [virtual]

User passes in the location to intersect the vector network and the vectorRecord defining the desired search parameters like the kind of features to be searched.

Returns the best feature intersection and associated data in the vectorIntersectionRecord. The function internally creates a chord to perform the intersection.

virtual bool DtTerrainInterface::addTerrainPassThroughLayer ( const DtString layerType) [virtual]

Adds a pass though layer registered with the specified type to the currently loaded terrain implementation.

This is typically a debugging or analysis activity.

virtual void DtTerrainInterface::setAssertOnBlockingTerrainCalls ( bool  assertBlock) [virtual]

Determines if an exception should be thrown if a blocking terrain call is made.

This can help to track down blocking terrain calls which are causing problems with a running simulation. Note that calling the blocking form of any terrain intersection function will cause an assertion; it is not necessary for the call to actually block and even non-paging implementations will assert. This is done to make it easier to find potential problems regardless of the particular terrain or location being used.

Determines if an exception should be thrown if a blocking terrain call is made.

This can help to track down blocking terrain calls which are causing problems with a running simulation. Note that calling the blocking form of any terrain intersection function will cause an assertion; it is not necessary for the call to actually block and even non-paging implementations will assert. This is done to make it easier to find potential problems regardless of the particular terrain or location being used.

virtual void DtTerrainInterface::setIntersectDataLoadExpireTime ( const double &  expireTime) [virtual]

Set the default expiration time for data load requests generated by intersect calls that require data that has not been loaded (paged-in).

Parameters:
expireTimeThe expiration time to be assigned to data load requests generated by intersect calls on the terrain implementation.
virtual void DtTerrainInterface::expireDataLoadRequestsBeforeTime ( const double &  currentTime) [virtual]
virtual void DtTerrainInterface::setDataPath ( const std::string &  ) [virtual]

Sets the path to find for the data directory.

For terrains being loaded, will substitute DataDirectory for the dataPath (default to ../data) and UserDataDirectory to the user data path (default to ../userData)

virtual std::string DtTerrainInterface::dataPath ( ) const [virtual]
virtual void DtTerrainInterface::setUserDataPath ( const std::string &  ) [virtual]

Sets the path to find for the data directory.

For terrains being loaded, will substitute DataDirectory for the dataPath (default to ../data) and UserDataDirectory to the user data path (default to ../userData)

virtual std::string DtTerrainInterface::userDataPath ( ) const [virtual]
virtual void DtTerrainInterface::trianglesInArea ( DtTriangleCallbackFcn  func,
DtTriangleCallbackFinalizeFcn  finalize,
DtTerrainProcessPolygonsBox box,
void *  usr 
) const [virtual]

Calls the function in the first argument on each triangle in the area specified by the box.

Once all of the triangles have been processed, it calls the finalize function to signify it has completed.

Parameters:
funcFunction that will handle a single terrain triangle
finalizeFunction that will handle when this function is completed
boxThe area (in local coordinates) in which to get terrain triangles from
usrThe object that owns both the first and second argument of this function
static void DtTerrainInterface::setModelDefinitionFilePath ( const DtString fullFilePath) [static]

Member Data Documentation

Status publisher needs to keep track of when terrain is loaded and unloaded.

The last filename that was passed to loadTerrain()


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)