![]() |
VR-Forces 4.0.4 Class Documentation
|
This path metric is intended for aggregates of ground entities. More...

Public Member Functions | |
| DtGroundAggregatePathMetric (DtVrfObject *entity) | |
| virtual | ~DtGroundAggregatePathMetric () |
| virtual bool | init () |
| Locates the lead entity of this aggregate and sets the myLeadEntityParameters field. | |
| virtual double | transitionCost (const DtPoint &startPoint, const DtPoint &endPoint) const |
| Calculates the cost of moving directly from startPoint to endPoint for each of the parallel routes used by each subordinate. | |
| virtual double | individualTransitionCost (const DtPoint &startPoint, const DtPoint &endPoint) const |
| Calculates the cost of a single parallel route Note: this function makes a blocking terrain call to insure the required data is paged in. | |
| virtual double | turningCost (double cosAngle) const |
| Returns a cost based on the turning radius of the vehicle. | |
| virtual void | setTerrainSampleDistance (double distance) |
| Sets the distance between terrain sample points used when calculating the cost of moving between two points. | |
| virtual double | terrainSampleDistance () const |
| Returns the current terrain sample distance. | |
| virtual void | setTerrainSampleWidth (double width) |
| virtual double | terrainSampleWidth () const |
Static Public Member Functions | |
| static DtPathMetric * | creator (DtVrfObject *entity) |
Protected Member Functions | |
| virtual bool | getLeadEntityParameters () |
Protected Attributes | |
| const DtGroundVehicleParameters * | myLeadEntityParameters |
| Parameters for the lead entity of this aggregate. | |
| double | myAggregateWidth |
| DtPhysicalWorld * | myPhysicalWorld |
| double | myTerrainSampleDistance |
| Average distance between samples along the evaluated routes. | |
| double | myTerrainSampleWidth |
| Average width between samples along the lateral axis of the aggregate. | |
This path metric is intended for aggregates of ground entities.
When init() is called, the current width (defined by the bounding volume geometry) of the entire aggregate is recorded, and a lead entity is found by taking the first subordinate of the aggregate (as many time as necessary if this is an aggregate of aggregates) until a leaf node is found. (i.e. an entity with no subordinates) This entity must have a DtGroundVehicleParameters parameter entry, and these parameters are used to determine how the aggregate will move across the terrain.
Transition cost is found by evaluating a number of parallel paths based on the width of the aggregate along each proposed path. The average of these costs is returned.
| virtual DtGroundAggregatePathMetric::~DtGroundAggregatePathMetric | ( | ) | [virtual] |
| virtual bool DtGroundAggregatePathMetric::init | ( | ) | [virtual] |
Locates the lead entity of this aggregate and sets the myLeadEntityParameters field.
Reimplemented from DtPathMetric.
| virtual double DtGroundAggregatePathMetric::transitionCost | ( | const DtPoint & | startPoint, |
| const DtPoint & | endPoint | ||
| ) | const [virtual] |
Calculates the cost of moving directly from startPoint to endPoint for each of the parallel routes used by each subordinate.
Implements DtPathMetric.
| virtual double DtGroundAggregatePathMetric::individualTransitionCost | ( | const DtPoint & | startPoint, |
| const DtPoint & | endPoint | ||
| ) | const [virtual] |
Calculates the cost of a single parallel route Note: this function makes a blocking terrain call to insure the required data is paged in.
It also sets overrideBlockingAssert on its call to DtPhysicalWorld::terrainHeightAndSurface to prevent an assertion. This is safe because this function is not called from the main simulation thread.
| virtual double DtGroundAggregatePathMetric::turningCost | ( | double | cosAngle | ) | const [virtual] |
Returns a cost based on the turning radius of the vehicle.
Implements DtPathMetric.
| virtual void DtGroundAggregatePathMetric::setTerrainSampleDistance | ( | double | distance | ) | [virtual] |
Sets the distance between terrain sample points used when calculating the cost of moving between two points.
This distance will be the average used. Default is 5m.
| virtual double DtGroundAggregatePathMetric::terrainSampleDistance | ( | ) | const [virtual] |
Returns the current terrain sample distance.
| virtual void DtGroundAggregatePathMetric::setTerrainSampleWidth | ( | double | width | ) | [virtual] |
Average width between samples along the lateral axis of the aggregate. Default is 10m.
| virtual double DtGroundAggregatePathMetric::terrainSampleWidth | ( | ) | const [virtual] |
Average width between samples along the lateral axis of the aggregate. Default is 10m.
| static DtPathMetric* DtGroundAggregatePathMetric::creator | ( | DtVrfObject * | entity | ) | [static] |
| virtual bool DtGroundAggregatePathMetric::getLeadEntityParameters | ( | ) | [protected, virtual] |
const DtGroundVehicleParameters* DtGroundAggregatePathMetric::myLeadEntityParameters [protected] |
Parameters for the lead entity of this aggregate.
(these parameters are the ones used to find the path)
double DtGroundAggregatePathMetric::myAggregateWidth [protected] |
double DtGroundAggregatePathMetric::myTerrainSampleDistance [protected] |
Average distance between samples along the evaluated routes.
double DtGroundAggregatePathMetric::myTerrainSampleWidth [protected] |
Average width between samples along the lateral axis of the aggregate.