![]() |
VR-Forces 4.1.1 Class Documentation
|
DtTerrainInterface allows access to common terrain calls without having to know the terrain implementation. More...
Public Types | |
| typedef std::map< std::string, std::string > | TerrainSettings |
| typedef MAKVRinTerra::DtPathFinder | DtPathFinder |
Public Member Functions | |
| DtTerrainInterface () | |
| Constructor. | |
| virtual | ~DtTerrainInterface () |
| Destructor. | |
| virtual bool | init () |
| Virtual initialization. | |
| virtual void | tick () |
| Cleans up finished async server jobs, and checks for path finder removal. | |
| 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 | loadTerrain (const DtString &filename, MAKVRinTerra::DtFeatureLoader &featureLoader, 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_System * | coordinateSystem () const |
| virtual Coordinate_System * | coordinateSystem () |
| virtual std::auto_ptr < MAKVRinTerra::DtObstacleFeatureSet > | obstacles (const std::string &type) const |
| Returns a DtObstacleFeatureSet configured using the provided type. | |
| virtual std::auto_ptr < MAKVRinTerra::DtPathFeatureSet > | paths (const std::string &type) const |
| virtual std::auto_ptr < MAKVRinTerra::DtFeatureSet > | allFeatures () const |
| 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, 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 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 | 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 ¤tTime) |
| 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 DtAsyncJobToken * | makePathAsync (const DtPoint &localStart, const DtPoint &localDestination, const std::string &type, const double &maxSearchRadius, const double &startProximityThreshold, DtPathFinder::DtWeightFactorsListPtr weightFactors=DtPathFinder::DtWeightFactorsListPtr(new DtPathFinder::DtWeightFactorsList)) |
| Register asynchronous path finding task. | |
| virtual bool | onPathFeature (const DtPoint &location, const DtString &type, double buffer=0.5) |
| returns whether the given point is within "offset" distance of any edge on the path graph. | |
| MAKVRinTerra::DtProj::CPtr | localProj () const |
| Returns the local DtProj object for the current terrain. | |
| MAKVRinTerra::DtFeaturesDebugger & | debugger () const |
| MAKVRinTerra::DtQuery | findQuery (const std::string &name) const |
| const double | topoDistance (const DtPoint &start, const DtPoint &end, const MAKVRinTerra::DtProj &localProj) |
| MAKVRinTerra::DtClosestPathFeatureFinder | closestFeatureOnNetwork (const std::string &type, const DtPoint &startingLocation, const double &searchRadius, bool *dataAvailable=NULL) |
| Finds the closest feature on the feature network to startingLocation. | |
| void | breakUpChord (const MAKVRinTerra::DtProj &, const DtChord &chord, std::vector< DtChord > &chords) const |
| void | breakUpChord (const DtChord &chord, std::vector< DtChord > &chords) const |
| virtual boost::shared_ptr < DtTerrainInterfaceConfig > | config () const |
| 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 Member Functions | |
| virtual DtPathFinder::Path | makePath (const DtPoint &localStart, const DtPoint &localDestination, const std::string &type, const double &maxSearchRadius, const double &startProximityThreshold, boost::function< bool()> cancelCheck, DtPathFinder::ReturnCode &result, DtPathFinder::DtWeightFactorsListPtr weightFactors=DtPathFinder::DtWeightFactorsListPtr(new DtPathFinder::DtWeightFactorsList)) const |
| Make a path from start to destination on features configured using the provided type. | |
| virtual void | loadConfigurationFile (const DtFilename &filename) |
Protected Attributes | |
| DtTerrainImplementation * | myTerrainImpl |
| bool | myTerrainIsLoaded |
| Status publisher needs to keep track of when terrain is loaded and unloaded. | |
| DtTerrainImplementationManager * | myTerrainImplManager |
| DtConsoleCommandManager * | myConsoleCommandManager |
| std::list< DtConsoleCommand * > | myCommandList |
| DtString | myLoadedFilename |
| The last filename that was passed to loadTerrain() | |
| TerrainSettings | mySettings |
| boost::scoped_ptr < MAKVRinTerra::DtFeatureContext > | myFeatureContext |
| MAKVRinTerra::DtProj::CPtr | myProjObject |
| DtAsyncJobServer | myAsyncJobServer |
| Manages asynchronous path planning tasks. | |
| boost::shared_ptr < DtTerrainInterfaceConfig > | myConfig |
| DtFilename | myConfigFilename |
Static Protected Attributes | |
| static DtString | theModelDefinitionFilePath |
| static double | theTerrainPagingMaxHeight |
DtTerrainInterface allows access to common terrain calls without having to know the terrain implementation.
Additional terrain implementations can be added as well.
| typedef std::map<std::string, std::string> DtTerrainInterface::TerrainSettings |
| DtTerrainInterface::DtTerrainInterface | ( | ) |
Constructor.
|
virtual |
Destructor.
|
virtual |
Virtual initialization.
Call this after construction, and before calling any other members on the class. Creates the terrain implementation manager
|
virtual |
Cleans up finished async server jobs, and checks for path finder removal.
|
virtual |
Add a terrain implementation type to the set of terrain implementations that can be used by this interface.
|
virtual |
Settings will be merged into existing – not replace.
|
virtual |
Settings will be merged into existing – not replace.
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
Returns a DtObstacleFeatureSet configured using the provided type.
See appData/settings/featureconfig.txt for types.
|
virtual |
|
virtual |
|
virtual |
Returns the height above sea level for the topmost terrain intersection at databaseLocation.
| Input | |
| databaseLocation | the location to test |
| Output | |
| dataAvailable | Please 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. |
| overrideBlockingAssert | when 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. |
|
virtual |
Returns whether there is a terrain intersection and if so sets height and record from the topmost terrain intersection point.
| Input | |
| localLocation | the location to test |
| irtFlag | specifies which data should be calculated and returned for each intersection point |
| Output | |
| dataAvailable | Please 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. |
| overrideBlockingAssert | when 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. |
| true | a terrain intersection was found |
| false | if 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 |
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.
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.
| Input | |
| localLocation | the location to test |
| Output | |
| intersectionPoint | the point of intersection, left unchanged if dataAvailable is set to false. |
| dataAvailable | Please 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. |
| overrideBlockingAssert | when 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. |
| true | a terrain intersection was found |
| false | if 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 |
Same as above function, but accepts location in lat/lon.
| Input | |
| lat | the latitude to test |
| lon | the longitude to test |
| Output | |
| dataAvailable | Please 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. |
| overrideBlockingAssert | when 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. |
| true | a terrain intersection was found |
| false | if 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 |
Same as above function, but returns the entire intersection record, and not just the intersection point.
| Input | |
| localLocation | the location to test |
| irtFlag | specifies which data should be calculated and returned for each intersection point |
| Output | |
| record | the result of the terrain intersection |
| dataAvailable | Please 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. |
| overrideBlockingAssert | when 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. |
| true | a terrain intersection was found |
| false | if 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 |
Same as above function, but accepts location in lat/lon.
| Input | |
| lat | the latitude to test |
| lon | the longitude to test |
| irtFlag | specifies which data should be calculated and returned for each intersection point |
| Output | |
| record | the result of the terrain intersection |
| dataAvailable | Please 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. |
| overrideBlockingAssert | when 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. |
| true | a terrain intersection was found |
| false | if 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 |
Returns complete intersection information about the closest terrain intersection point for each location in the list in Database Coordinates.
| Input | |
| localLocationList | list of locations to test |
| irtFlag | specifies which data should be calculated and returned for each intersection point |
| Output | |
| recordList | a DtChordIntersectionRecordList (one record for each localLocation). |
| numIntersections | set to the number of intersections that occur for the list of locations. |
| dataAvailable | Please 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. |
| overrideBlockingAssert | when 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. |
| true | any chord intersects the terrain |
| false | if 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 |
Calculates the first terrain intersection point along a chord given in Database Coordinates.
| Input | |
| chord | the chord to test |
| Output | |
| intersectionPoint | location of the intersection or left unchanged if there's no intersection or the data is not yet available (see dataAvailable). |
| intersectionTime | time of the intersection along the input chord or left unchanged if there's no intersection or the data is not yet available (see dataAvailable). |
| dataAvailable | Please 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. |
| overrideBlockingAssert | when 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. |
| true | if the chord intersects the terrain |
| false | if 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 |
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.
| Input | |
| chord | the chord to test |
| irtFlag | specifies which data should be calculated and returned for each intersection point |
| Output | |
| record | the result of the terrain intersection |
| dataAvailable | Please 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 |
| overrideBlockingAssert | when 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. |
| true | if the chord intersects the terrain |
| false | if 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 |
Sphere intersection test.
| Input | |
| sphere | the sphere to test |
| irtFlag | specifies which data should be calculated and returned for each intersection point |
| Output | |
| record | the result of the terrain intersection |
| dataAvailable | Please 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 |
| overrideBlockingAssert | when 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. |
| true | if the sphere intersects with any terrain polygons |
| false | if 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 |
Computes the list of all intersections of a chord (in Database Coordinates) with the terrain database.
| Input | |
| chord | the chord to test |
| irtFlag | specifies which data should be calculated and returned for each intersection point |
| Output | |
| intList | the result of the terrain intersection |
| dataAvailable | Please 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 |
| overrideBlockingAssert | when 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. |
| true | if the chord intersects the terrain |
| false | if 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 |
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).
| Input | |
| chordList | the chords to test |
| irtFlag | specifies which data should be calculated and returned for each intersection point |
| Output | |
| numTerrainIntersections | number of chords that intersected with the terrain |
| numVectorNetworkIntersections | number of chords that intersected with the vector network |
| dataAvailable | Please 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. |
| overrideBlockingAssert | when 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. |
| true | if any chord intersected the terrain (or vector network if specified) |
| false | if 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 |
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.
| preloadGeometry | A list of the geometric areas that should be preloaded. They can be specified using any of the subclasses of DtTerrainPagingGeometry. |
|
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 |
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 |
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 |
Set the default expiration time for data load requests generated by intersect calls that require data that has not been loaded (paged-in).
| expireTime | The expiration time to be assigned to data load requests generated by intersect calls on the terrain implementation. |
|
virtual |
|
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 |
|
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 |
|
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.
| func | Function that will handle a single terrain triangle |
| finalize | Function that will handle when this function is completed |
| box | The area (in local coordinates) in which to get terrain triangles from |
| usr | The object that owns both the first and second argument of this function |
|
static |
|
static |
|
virtual |
Register asynchronous path finding task.
Once token's status is "complete", result can be used. See makePath.
|
virtual |
returns whether the given point is within "offset" distance of any edge on the path graph.
| MAKVRinTerra::DtProj::CPtr DtTerrainInterface::localProj | ( | ) | const |
Returns the local DtProj object for the current terrain.
| MAKVRinTerra::DtFeaturesDebugger& DtTerrainInterface::debugger | ( | ) | const |
| MAKVRinTerra::DtQuery DtTerrainInterface::findQuery | ( | const std::string & | name | ) | const |
| const double DtTerrainInterface::topoDistance | ( | const DtPoint & | start, |
| const DtPoint & | end, | ||
| const MAKVRinTerra::DtProj & | localProj | ||
| ) |
| MAKVRinTerra::DtClosestPathFeatureFinder DtTerrainInterface::closestFeatureOnNetwork | ( | const std::string & | type, |
| const DtPoint & | startingLocation, | ||
| const double & | searchRadius, | ||
| bool * | dataAvailable = NULL |
||
| ) |
Finds the closest feature on the feature network to startingLocation.
Returns false if no features are found.
| startingLocation | location in local to which the closest feature on the feature network is found. |
| searchRadius | The radius used to load in features |
| dataAvailable | If NULL, function will block for up to 20 seconds, and return false if the data is not loaded. Otherwise, being feature loading, but do not block. If the features are not fully loaded, it will find the closest feature using whichever features are loaded. |
| void DtTerrainInterface::breakUpChord | ( | const MAKVRinTerra::DtProj & | , |
| const DtChord & | chord, | ||
| std::vector< DtChord > & | chords | ||
| ) | const |
| void DtTerrainInterface::breakUpChord | ( | const DtChord & | chord, |
| std::vector< DtChord > & | chords | ||
| ) | const |
|
virtual |
|
protectedvirtual |
Make a path from start to destination on features configured using the provided type.
See appData/settings/featureconfig.txt for types.
| localStart | Start point in local |
| localDestination | Destination point in local |
| type | Type of features to path plan on, for example "MAK_ROAD" |
| maxSearchradius | A vertex more than this distance from the destination will not cause more feature data to be paged in. |
| cancelCheck | A function that returns true when the task should be canceled. |
| result | The return status of the make path call. |
| weightFactors | List of modifications to edge weights based on DtQueries |
|
protectedvirtual |
|
protected |
|
protected |
Status publisher needs to keep track of when terrain is loaded and unloaded.
|
protected |
|
protected |
|
protected |
|
protected |
The last filename that was passed to loadTerrain()
|
protected |
|
staticprotected |
|
staticprotected |
|
protected |
|
protected |
|
protected |
Manages asynchronous path planning tasks.
|
protected |
|
protected |