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

This path metric is intended for aggregates of ground entities. More...

Inheritance diagram for DtGroundAggregatePathMetric:
Inheritance graph
[legend]

List of all members.

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 DtPathMetriccreator (DtVrfObject *entity)

Protected Member Functions

virtual bool getLeadEntityParameters ()

Protected Attributes

const DtGroundVehicleParametersmyLeadEntityParameters
 Parameters for the lead entity of this aggregate.
double myAggregateWidth
DtPhysicalWorldmyPhysicalWorld
double myTerrainSampleDistance
 Average distance between samples along the evaluated routes.
double myTerrainSampleWidth
 Average width between samples along the lateral axis of the aggregate.

Detailed Description

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.


Constructor & Destructor Documentation


Member Function Documentation

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.


Member Data Documentation

Parameters for the lead entity of this aggregate.

(these parameters are the ones used to find the path)

Average distance between samples along the evaluated routes.

Average width between samples along the lateral axis of the aggregate.


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)