![]() |
VR-Forces 4.5 Class Documentation
|
Instances of DtRailMovementControllerPSR are used to hold the shared/checkpointable data for a rail movement system. More...

Public Member Functions | |
| DtRailMovementControllerPSR (DtVrfObject *vrfObject, const DtString &rwName=DtString::nullString(), DtReaderWriterRegistry *parentRegistry=0) | |
| constructor | |
| DtRailMovementControllerPSR (const DtRailMovementControllerPSR &orig, const DtString &rwName=DtString::nullString(), DtReaderWriterRegistry *parentRegistry=0) | |
| copy constructor | |
| virtual | ~DtRailMovementControllerPSR () |
| destructor | |
| DtRailMovementControllerPSR & | operator= (const DtRailMovementControllerPSR &orig) |
| assignment operator | |
| virtual DtVrfProcessStateRepository * | clone (const DtString &rwName=DtString::nullString(), DtReaderWriterRegistry *parentRegistry=0) const |
| returns a newly created copy of this object | |
| virtual DtString | type () const |
| Returns the string type of the repository, as defined in procSRTypes.h. | |
| virtual void | setCurrentMovementState (DtRailMovementState state) |
| virtual DtRailMovementState | currentMovementState () const |
| virtual double | offsetFromLaneCenterline () const |
| The lateral offset from the current lane's center line. | |
| virtual void | setOffsetFromLaneCenterline (const double offset) |
| virtual double | laneChangeWidth () const |
| Indicates the total distance between lane centerlines of the lane change maneuver being performed. | |
| virtual void | setLaneChangeWidth (const double f) |
| void | setConvoyUseCatchUpSpeed (const bool useCatchUpSpeed) |
| const bool | convoyUseCatchUpSpeed () const |
| virtual void | setUseHighFidelityGroundClamping (bool yesOrNo) |
| When clamping the entity to the ground, using high fidelity ground clamping will cause the entity to use all four support points when determining the plane on which the entity is positioned. | |
| virtual bool | useHighFidelityGroundClamping () const |
| virtual void | resetSegmentIndex () |
| virtual void | incrementSegmentIndex () |
| virtual const int | segmentIndex () const |
| virtual void | setSegmentIndex (const int) |
| virtual double | positionAlongLane () const |
| The linear position pf the turn center (rear axle) along the current road segment. | |
| virtual void | setPositionAlongLane (const double p) |
| virtual double | speedAlongLane () const |
| The 1-dimensional speed of the entity along the lane. | |
| virtual void | setSpeedAlongLane (const double s) |
| virtual double | accelerationAlongLane () const |
| The 1-dimensional acceleration of the entity along the lane. | |
| virtual void | setAccelerationAlongLane (const double a) |
| virtual void | setCurrentLanePosition (const int lane) |
| This is the lane we are currently traveling in, or moving to in a lane-change maneuver. | |
| virtual const int | currentLanePosition () const |
| virtual void | setCurrentLaneNumber (const int lane) |
| The function to use: | |
| virtual const int | currentLaneNumber () const |
| virtual void | setPassingLanePosition (const int lane) |
| This is the lane the entity is going to in a lane-change maneuver. | |
| virtual const int | passingLanePosition () const |
| virtual void | setTurning (bool turn) |
| virtual bool | turning () const |
| virtual void | setAllowPassing (bool canPass) |
| virtual bool | allowPassing () const |
| virtual void | setPassing (bool pass) |
| virtual bool | passing () const |
| virtual void | setAvoidingCollision (bool avoid) |
| virtual bool | avoidingCollision () const |
| virtual void | setNeedSwitchLanes (bool switchLane) |
| virtual bool | needSwitchLanes () const |
| virtual void | setConvoyTargetSpecified (bool following) |
| virtual bool | convoyTargetSpecified () const |
| virtual void | setConvoyFollowTarget (const DtUUID &) |
| virtual const DtRwVrfObjectReference & | convoyFollowTarget () const |
| Was: convoyFollowTargetName. | |
| virtual DtRwVrfObjectReference & | convoyFollowTarget () |
| virtual void | setConvoyFollowDistance (const double dist) |
| virtual const double | convoyFollowDistance () const |
| virtual const double | maxFollowThreshold () const |
| virtual void | setMaxFollowThreshold (const double threshold) |
Public Member Functions inherited from DtVrfProcessStateRepository | |
| DtVrfProcessStateRepository (DtVrfObject *vrfObject, const DtString &rwName=DtString::nullString(), DtReaderWriterRegistry *parentRegistry=0) | |
| DtVrfProcessStateRepository (const DtVrfProcessStateRepository &orig, const DtString &rwName=DtString::nullString(), DtReaderWriterRegistry *parentRegistry=0) | |
| const DtVrfProcessStateRepository & | operator= (const DtVrfProcessStateRepository &orig) |
| virtual | ~DtVrfProcessStateRepository () |
| virtual bool | init () |
| Used for virtual construction. This base method simply returns true. | |
| virtual bool | loadedFromMTL () const |
| virtual void | getSelf (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths, const DtVariableBindingsList &variableBindings) |
Public Member Functions inherited from DtReaderWriter | |
| DtReaderWriter () | |
| default constructor | |
| DtReaderWriter (const DtString &name, DtReaderWriterRegistry *parentRegistry=NULL, bool readonly=false) | |
| real constructor Setting the readonly flag prevents object from writing itself to the stream. | |
| DtReaderWriter (const DtSymbolString &name, DtReaderWriterRegistry *parentRegistry=NULL, bool readonly=false) | |
| DtReaderWriter (const DtString &name, const DtReaderWriter &orig, DtReaderWriterRegistry *parentRegistry=NULL) | |
| pseudo-copy constructor | |
| DtReaderWriter (const DtSymbolString &name, const DtReaderWriter &orig, DtReaderWriterRegistry *parentRegistry=NULL) | |
| DtReaderWriter (const DtReaderWriter &, DtReaderWriterRegistry *parentRegistry=NULL) | |
| copy constructor | |
| const DtReaderWriter & | operator= (const DtReaderWriter &orig) |
| assignment operator | |
| bool | operator== (const DtReaderWriter &) const |
| Equivalence operator. | |
| bool | operator!= (const DtReaderWriter &rhs) |
| virtual | ~DtReaderWriter () |
| destructor | |
| virtual void | putSelf (std::string &fp, int indentLevel=0, bool writeUnspecified=false, const DtFilename &path=DtFilename::nullFilename()) |
| Top level call to write itself to file. | |
| virtual void | postPutSelf () |
| Called after either version of put self (file or environment). Default is no-op. | |
| virtual void | prePutSelf () |
| Called before either version of put self (file or environment). Default is no-op. | |
| virtual void | getSelf (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &variableBindings=nullVariableReference()) |
| Top level to read itself from an input stream. | |
| virtual void | postGetSelf () |
| Called after either version of getSelf (mtl or environment). Default is no-op. | |
| virtual void | preGetSelf () |
| Called before either version of get self (file or environment). Default is no-op. | |
| virtual void | writeSelf (std::string &fp, int indentLevel=0, bool writeUnspecified=false, const DtFilename &path=DtFilename::nullFilename()) |
| Called from putSelf, calls myRegistry.putSelf which in turn calls putSelf on each reader/writer in the registry. | |
| virtual DtSymbolString | name () const |
| Accessor for name of this readable/writable object. | |
| virtual void | addAlias (const DtSymbolString &alias) |
| Add an alias as an alternative name for this object. | |
| virtual void | addAlias (const DtString &alias) |
| virtual bool | hasAlias (const DtSymbolString &alias) |
| virtual const aliasContainer & | aliases () const |
| virtual void | setReadonly (bool flag) |
| Set read-only flag. | |
| bool | isReadonly () const |
| virtual void | reset () |
| For those reader/writer items that support it, resets the reader/writer value to iriginal state Default is no-op. | |
| virtual int | alignment () const |
| For those items that are sent over the network via HLA, this will give the network alignment. | |
| virtual bool | variableIsBound () const |
| virtual void | unbindVariable () |
| Sets the myVariableIsBound flag to false. | |
| virtual void | setName (const DtString &) |
| Set the name of the object. | |
| virtual const char * | readerWriterType () const |
| Used to supply a string type that this reader writer type is. | |
| virtual const char * | xmlType () const |
| virtual DtString | prettyPrint () const |
| Routine to return a human readable form of the reader/writer variable. | |
| std::string | debugText () const |
| virtual void | bindVariables (DtVariableBindingsList variableBindings) |
| Runs a variable binding pass on this reader writer and any of its children. | |
| virtual std::list < DtVariableNameType > | unboundVariables () const |
| bool | invalid () const |
| virtual bool | hasChild (const DtReaderWriter *p) const |
| Returns true if this variable has a child p in it's chain. | |
| virtual bool | hasVariableReference () const |
| Returns true if this item or any item in the registry (recursive) is a variable reference. | |
| virtual void | bindLocalVariables (const DtVariableBindingsList &variableBindings) |
| Checks to see if this RW object is a variable reference that can be bound using the provided bindings. | |
| virtual void | recordUpdateTime () const |
| Can be implemented in subclasses to stamp the time when updated. | |
| virtual bool | wasUpdatedSince (DtTime t) const |
| Can be implemented in subclasses to return true if an update occurred after the specified time. | |
| virtual void | putData (std::string &fp, int indentLevel=0) |
| Deriving class overrides these to get/put class specific data. | |
| virtual DtlObjPtr | getData (DtlObjPtr args, const SearchPaths &searchPaths, const DtVariableBindingsList &variableBindings) |
| virtual void | setValueSpecified (bool specified, bool recurse=false) |
| The specified flags are used for optional values. | |
| virtual bool | valueSpecified () const |
| virtual bool | isVariableReference () const |
| Specifies whether or not this reader writer is really a variable that is specified elsewhere. | |
| virtual void | setIsVariableReference (bool value) |
| virtual void | clearAllVariableReferenceFlags () |
| Clears out all variable reference flags from all readerwriter items in registry recursively. | |
| virtual DtSymbolString | variableName () const |
| The variable name, if this object is a variable reference. | |
| virtual void | setVariableName (const DtSymbolString variableName) |
| virtual const DtReaderWriter * | defaultRWValue () const |
| The default value to use if the reader/writer object is a variable and that variable is not specified. | |
| virtual DtReaderWriter * | defaultRWValue () |
| virtual void | setDefaultRWValue (DtReaderWriter *) |
| Previous default value, if exists, will be removed and replaced with a clone of the supplied variable. | |
| virtual bool | checkAndSetDefaultRWValue (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &variableBindings=nullVariableReference()) |
| Give the stream, if the stream contains a default value then set it here. | |
| const DtReaderWriterRegistry & | registry () const |
| Collection of child DtReaderWriter nodes owned by this object. | |
| DtReaderWriterRegistry & | registry () |
| virtual DtPropertyInterface * | property () |
| virtual const DtPropertyInterface * | property () const |
| virtual DtString | toXml () const |
| virtual bool | toXml (const DtFilename &) const |
| Writes contents of xml result to the given filename. | |
| virtual bool | fromXml (const DtString &) |
| Restores object from given xml string. Returns true if valid. | |
| virtual bool | fromXmlFile (const DtFilename &) |
| Restires object from given xml file. | |
| virtual void | putSelf (DtEnvironmentSP, DtEnvValueSP parent) const |
| virtual void | putData (DtEnvironmentSP, DtEnvValueSP value) const |
| Override to add attributes of actual data. | |
| virtual void | putVariableReference (DtEnvironmentSP, DtEnvValueSP value) const |
| Called when the item is a variable reference. | |
| 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()) |
| Gets data from the environment value. | |
| virtual void | unrecognizedItem (const DtEnvironmentSP env, const DtEnvValueSP root, const SearchPaths &searchPaths, const DtVariableBindingsList &varBindings) |
| Called when the xml reader tries to parse an unknown reader/writer item. Default is a no-op. | |
| virtual void | getVariableReference (DtEnvironmentSP, DtEnvValueSP value) |
| Called when the item is a variable reference. | |
Static Public Member Functions | |
| static DtVrfProcessStateRepository * | creator (const DtString &rwName, DtVrfObject *vrfObject, DtReaderWriterRegistry *parentRegistry) |
| Returns a newly created instance of this class. | |
Static Public Member Functions inherited from DtVrfProcessStateRepository | |
| static DtVrfProcessStateRepositoryFactory * | factory () |
| a DtVrfProcessStateRepositoryFactory is allocated by the DtSimCreator, and this pointer is set. | |
| static void | setFactory (DtVrfProcessStateRepositoryFactory *factory) |
| static void | addVrfProcessStateRepositoryCreatorFcn (const DtString &type, DtVrfProcessStateRepositoryCreatorFcn fcn) |
| static DtVrfProcessStateRepository * | createRepository (const DtString &name, const DtString &type, DtVrfObject *vrfObject, DtReaderWriterRegistry *parentRegistry=0) |
| Creates a new state repository object, using the factory. | |
Static Public Member Functions inherited from DtReaderWriter | |
| static void | putIndent (std::string &fp, int indentLevel) |
| static const DtVariableBindingsList & | nullVariableReference () |
| static void | setPostGetSelfCallback (DtGetSelfCallbackFcn fcn, void *usrData) |
| static void | setPrePutSelfCallback (DtPutSelfCallbackFcn fcn, void *usrData) |
| static void | setPutIndent (bool) |
| static bool | putIndent () |
| static const char * | theXmlType () |
| The type that is used when archiving to an XML stream. | |
| static const DtFilename & | appPath () |
| Gets the current working directory. | |
| static void | setFactoryCreatorFunction (DtReaderWriterFactoryCreatorFcn fcn) |
| Sets the function to create the DtReaderWriterFactory. | |
| static void | createReaderWriterFactory () |
| static void | cleanupFactory () |
| static DtReaderWriter * | createFromXmlFile (const DtFilename &, bool createAsProperty=false) |
| Given a filename, returns a newly created reader/writer object from the object found within. | |
| static DtReaderWriter * | createFromXml (const DtString &, bool createAsProperty=false) |
| Given a xml string, returns a newly created reader/writer object from the object found within. | |
| static DtReaderWriter * | createFromEnvironment (DtEnvironmentSP, bool createAsProperty=false) |
| Given a xml environment, returns a newly created reader/writer object from the object found within. | |
| static DtString | getAttribute (DtEnvironmentSP env, const DtString &name, DtEnvValueSP root) |
| Gets the named attribute from a DtEnvValueSP. | |
Static Public Member Functions inherited from DtObjectDebugger< DtReaderWriter > | |
| static DtObjectCounter::CounterType | ObjectCount () |
| static const DtObjectContainer * | ObjectContainer () |
Protected Attributes | |
| DtRwInt | myCurrentMovementState |
| DtRwBoolean | myUseHighFidelityGroundClamping |
| Used by the rail updater when determining the orientation of the entity on the terrain. | |
| DtRwInt | mySegmentIndex |
| Keep track of which segment we're on. | |
| DtRwReal | myPositionAlongLane |
| The current linear position along the segment in the current lane. | |
| DtRwReal | myLateralOffset |
| The current offset from the current lane centerline. | |
| DtRwReal | myLaneChangeWidth |
| Indicates what the distance is between lane centerlines of the lanes the entity is between in a lane change maneuver. | |
| DtRwInt | myCurrentLanePosition |
| Current lane number. | |
| DtRwInt | myPassingLanePosition |
| Lane number of lane we are moving to. | |
| DtRwBoolean | myTurning |
| Keep track of whether we were in a turn or not. | |
| DtRwBoolean | myAllowPassing |
| Were we passing *** Not used in road movement controller; only in old rail move controller. | |
| DtRwBoolean | myPassing |
| Were we passing *** Not used in road movement controller; only in old rail move controller. | |
| DtRwBoolean | myAvoidingCollision |
| *** Not used in road movement controller; only in old rail move controller. | |
| DtRwBoolean | myNeedToSwitchLanes |
| Keep track if we need to switch lanes. | |
| DtRwBoolean | myConvoyTargetSpecified |
| Quick check to know if we have target to follow. | |
| DtRwVrfObjectReference | myConvoyFollowTarget |
| Keep track of who we're following if anybody. Used for convoys. | |
| DtRwReal | myConvoyFollowDistance |
| Keep track of how far behind convoy target we should follow. | |
| DtRwBoolean | myConvoyUseCatchUpSpeed |
| *** Not used in road movement controller; only in old rail move controller. *** | |
| DtRwReal | myMaxFollowThreshold |
| If entity is following another entity while moving along a rail route, this is the maximum delta they can have off of the follow distance before the rail controller will change the speed. | |
| DtRwReal | mySpeedAlongLane |
| Since kinematics are based on the rail, and not on motion in space, we need speed and acceleration along the lane as state; these are not saved in the entity State Repository. | |
| DtRwReal | myAccelerationAlongLane |
Protected Attributes inherited from DtVrfProcessStateRepository | |
| DtVrfObject * | myVrfObject |
| bool | myLoadedFromMTL |
Protected Attributes inherited from DtReaderWriter | |
| const DtSymbolString | myName |
| DtReaderWriterRegistry | myRegistry |
| DtReaderWriterRegistry * | myParentRegistry |
| bool | myValueSpecified |
| bool | myReadOnlyFlag |
| bool | myIsVariableReference |
| DtSymbolString | myVariableName |
| bool | myVariableIsBound |
| DtReaderWriter * | myDefaultValue |
| aliasContainer | myAliases |
| Container for the aliases which represent alternative names for the object. | |
| bool | myInvalid |
| Set to true if there is a problem reading this item. | |
Additional Inherited Members | |
Public Types inherited from DtReaderWriter | |
| typedef std::vector < DtSymbolString > | aliasContainer |
| typedef std::vector < DtSymbolString >::iterator | aliasIter |
| typedef std::vector < DtSymbolString > ::const_iterator | aliasConstIter |
| typedef std::vector< DtFilename > | SearchPaths |
| typedef std::pair < DtSymbolString, DtString > | DtVariableNameType |
| typedef DtReaderWriterFactory *(* | DtReaderWriterFactoryCreatorFcn )() |
Protected Member Functions inherited from DtVrfProcessStateRepository | |
| DtVrfProcessStateRepository () | |
Static Protected Attributes inherited from DtVrfProcessStateRepository | |
| static DtVrfProcessStateRepositoryFactory * | theFactory |
Instances of DtRailMovementControllerPSR are used to hold the shared/checkpointable data for a rail movement system.
| DtRailMovementControllerPSR::DtRailMovementControllerPSR | ( | DtVrfObject * | vrfObject, |
| const DtString & | rwName = DtString::nullString(), |
||
| DtReaderWriterRegistry * | parentRegistry = 0 |
||
| ) |
constructor
| DtRailMovementControllerPSR::DtRailMovementControllerPSR | ( | const DtRailMovementControllerPSR & | orig, |
| const DtString & | rwName = DtString::nullString(), |
||
| DtReaderWriterRegistry * | parentRegistry = 0 |
||
| ) |
copy constructor
|
virtual |
destructor
| DtRailMovementControllerPSR& DtRailMovementControllerPSR::operator= | ( | const DtRailMovementControllerPSR & | orig | ) |
assignment operator
|
virtual |
returns a newly created copy of this object
Implements DtVrfProcessStateRepository.
|
virtual |
Returns the string type of the repository, as defined in procSRTypes.h.
(DtVrfAutomotiveProcessStateRepositoryType).
Implements DtVrfProcessStateRepository.
|
virtual |
|
virtual |
|
virtual |
When clamping the entity to the ground, using high fidelity ground clamping will cause the entity to use all four support points when determining the plane on which the entity is positioned.
When not using high fidelity, the entity will only use a single support point, the center, to determine the normal. Defaults to true, as that is the safer initial value.
|
virtual |
|
virtual |
resets to -1
|
virtual |
|
virtual |
|
virtual |
|
virtual |
The linear position pf the turn center (rear axle) along the current road segment.
|
virtual |
|
virtual |
The 1-dimensional speed of the entity along the lane.
|
virtual |
|
virtual |
The 1-dimensional acceleration of the entity along the lane.
|
virtual |
|
virtual |
The lateral offset from the current lane's center line.
Positive to the right.
|
virtual |
|
virtual |
Indicates the total distance between lane centerlines of the lane change maneuver being performed.
Set when the lane change is begun.
|
virtual |
|
virtual |
This is the lane we are currently traveling in, or moving to in a lane-change maneuver.
This is a 1-based lane number.
Deprecated:
|
virtual |
|
virtual |
The function to use:
|
virtual |
|
virtual |
This is the lane the entity is going to in a lane-change maneuver.
This is a 1-based lane number. Not used in road movement controller.
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
Was: setConvoyFollowTargetName
|
virtual |
Was: convoyFollowTargetName.
|
virtual |
|
virtual |
|
virtual |
| void DtRailMovementControllerPSR::setConvoyUseCatchUpSpeed | ( | const bool | useCatchUpSpeed | ) |
| const bool DtRailMovementControllerPSR::convoyUseCatchUpSpeed | ( | ) | const |
|
virtual |
|
virtual |
|
static |
Returns a newly created instance of this class.
|
protected |
|
protected |
Used by the rail updater when determining the orientation of the entity on the terrain.
|
protected |
Keep track of which segment we're on.
This index corresponds to the order of rail segments, although the rail segments are not kept in a vector. The index is incremented in parallel with advancing to the next() segment.
|
protected |
The current linear position along the segment in the current lane.
This is the distance along the lane centerline from the start of the entry curve for the lane. This is the position of the turn center (rear axle), not the origin.
|
protected |
Since kinematics are based on the rail, and not on motion in space, we need speed and acceleration along the lane as state; these are not saved in the entity State Repository.
|
protected |
|
protected |
The current offset from the current lane centerline.
Positive is to the right.
|
protected |
Indicates what the distance is between lane centerlines of the lanes the entity is between in a lane change maneuver.
|
protected |
Current lane number.
|
protected |
Lane number of lane we are moving to.
*** Not used in road movement controller; only in old rail move controller. ***
|
protected |
Keep track of whether we were in a turn or not.
*** Not used in road movement controller; only in old rail move controller. ***
|
protected |
Were we passing *** Not used in road movement controller; only in old rail move controller.
|
protected |
Were we passing *** Not used in road movement controller; only in old rail move controller.
|
protected |
*** Not used in road movement controller; only in old rail move controller.
|
protected |
Keep track if we need to switch lanes.
This could be due to an upcoming turn, need to pass someone, user told us to switch. *** Not used in road movement controller; only in old rail move controller. ***
|
protected |
Quick check to know if we have target to follow.
|
protected |
Keep track of who we're following if anybody. Used for convoys.
|
protected |
Keep track of how far behind convoy target we should follow.
|
protected |
*** Not used in road movement controller; only in old rail move controller. ***
|
protected |
If entity is following another entity while moving along a rail route, this is the maximum delta they can have off of the follow distance before the rail controller will change the speed.
This will help prevent jerky following if the target entity's speed is changing only briefly say at a curve if using acceleration. *** Not used in road movement controller; only in old rail move controller. ***