VR-Forces 5.0.3 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
railMovementControllerPSR.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
15 #include "vrfobjcore/simObject.h"
16 #include <readerWriter/rwReal.h>
17 #include <readerWriter/rwInt.h>
18 #include <readerWriter/rwBoolean.h>
19 #include <readerWriter/rwString.h>
20 #include "readerWriter/rwVector.h"
21 #include <vrfutil/rwUUID.h>
22 
25 
33 {
44 };
48 {
49 public:
50 
53  const DtString& rwName = DtString::nullString(),
54  DtReaderWriterRegistry* parentRegistry = 0);
55 
58  const DtString& rwName = DtString::nullString(),
59  DtReaderWriterRegistry* parentRegistry = 0);
60 
62  virtual ~DtRailMovementControllerPSR();
63 
66 
69  const DtString& rwName = DtString::nullString(),
70  DtReaderWriterRegistry* parentRegistry = 0) const;
71 
74  virtual DtString type() const;
75 
76  virtual void setCurrentMovementState(DtRailMovementState state);
77  virtual DtRailMovementState currentMovementState() const;
78 
89  virtual void setUseHighFidelityGroundClamping(bool yesOrNo);
90  virtual bool useHighFidelityGroundClamping() const;
92 
95  virtual void resetSegmentIndex();
96  virtual void incrementSegmentIndex();
97  virtual const int segmentIndex() const;
98  virtual void setSegmentIndex(const int);
100 
104  virtual double positionAlongLane() const;
105  virtual void setPositionAlongLane(const double p);
107 
110  virtual double speedAlongLane() const;
111  virtual void setSpeedAlongLane(const double s);
113 
116  virtual double accelerationAlongLane()const;
117  virtual void setAccelerationAlongLane(const double a);
119 
125  virtual double offsetFromLaneCenterline() const;
126  virtual void setOffsetFromLaneCenterline(const double offset);
127 
131  virtual double laneChangeWidth() const;
132  virtual void setLaneChangeWidth(const double f);
133 
138  virtual void setCurrentLanePosition(const int lane);
139  virtual const int currentLanePosition() const;
140 
142  virtual void setCurrentLaneNumber(const int lane);
143  virtual const int currentLaneNumber() const;
145 
150  virtual void setPassingLanePosition(const int lane);
151 
152  virtual const int passingLanePosition() const;
154 
156  virtual void setTurning(bool turn);
157  virtual bool turning() const;
159 
161  virtual void setAllowPassing(bool canPass);
162  virtual bool allowPassing() const;
164 
166  virtual void setPassing(bool pass);
167  virtual bool passing() const;
169 
171  virtual void setAvoidingCollision(bool avoid);
172  virtual bool avoidingCollision() const;
174 
176  virtual void setNeedSwitchLanes(bool switchLane);
177  virtual bool needSwitchLanes() const;
179 
181  virtual void setConvoyTargetSpecified(bool following);
182  virtual bool convoyTargetSpecified() const;
184 
187  virtual void setConvoyFollowTarget(const DtUUID&);
188 
190  virtual DtSimObjectReference convoyFollowTarget() const;
192 
194  virtual void setConvoyFollowDistance(const double dist);
195  virtual const double convoyFollowDistance() const;
197 
198  void setConvoyUseCatchUpSpeed(const bool useCatchUpSpeed);
199  const bool convoyUseCatchUpSpeed() const;
200 
201 
203  virtual const double maxFollowThreshold() const;
204  virtual void setMaxFollowThreshold(const double threshold);
206 
207 
208 public:
209 
211  static DtVrfProcessStateRepository* creator (const DtString& rwName,
212  DtLocalObject* vrfObject, DtReaderWriterRegistry* parentRegistry);
213 
214 protected:
215 
217 
221 
227 
233 
241 
245 
249 
252 
256 
260 
264 
268 
272 
277 
280 
283 
286 
289 
296 };
297 
298 
UUID is a unique ID wrapper class.
Definition: rwUUID.h:229
DtRailMovementState
Used to keep the current state of an entity as it travels along a route using the rail system...
Definition: railMovementControllerPSR.h:32
DtRwInt myCurrentMovementState
Definition: railMovementControllerPSR.h:216
Definition: railMovementControllerPSR.h:42
DtRwBoolean myTurning
Keep track of whether we were in a turn or not. *** Not used in road movement controller; only in old...
Definition: railMovementControllerPSR.h:259
DtRwBoolean myAllowPassing
Were we passing *** Not used in road movement controller; only in old rail move controller. ***.
Definition: railMovementControllerPSR.h:263
Instances of DtRailMovementControllerPSR are used to hold the shared/checkpointable data for a rail m...
Definition: railMovementControllerPSR.h:47
DtRwSimObjectReference myConvoyFollowTarget
Keep track of who we&#39;re following if anybody. Used for convoys.
Definition: railMovementControllerPSR.h:282
The DtSimObjectReference is a shared pointer that can be used amongst many object for access to the u...
Definition: simObjectReference.h:26
Definition: railMovementControllerPSR.h:41
DtRwInt myPassingLanePosition
Lane number of lane we are moving to. *** Not used in road movement controller; only in old rail move...
Definition: railMovementControllerPSR.h:255
Definition: readerWriterRegistry.h:39
Contains the DtUUID class declaration.
Definition: railMovementControllerPSR.h:37
DtRwBoolean myPassing
Were we passing *** Not used in road movement controller; only in old rail move controller. ***.
Definition: railMovementControllerPSR.h:267
Definition: railMovementControllerPSR.h:36
Definition: railMovementControllerPSR.h:40
Definition: railMovementControllerPSR.h:35
DtRwReal myPositionAlongLane
The current linear position along the segment in the current lane. This is the distance along the lan...
Definition: railMovementControllerPSR.h:232
Specialized reader/writer version of the shared object reference that will encapsulate the actual sha...
Definition: simObjectReference.h:74
DtRwInt mySegmentIndex
Keep track of which segment we&#39;re on. This index corresponds to the order of rail segments...
Definition: railMovementControllerPSR.h:226
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
DtRwReal mySpeedAlongLane
Since kinematics are based on the rail, and not on motion in space, we need speed and acceleration al...
Definition: railMovementControllerPSR.h:238
DtRwReal myConvoyFollowDistance
Keep track of how far behind convoy target we should follow.
Definition: railMovementControllerPSR.h:285
Description: Readable, Writable int.
Definition: rwInt.h:25
virtual DtVrfProcessStateRepository * clone(const DtString &rwName=DtString::nullString(), DtReaderWriterRegistry *parentRegistry=0) const =0
DtRwBoolean myConvoyTargetSpecified
Quick check to know if we have target to follow.
Definition: railMovementControllerPSR.h:279
DtRwBoolean myNeedToSwitchLanes
Keep track if we need to switch lanes. This could be due to an upcoming turn, need to pass someone...
Definition: railMovementControllerPSR.h:276
DtRwBoolean myUseHighFidelityGroundClamping
Used by the rail updater when determining the orientation of the entity on the terrain.
Definition: railMovementControllerPSR.h:220
Description: Readable, Writable DtReal (double)
Definition: rwReal.h:27
Class DtVrfProcessStateRepository: Abstract base class for all process state repositories. Process state repositories represent (potentially) shared, savable information for one or more components functioning together to achieve some process or set of processes; such as aiming and firing a weapon; moving an object; or just waiting a specified amount of time.
Definition: vrfProcessStateRepository.h:45
Description: Readable, Writable bool.
Definition: rwBoolean.h:26
DtRwBoolean myAvoidingCollision
*** Not used in road movement controller; only in old rail move controller. ***
Definition: railMovementControllerPSR.h:271
Definition: railMovementControllerPSR.h:43
DtRwInt myCurrentLanePosition
Current lane number.
Definition: railMovementControllerPSR.h:251
DtRwBoolean myConvoyUseCatchUpSpeed
*** Not used in road movement controller; only in old rail move controller. ***
Definition: railMovementControllerPSR.h:288
DtRwReal myMaxFollowThreshold
If entity is following another entity while moving along a rail route, this is the maximum delta they...
Definition: railMovementControllerPSR.h:295
Definition: railMovementControllerPSR.h:39
DtRwReal myLateralOffset
The current offset from the current lane centerline. Positive is to the right.
Definition: railMovementControllerPSR.h:244
DtRwReal myLaneChangeWidth
Indicates what the distance is between lane centerlines of the lanes the entity is between in a lane ...
Definition: railMovementControllerPSR.h:248
Definition: railMovementControllerPSR.h:38
DtRwReal myAccelerationAlongLane
Since kinematics are based on the rail, and not on motion in space, we need speed and acceleration al...
Definition: railMovementControllerPSR.h:239
virtual DtString type() const =0
Returns the string type of the repository, as defined in procSRTypes.h.
voidpf uLong offset
Definition: ioapi.h:42
Definition: railMovementControllerPSR.h:34
File: rwVector.h.
const DtVrfProcessStateRepository & operator=(const DtVrfProcessStateRepository &orig)
A locally simulated VRF object. Holds all internal and external data for the object, and provides access to both the current frame and next frame state data for the object. All current frame data is read-only, and next-frame data can be written to. No thread safety guarantees are made on this object during the simulation frame and it should only be accessed by the thread that is simulating the object.
Definition: localObject.h:86

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)