64 InputRoute() : vertices(), actions(
"actions"), targetPosition(NoRoutePositionSpecified),
65 desiredTargetTime(NoTimeSpecified), holdPosition(NoRoutePositionSpecified), startPosition(0.0) {};
104 holdUntilTime(NoTimeSpecified) {};
108 std::vector<double> vertexTimes;
126 : startPosition(-1.0)
129 , isRequired(false) {};
131 double startPosition;
142 virtual void initialize();
154 virtual void setInitialGeocentricLocation(
const DtVector& geocLoc);
159 virtual void setInitialTime(
double t);
162 virtual void setInitialSpeed(
double s);
171 virtual void setEntityMaxSpeed(
double speed);
174 virtual double entityMaxSpeed()
const;
178 virtual void setEntityMinSpeed(
double speed);
181 virtual double entityMinSpeed()
const;
185 virtual void setEntityDefaultSpeed(
double speed);
188 virtual double entityDefaultSpeed()
const;
192 virtual void setEntityMaxAcceleration(
double accel);
195 virtual double entityMaxAcceleration()
const;
199 virtual void setEntityMaxDeceleration(
double decel);
202 virtual double entityMaxDeceleration()
const;
211 virtual void setCurrentGeocentricLocation(
const DtVector& geocLoc);
214 virtual DtVector currentGeocentricLocation()
const;
218 virtual void setCurrentTime(
double t);
221 virtual double currentTime()
const;
225 virtual void setCurrentMinSpeed(
double speed);
228 virtual double currentMinSpeed()
const;
232 virtual void setCurrentMaxSpeed(
double speed);
235 virtual double currentMaxSpeed()
const;
239 virtual void setCurrentPreferredSpeed(
double speed);
242 virtual double currentPreferredSpeed()
const;
246 virtual void setCurrentSpeed(
double speed);
249 virtual double currentSpeed()
const;
253 virtual void setCurrentAcceleration(
double speed);
256 virtual double currentAcceleration()
const;
259 virtual double targetPosition()
const;
262 virtual double targetTime()
const;
265 virtual double holdPosition()
const;
268 virtual void addPlannedSpeed(
double routePosition,
double speed,
bool required);
282 virtual void addSetPreprocessor(
DtSetMessageType t, SetCallbackFcn fcn,
void* usr);
285 virtual void addSetProcessor(
DtSetMessageType t, SetCallbackFcn fcn,
void* usr);
291 virtual void printState(std::ostream& strm)
const;
302 virtual DtVector calculateLocationOfPositionOnRoute(
double pos,
const DtVertexList& vertices)
const;
313 virtual double calculateTravelTime(
const DtVector& currLoc,
const DtVector& nextLoc,
314 double currentSpeed,
double preferredSpeed,
315 double& newSpeed,
double& newAcceleration)
const;
324 virtual double calculateDistanceToTarget(
const DtVector& currLoc,
double currPos,
340 virtual double calculateTimeAndDistanceAtRequiredSpeeds(
double currPos,
342 double& distanceAtRequiredSpeeds)
const;
346 virtual void sanityCheckCurrentSettings();
350 virtual void processHold(
const DtVertexList& vertices,
double position);
double holdUntilTime
Estimated time at which hold will complete.
Definition: moveAlongRouteTimeEstimator.h:117
double myCurrentMinSpeed
Temporary preferences, updated by some actions during calculations.
Definition: moveAlongRouteTimeEstimator.h:409
Coordinate_System * myCoordSys
Definition: moveAlongRouteTimeEstimator.h:432
std::map< DtSetMessageType, SetCallbackPair > SetCallbackMap
Definition: moveAlongRouteTimeEstimator.h:423
bool myEntityRequiredSpeed
Entity characteristics, initialized by user.
Definition: moveAlongRouteTimeEstimator.h:404
SetCallbackMap mySetProcessors
Definition: moveAlongRouteTimeEstimator.h:428
Definition: moveAlongRouteTimeEstimator.h:123
Performs time estimates for move along route with actions tasks. Based on settings for the entity's s...
Definition: moveAlongRouteTimeEstimator.h:50
SetCallbackMap mySetPreprocessors
Definition: moveAlongRouteTimeEstimator.h:427
Definition: rwRouteActionList.h:19
virtual ~OutputEstimates()
Definition: moveAlongRouteTimeEstimator.h:105
double myTargetTime
Target position and the time at which we need to arrive there.
Definition: moveAlongRouteTimeEstimator.h:389
DT_DLL_features std::ostream & operator<<(std::ostream &, const DtFeatureTransform &)
std::ostream output.
std::vector< double > actionTimes
Estimated completion times of each of the specified actions.
Definition: moveAlongRouteTimeEstimator.h:111
std::pair< TaskCallbackFcn, void * > TaskCallbackPair
Definition: moveAlongRouteTimeEstimator.h:420
TaskCallbackMap myTaskPreprocessors
Definition: moveAlongRouteTimeEstimator.h:425
double myEntityMaxDeceleration
Entity characteristics, initialized by user.
Definition: moveAlongRouteTimeEstimator.h:402
double myEntityMaxSpeed
Entity characteristics, initialized by user.
Definition: moveAlongRouteTimeEstimator.h:398
double myCurrentPreferredSpeed
Temporary preferences, updated by some actions during calculations.
Definition: moveAlongRouteTimeEstimator.h:411
double myEntityMaxAcceleration
Entity characteristics, initialized by user.
Definition: moveAlongRouteTimeEstimator.h:401
double myEntityMinSpeed
Entity characteristics, initialized by user.
Definition: moveAlongRouteTimeEstimator.h:397
DtSetDataRequest is an abstract base class from which real setDataRequests can derive. It manages the read/write capability; derived classes need only use and register read/writatble data types for derived information.
Definition: setDataRequest.h:41
Definition: coordSystem.h:54
Definition: moveAlongRouteTimeEstimator.h:101
std::pair< SetCallbackFcn, void * > SetCallbackPair
Definition: moveAlongRouteTimeEstimator.h:422
bool isRequired
Definition: moveAlongRouteTimeEstimator.h:134
void preprocessSetRequiredSpeed(DtSetDataRequest *set, const DtVertexList &vertices, double position, DtMoveAlongRouteTimeEstimator *est)
These functions do preprocessing for standard sets that can affect the time estimates.
OutputEstimates()
Definition: moveAlongRouteTimeEstimator.h:103
class DtVertexList:
Definition: vertexList.h:22
void preprocessSetOrderedSpeed(DtSetDataRequest *set, const DtVertexList &vertices, double position, DtMoveAlongRouteTimeEstimator *est)
These functions do preprocessing for standard sets that can affect the time estimates.
std::vector< PlannedSpeed > PlannedSpeedList
Definition: moveAlongRouteTimeEstimator.h:136
double speedRequired
Speed required to make time on target.
Definition: moveAlongRouteTimeEstimator.h:120
double myHoldPosition
Position at which to hold.
Definition: moveAlongRouteTimeEstimator.h:393
double speed
Definition: moveAlongRouteTimeEstimator.h:133
static const double NoRoutePositionSpecified
Definition: moveAlongRouteTimeEstimator.h:58
double myCurrentAcceleration
Current state, updated by calculations.
Definition: moveAlongRouteTimeEstimator.h:417
static const double NoTimeSpecified
Definition: moveAlongRouteTimeEstimator.h:57
double myCurrentTime
Current state, initialized by user and updated by calculations.
Definition: moveAlongRouteTimeEstimator.h:382
#define DT_DLL_vrftasks
This file is used to determine how to build.
Definition: vrftasksDefines.h:26
PlannedSpeedList myPlannedSpeeds
Definition: moveAlongRouteTimeEstimator.h:430
double targetTime
Estimated time to arrive on target.
Definition: moveAlongRouteTimeEstimator.h:114
double myCurrentSpeed
Current state, updated by calculations.
Definition: moveAlongRouteTimeEstimator.h:416
DtSimTask is an abstract base class from which real tasks can derive. It manages the read/write capab...
Definition: simTask.h:30
Definition: routeAction.h:35
double myTargetPosition
Target position and the time at which we need to arrive there.
Definition: moveAlongRouteTimeEstimator.h:388
double myEntityDefaultSpeed
Entity characteristics, initialized by user.
Definition: moveAlongRouteTimeEstimator.h:399
void processSetLocation(DtSetDataRequest *set, const DtVertexList &vertices, double position, DtMoveAlongRouteTimeEstimator *est)
PlannedSpeed()
Definition: moveAlongRouteTimeEstimator.h:125
void processSetRequiredSpeed(DtSetDataRequest *set, const DtVertexList &vertices, double position, DtMoveAlongRouteTimeEstimator *est)
void processSetCurrentSpeed(DtSetDataRequest *set, const DtVertexList &vertices, double position, DtMoveAlongRouteTimeEstimator *est)
DtVector myCurrentLocation
Current state, initialized by user and updated by calculations.
Definition: moveAlongRouteTimeEstimator.h:383
double myCurrentMaxSpeed
Temporary preferences, updated by some actions during calculations.
Definition: moveAlongRouteTimeEstimator.h:410
double endPosition
Definition: moveAlongRouteTimeEstimator.h:132
std::map< DtSimTaskMessageType, TaskCallbackPair > TaskCallbackMap
Definition: moveAlongRouteTimeEstimator.h:421
void processSetOrderedSpeed(DtSetDataRequest *set, const DtVertexList &vertices, double position, DtMoveAlongRouteTimeEstimator *est)
TaskCallbackMap myTaskProcessors
Definition: moveAlongRouteTimeEstimator.h:426