DtRailPathController is a controller that models movement along a generated path for an entity making use of any feature data or routes of the type specified in the path metric.
End User Description: This task controller component responds to path movement tasks by calculating the best path from the current position to the destination using it's rail path planner. It first determines if using feature data or routes is worth the effort or if the entity should just take the direct route. If the former, it finds the entry point and exit point onto and off of the network of feature data/routes and the calculates the most efficent route on the network between the entry point and exit point.
Once the path is calculated, a move location task is issued to the entity to move it using it's normal movement system to the entry point onto the network. Once on the network this controller will deactivate the entity's normal movment system and activate it's rail movement system. Then a rail move along subtask is issued to the DtRailMovementController to allow the entity to efficently move along the generated rail path without the weaving motion symtopmatic of the default move controllers. Once the subtask completes, this controller deactivates the rail system and reactivates the default movement system. If a task was planned to a named object, and that object changes location during the run of this task, the original path will be removed, and a new path will be planned.
- Note
- The entity will remain in place while it is planning a path. If the terrain is complex, the distance to the destination is large, or there is not much available processor this may be a lengthy process.
This component can be configured though its descriptor, the DtRailPathControllerDescriptor. See this class for information on altering the path planning parameters in the OPE file.
This component maintains its internal state in a DtRailPathControllerPSR.
Uses Descriptor Type: DtRailPathControllerDescriptor
|
| | DtRailPathController (const DtString &name, DtLocalObject *owner, DtSimulationServices *simManager, DtComponentDescriptor *desc=NULL, DtReaderWriterRegistry *parentRegistry=NULL) |
| |
| virtual | ~DtRailPathController () override |
| |
| virtual bool | init () override |
| |
| virtual bool | createPSR () |
| |
| virtual void | preFirstTickInit () override |
| |
| virtual DtSimTaskStatePtr | currentTaskState () const override |
| |
| virtual const char * | type () const override |
| |
| virtual void | registerTaskMsgCallbacks () override |
| |
| virtual void | processTaskCompleteReport (DtSimMessage *msg) |
| |
| virtual void | processDeprecatedMovementTask (DtSimMessage *msg, DtSimTaskStatePtr taskStatePtr) |
| |
| virtual void | processDestinationChanged () |
| |
| virtual void | tick () override |
| |
virtual
MAKVRinTerra::DtAStarGraph::DtWeightFactorsList | featureWeights () |
| |
| virtual double | offRoadPathWeight () const |
| |
|
| virtual void | processSetLocationComplete () |
| |
| | DtSingleTaskControllerComponent (const DtString &name, DtLocalObject *owner, DtSimulationServices *simServices, DtComponentDescriptor *compDesc=nullptr, DtReaderWriterRegistry *parentRegistry=nullptr) |
| |
| virtual | ~DtSingleTaskControllerComponent () override |
| |
| virtual void | postTick () override |
| |
| virtual bool | beginProcessingTask (const DtTaskMessage &task, DtSimTaskStatePtr taskState) override |
| |
| virtual void | taskNotify (const DtSimTask &task) override |
| |
| virtual void | taskComplete (bool success=true) |
| |
| virtual void | suspendTask () |
| |
| virtual int | sendSubtask (DtSimTask &task) |
| |
| virtual void | clearSubtask (int subtaskId) |
| |
| virtual void | addPendingSubtaskId (int subtaskId) |
| |
| virtual bool | findPendingSubtaskId (int subtaskId) |
| |
| virtual bool | isSubtasked () const |
| |
| virtual void | removePendingSubtaskId (int subtaskId) |
| |
| virtual void | removeAllPendingSubtaskIds () |
| |
| virtual std::vector< int > | currentPendingSubstaskIds () const |
| |
| virtual DtSubtaskStatusEntry * | subtaskStatus (int subtaskId) |
| |
| virtual void | clearCurrentTaskMessage () |
| |
| virtual DtTaskMessage * | currentTaskMessage () const |
| |
| virtual bool | decideToGiveUpTask () const |
| |
| virtual void | giveUpTask () |
| |
| virtual bool | taskActive (int taskId) const override |
| |
| virtual bool | clearTopLevelTasks () override |
| |
| virtual void | clearConflictingTopLevelTasks (const DtSimTaskMessageType &conflictType) override |
| |
| virtual void | clearTasksByType (const DtSimTaskMessageType &taskType) override |
| |
| virtual void | clearTaskById (int taskId) override |
| |
| virtual DtSuspendedTaskInfo * | suspendTaskById (int taskId) override |
| |
| virtual DtSuspendedTaskInfo * | suspendSubtaskById (int taskId, int subtaskId) override |
| |
virtual std::list
< DtTaskMessage * > | currentTaskMessages () const override |
| |
| virtual DtTaskWithTaskStateListPtr | topLevelTasks () const override |
| |
| virtual void | disable () override |
| |
| virtual void | updateImgui () override |
| |
| virtual void | initializeTaskInformationStateProperty (const DtSimTaskMessageType &taskType) |
| |
| virtual void | updateCurrentTaskInformationStatusProperty (const DtString &status) |
| |
| virtual DtString | taskInformationStatusPropertyValue (const DtSimTaskMessageType &taskType) const |
| |
| virtual DtString | currentTaskInformationStatusPropertyValue () const |
| |
| virtual DtRwPropertiesStructure * | taskInformationProperty (const DtSimTaskMessageType &taskType) |
| |
| virtual DtRwPropertiesStructure * | currentTaskInformationProperty () |
| |
| | DtTaskControllerComponent (const DtString &name, DtLocalObject *owner, DtSimulationServices *simServices, DtComponentDescriptor *compDesc=nullptr, DtReaderWriterRegistry *parentRegistry=nullptr) |
| |
| virtual | ~DtTaskControllerComponent () override |
| |
| virtual AcceptLevel | acceptTask (const DtTaskMessage &task) |
| |
| virtual bool | showCurrentTaskInGui () const |
| |
| virtual void | setRadio (DtSimRadio *radio) override |
| |
| virtual void | addTaskProcessorCallback (const DtSimTaskMessageType &taskType, DtTaskMessageCallbackFcn fcn, void *usr) |
| |
| virtual void | addTaskProcessorCallback (const DtSimTaskMessageType &taskType, DtMessageCallbackFcn fcn, void *usr) |
| |
| virtual void | removeTaskProcessorCallback (const DtSimTaskMessageType &taskType, DtMessageCallbackFcn fcn, void *usr) |
| |
| virtual void | removeTaskProcessorCallback (const DtSimTaskMessageType &taskType, DtTaskMessageCallbackFcn fcn, void *usr) |
| |
| virtual void | enable () override |
| |
| virtual void | sendTaskCanceled (DtTaskMessage *taskMsg) |
| |
| virtual bool | taskVisualizationsActive () const override |
| |
| virtual void | setTasked (bool tasked) |
| |
| virtual bool | tasked () const |
| |
| | DtControllerComponent (const DtString &name, DtLocalObject *owner, DtSimulationServices *simServices, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0) |
| |
| virtual | ~DtControllerComponent () override |
| |
| virtual bool | postAddComponentsInit () override |
| |
| virtual DtSimRadio * | radio () |
| |
| virtual void | enableTaskTypes () |
| |
| virtual void | enableScriptedTask (const DtString &scriptId) |
| |
| virtual void | disableTaskTypes () |
| |
| | DtSimComponent (const DtString &name, DtLocalObject *owner, DtSimulationServices *simServices, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0) |
| |
| virtual | ~DtSimComponent () override |
| |
| virtual void | setParentSystem (DtComponentSystem *system) |
| |
| DtComponentSystem * | parentSystem () const |
| |
| virtual void | registerAttributeFunctions () |
| |
| virtual void | timedTick () |
| |
| virtual void | setMinTickPeriod (double minTickPeriod, double minTickPeriodVariance) |
| |
| virtual void | setupFirstTickTime () |
| |
| virtual void | setEntity (DtLocalObject *entity) |
| |
| virtual DtSimComponent * | nextComponent () |
| |
| virtual DtSimComponent * | prevComponent () |
| |
| virtual void | setListItem (DtListItem *item) |
| |
| virtual DtListItem * | listItem () |
| |
| virtual void | putData (std::string &fp, int indentLevel=0) override |
| |
| virtual DtlObjPtr | getData (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths, const DtVariableBindingsList &variableBindings) override |
| |
| virtual void | addInputPort (DtInputPort *port) |
| |
| virtual void | removeInputPort (DtInputPort *port) |
| |
| virtual DtInputPort * | lookupInputPort (const DtString &portName) |
| |
| virtual DtList | inputPortList () const |
| |
| virtual void | addOutputPort (DtOutputPort *port) |
| |
| virtual void | removeOutputPort (DtOutputPort *port) |
| |
| virtual DtOutputPort * | lookupOutputPort (const DtString &portName) |
| |
| virtual DtList | outputPortList () const |
| |
| virtual void | addInputPortGroup (DtInputPortGroup *group) |
| |
| virtual void | removeInputPortGroup (DtInputPortGroup *group) |
| |
| virtual DtInputPortGroup * | lookupInputPortGroup (const DtString &groupName) |
| |
| virtual DtList | inputPortGroupList () const |
| |
| virtual void | addOutputPortGroup (DtOutputPortGroup *group) |
| |
| virtual void | removeOutputPortGroup (DtOutputPortGroup *group) |
| |
| virtual DtOutputPortGroup * | lookupOutputPortGroup (const DtString &groupName) |
| |
| virtual DtList | outputPortGroupList () const |
| |
| virtual int | priority () const |
| |
| virtual void | setPriority (int priority) |
| |
| double | dT () const |
| |
| virtual void | setDT (double deltaT) |
| |
| virtual void | setComponentDescriptor (DtComponentDescriptor *componentDescriptor) |
| |
virtual const
DtComponentDescriptor * | componentDescriptor () const |
| |
| virtual bool | tickWhileDestroyed () const |
| |
| DtVrfProcessStateRepositoryManager * | psrManager () |
| |
| virtual const DtSymbolString & | componentFullName () const |
| |
| DtPhysicalWorld * | physicalWorld () |
| |
| const DtPhysicalWorld * | physicalWorld () const |
| |
| const DtAttachedTerrain * | terrainAttachedTo () const |
| |
| DtLocalObject * | entity () |
| |
| const DtLocalObject * | entity () const |
| |
| DtSimulationServices * | simulationServices () |
| |
| const DtSimulationServices * | simulationServices () const |
| |
| const Coordinate_System * | coordinateSystem () const |
| |
| virtual void | isClutterChanged () |
| |
| virtual bool | taskVisualizationsEnabled () const |
| |
| makVrf::DtTaskVisualizationMap & | taskVisualizations () |
| |
| virtual bool | debugActive () const |
| |
| virtual bool | isEnabled () |
| |
| virtual void | setIsEnabled (bool yesNo) |
| |
| virtual DtOutputStream & | objectConsoleDebug (const DtString &channel="") const |
| |
| virtual DtOutputStream & | objectConsoleVerbose (const DtString &channel="") const |
| |
| virtual DtOutputStream & | objectConsoleInfo (const DtString &channel="") const |
| |
| virtual DtOutputStream & | objectConsoleWarn (const DtString &channel="") const |
| |
| virtual DtOutputStream & | objectConsoleError (const DtString &channel="") const |
| |
| virtual int | notifyLevel () const |
| |
| virtual DtSimResourceManager & | resourceManager () |
| |
virtual const
DtSimResourceManager & | resourceManager () const |
| |
VRF4API_METHOD const
DtSimulationServices * | simManager () const |
| |
| | DtReaderWriter () |
| |
| | DtReaderWriter (const DtString &name, DtReaderWriterRegistry *parentRegistry=NULL, bool readonly=false) |
| |
| | DtReaderWriter (const DtSymbolString &name, DtReaderWriterRegistry *parentRegistry=NULL, bool readonly=false) |
| |
| | DtReaderWriter (const DtString &name, const DtReaderWriter &orig, DtReaderWriterRegistry *parentRegistry=NULL) |
| |
| | DtReaderWriter (const DtSymbolString &name, const DtReaderWriter &orig, DtReaderWriterRegistry *parentRegistry=NULL) |
| |
| | DtReaderWriter (const DtReaderWriter &, DtReaderWriterRegistry *parentRegistry=NULL) |
| |
| const DtReaderWriter & | operator= (const DtReaderWriter &orig) |
| |
| bool | operator== (const DtReaderWriter &) const |
| |
| bool | operator!= (const DtReaderWriter &rhs) const |
| |
| virtual | ~DtReaderWriter () |
| |
| virtual void | putSelf (std::string &fp, int indentLevel=0, bool writeUnspecified=false, const DtFilename &path=DtFilename::nullFilename()) |
| |
| virtual void | postPutSelf () |
| |
| virtual void | prePutSelf () |
| |
| virtual void | getSelf (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &variableBindings=nullVariableReference()) |
| |
| virtual void | postGetSelf () |
| |
| virtual void | preGetSelf () |
| |
| virtual void | writeSelf (std::string &fp, int indentLevel=0, bool writeUnspecified=false, const DtFilename &path=DtFilename::nullFilename()) |
| |
| virtual DtSymbolString | name () const |
| |
| virtual void | addAlias (const DtSymbolString &alias) |
| |
| virtual void | addAlias (const DtString &alias) |
| |
| virtual bool | hasAlias (const DtSymbolString &alias) |
| |
| virtual const aliasContainer & | aliases () const |
| |
| virtual void | setReadonly (bool flag) |
| |
| bool | isReadonly () const |
| |
| virtual void | reset () |
| |
| virtual int | alignment () const |
| |
| virtual bool | variableIsBound () const |
| |
| virtual void | unbindVariable () |
| |
| virtual void | setName (const DtString &) |
| |
| virtual const char * | readerWriterType () const |
| |
| virtual const char * | xmlType () const |
| |
| virtual DtString | prettyPrint () const |
| |
| std::string | debugText () const |
| |
| virtual void | bindVariables (DtVariableBindingsList variableBindings) |
| |
virtual std::list
< DtVariableNameType > | unboundVariables () const |
| |
| bool | invalid () const |
| |
| virtual bool | hasChild (const DtReaderWriter *p) const |
| |
| virtual bool | hasVariableReference () const |
| |
| virtual void | bindLocalVariables (const DtVariableBindingsList &variableBindings) |
| |
| virtual void | recordUpdateTime () const |
| |
| virtual bool | changedSinceLastChecked () |
| |
| virtual bool | peekChangedSinceLastChecked () const |
| |
| virtual void | setValueSpecified (bool specified, bool recurse=false) |
| |
| virtual bool | valueSpecified () const |
| |
| virtual bool | isVariableReference () const |
| |
| virtual void | setIsVariableReference (bool value) |
| |
| virtual void | clearAllVariableReferenceFlags () |
| |
| virtual DtSymbolString | variableName () const |
| |
| virtual void | setVariableName (const DtSymbolString variableName) |
| |
| virtual const DtReaderWriter * | defaultRWValue () const |
| |
| virtual DtReaderWriter * | defaultRWValue () |
| |
| virtual void | setDefaultRWValue (DtReaderWriter *) |
| |
| virtual bool | checkAndSetDefaultRWValue (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &variableBindings=nullVariableReference()) |
| |
| const DtReaderWriterRegistry & | registry () const |
| |
| DtReaderWriterRegistry & | registry () |
| |
| virtual DtPropertyInterface * | property () |
| |
| virtual const DtPropertyInterface * | property () const |
| |
| virtual DtString | toXml () const |
| |
| virtual DtRwVariableBindings * | generateVariableBindings () const |
| |
| virtual bool | toXml (const DtFilename &) const |
| |
| virtual bool | fromXml (const DtString &) |
| |
| virtual bool | fromXmlFile (const DtFilename &) |
| |
| virtual void | putSelf (DtEnvironmentSP, DtEnvValueSP parent) const |
| |
| virtual void | putData (DtEnvironmentSP, DtEnvValueSP value) const |
| |
| virtual void | putVariableReference (DtEnvironmentSP, DtEnvValueSP value) const |
| |
| virtual void | getSelf (const DtEnvironmentSP, const DtEnvValueSP root, const SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &bindings=DtVariableBindingsList()) |
| |
| virtual void | getData (const DtEnvironmentSP, const DtEnvValueSP, const SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &bindings=DtVariableBindingsList()) |
| |
| virtual void | unrecognizedItem (const DtEnvironmentSP env, const DtEnvValueSP root, const SearchPaths &searchPaths, const DtVariableBindingsList &varBindings) |
| |
| virtual void | getVariableReference (DtEnvironmentSP, DtEnvValueSP value) |
| |
|
| virtual void | processRailTaskMsg (const DtTaskMessage &msg, DtSimTaskStatePtr taskStatePtr) |
| |
| virtual void | processScriptedRoadTaskMsg (const DtTaskMessage &msg, DtSimTaskStatePtr taskStatePtr) |
| |
| virtual void | processRailPathTask (const DtRailPathTask *task, DtSimTaskStatePtr taskStatePtr) |
| |
| virtual void | clearCurrentPath () |
| |
| virtual bool | setupPathFromRailList (DtRailSegmentList *, bool testRange=true) |
| |
| virtual bool | setupPathFromRoute (const DtSimObject *route, bool startClosestPoint, DtIteratorDirection traversalDirection) |
| |
| virtual bool | isEntityCloseEnoughToRoad (DtRailSegment *railSegment, double distance, double &actualDistSq) const |
| |
| virtual bool | isEntityOnRoad (DtRailSegment *railSegment) const |
| |
| double | maxSearchRadius (const DtVector &start, const DtVector &end) |
| |
| virtual bool | setupPathToDestination (const DtVector &start, const DtVector &end) |
| |
| virtual void | clearTask () override |
| |
| virtual void | clearPendingSubtasks () |
| |
| virtual void | clearSubtasksByType (const DtSimTaskMessageType &taskType) |
| |
| virtual void | cleanupInactiveSubtaskStatus () |
| |
| virtual void | suspendSubtasksOfTask (int taskId, DtSuspendedTaskInfo *suspendInfo) |
| |
| virtual void | suspendSubtaskOfTask (int taskId, int subtaskId, DtSuspendedTaskInfo *suspendInfo) |
| |
| virtual DtSimTaskMessageType | remapScriptId (const DtSimTaskMessageType &) const |
| |
| | DtControllerComponent () |
| |
| | DtControllerComponent (const DtControllerComponent &orig) |
| |
| const DtControllerComponent & | operator= (const DtControllerComponent &orig) |
| |
| virtual void | onRestore () override |
| |
| virtual void | initializeTargetingControlTableFromDescriptor (const DtReaderWriter *) |
| |
| virtual void | sendCapableSetsAndTasks () |
| |
| virtual void | setupTimedTickLogic (double minTickPeriod, double minTickPeriodVariance) |
| |
| virtual double | computeCurrentTime () |
| |
| bool | testInvariant () const |
| |
| virtual bool | createPortGroups () |
| |
| virtual bool | createPorts () |
| |
| DtVrfProcessStateRepository * | createComponentPsr (const DtString &defaultPsrType, const DtString &defaultPsrName, bool useDescriptorParams=true) |
| |
| virtual void | updateTaskVisualizations () |
| |
| virtual void | destroyTaskVisualizations () |
| |
| virtual void | destroyTaskVisualization (const DtString &name) |
| |
virtual
makVrf::DtPointTaskVisualizationPtr | pointTaskVisualization (const DtString &name) |
| |
virtual
makVrf::DtLineTaskVisualizationPtr | lineTaskVisualization (const DtString &name) |
| |
virtual
makVrf::DtAreaTaskVisualizationPtr | areaTaskVisualization (const DtString &name) |
| |
virtual
makVrf::DtTextTaskVisualizationPtr | textTaskVisualization (const DtString &name) |
| |
| double | calculateNextTaskVisTickTime () const |
| |
| DtVrfObjectStateRepository * | localStateRepository () |
| |
| const DtVrfObjectStateRepository * | localStateRepository () const |
| |
| DtPropertyInterface * | cachedNextFrameStateProperty (DtPropertyInterface **prop, const DtString &propName) |
| |
| template<typename ValType > |
| void | setCachedNextFrameStatePropertyValue (DtPropertyInterface **prop, const DtString &propName, ValType value) |
| |
| const DtPropertyInterface * | cachedCurrentFrameStateProperty (const DtPropertyInterface **prop, const DtString &propName) const |
| |
| template<typename ValType > |
| bool | getCachedCurrentFrameStatePropertyValue (const DtPropertyInterface **prop, const DtString &propName, ValType &value) const |
| |
| void | addSimObjectPredicateCallback (DtSimObjectReference, DtVrfObjectPredicateCallbackFunction function, const DtVrfObjectPredicate &predicate, DtTime evaluationPeriod=0, void *userData=0) |
| |
| void | removeSimObjectPredicateCallback (const DtSimObject *, DtVrfObjectPredicateCallbackFunction function, const DtVrfObjectPredicate &predicate, DtTime evaluationPeriod=0, void *userData=0) |
| |
| void | invokeSimObjectPredicateCallbacks () |
| |
| virtual void | clearPredicateCallbacks () |
| |
| virtual void | bindToRwAsVariable (const DtReaderWriter *rw) |
| |