VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
surfaceMovementPSR.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
9 #pragma once
10 
13 #include <readerWriter/rwString.h>
14 #include <readerWriter/rwBoolean.h>
15 #include "readerWriter/rwVector.h"
17 #include <readerWriter/rwInt.h>
18 #include <readerWriter/rwReal.h>
19 #include <vrfutil/rwUUID.h>
20 
23 typedef enum
24 {
29 
30 typedef enum
31 {
35 
36 typedef enum
37 {
42 
43 typedef enum
44 {
49 
54 
56 
59 {
60 public:
61 
64  const DtString& rwName = DtString::nullString(),
65  DtReaderWriterRegistry* parentRegistry = 0);
66 
69  const DtString& rwName = DtString::nullString(),
70  DtReaderWriterRegistry* parentRegistry = 0);
71 
73  virtual ~DtSurfaceMovementPSR();
74 
77 
80  const DtString& rwName = DtString::nullString(),
81  DtReaderWriterRegistry* parentRegistry = 0) const;
82 
85  virtual DtString type() const;
86 
90  virtual double forwardSpeed(){return myForwardSpeed;}
91  virtual void setForwardSpeed(const double speed){myForwardSpeed = speed;}
92 
93  virtual double forwardAcceleration(){return myForwardAcceleration;}
94  virtual void setForwardAcceleration(const double acceleration)
95  {
96  myForwardAcceleration = acceleration;
97  }
98 
99  virtual double clampSpeed(){return myClampSpeed;}
100  virtual void setClampSpeed(const double speed){myClampSpeed = speed;}
101 
102  virtual double clampHeading(){return myClampHeading;}
103  virtual void setClampHeading(const double clampHeading)
104  {myClampHeading = clampHeading;}
105 
106  virtual double altitudeChangeRate(){return myAltitudeChangeRate;}
107  virtual void setAltitudeChangeRate(const double altitudeRate)
108  {
109  myAltitudeChangeRate = altitudeRate;
110  }
111 
112  virtual double clampAltitude(){return myClampAltitude;}
113  virtual void setClampAltitude(const double altitude)
114  {
115  myClampAltitude = altitude;
116  }
118 
123  virtual bool hasFuel() const {return myHasFuel;}
124  virtual void setHasFuel(const bool hasFuel)
125  {
126  myHasFuel = hasFuel;
127  }
128 
129  virtual bool isAground() const {return myIsAground;}
130  virtual void setIsAground(bool isAground)
131  {
132  myIsAground = isAground;
133  }
135 
139  virtual double goalDepth(){return myGoalDepth;}
140  virtual void setGoalDepth(const double depth)
141  {myGoalDepth = depth;}
142 
143  virtual double desiredDepthRate(){return myDesiredDepthRate;}
144  virtual void setDesiredDepthRate(const double rate)
145  {myDesiredDepthRate = rate;}
146 
147  virtual bool isTurnContinuous(){return myIsTurnContinuous;}
148  virtual void setIsTurnContinuous(const bool isContinous)
149  { myIsTurnContinuous = isContinous;}
150 
151  virtual double goalHeading(){return myGoalHeading;}
152  virtual void setGoalHeading(const double goalHeading);
153 
154  virtual bool isUsingConstantDiameter(){return myIsUsingConstantDiameter;}
155  virtual void setIsUsingConstantDiameter(const bool usingDiameter)
156  { myIsUsingConstantDiameter = usingDiameter;}
157 
158  virtual bool isTurningRight(){return myIsTurningRight;}
159  virtual void setIsTurningRight(const bool isContinous)
160  { myIsTurningRight = isContinous;}
161 
162  virtual double desiredTurnDiameter(){return myDesiredTurnDiameter;}
163  virtual void setDesiredTurnDiameter(const double desiredTurnDiameter);
164 
165  virtual double desiredTurnRate(){return myDesiredTurnRate;}
166  virtual void setDesiredTurnRate(const double desiredTurnRate);
167 
168  virtual bool turnTaskIsControllingSpeed() const;
169  virtual void setTurnTaskIsControllingSpeed(const bool isControlling);
170 
174  virtual void setControlObject(const DtUUID&);
175 
177  virtual const DtRwVrfObjectReference& controlObject() const;
178  virtual DtRwVrfObjectReference& controlObject();
180 
184  virtual void setRoute(const DtUUID&);
185 
187  virtual const DtRwVrfObjectReference& route() const;
188  virtual DtRwVrfObjectReference& route();
190 
195  virtual void setRouteVertices(const DtLocalVectorIterator& routeIterator);
196  virtual const DtLocalVertexList& routeVertices() const;
197 
199  virtual void emptyRouteVertices();
200 
204  virtual DtLocalVectorIterator* routeState() const;
206 
209  virtual DtReal startTurnDistance2(){return myStartTurnDistance2;}
210  virtual void setStartTurnDistance2(const DtReal distance)
211  { myStartTurnDistance2 = distance;}
213 
216  virtual int prevRoutePointIndex(){return myPrevVertex;}
217  virtual void setPrevRoutPointIndex(const int index);
218  virtual int nextRoutePointIndex(){return myNextVertex;}
219  virtual void setNextRoutePointIndex(const int index);
220  virtual void setCurrentRoutePointIndex(const int index);
222 
225  virtual DtRwInt& currentVertex();
226  virtual const DtRwInt& currentVertex() const;
227 
228  virtual DtRwInt& nextVertex();
229  virtual const DtRwInt& nextVertex() const;
230 
231  virtual DtRwInt& previousVertex();
232  virtual const DtRwInt& previousVertex() const;
234 
237  virtual void setReverseFlag(bool flag);
238  virtual bool reverseFlag() const;
239 
241  virtual void setFirstWaypoint(const DtUUID&);
242  virtual const DtRwVrfObjectReference& firstWaypoint() const;
243  virtual DtRwVrfObjectReference& firstWaypoint();
244 
246  virtual void setSecondWaypoint(const DtUUID&);
247  virtual const DtRwVrfObjectReference& secondWaypoint() const;
248  virtual DtRwVrfObjectReference& secondWaypoint();
249 
251  virtual void setEntityToFollow(const DtUUID&);
252  virtual const DtRwVrfObjectReference& entityToFollow() const;
253  virtual DtRwVrfObjectReference& entityToFollow();
254 
257  virtual void setFollowOffsetVector(const DtVector& offset);
258  virtual const DtVector& followOffsetVector() const;
259 
261  virtual void setWaitUntilOrderedSpeedMetToStopTask(bool);
262  virtual bool waitUntilOrderedSpeedMetToStopTask();
263 
266  virtual void setGeodeticAimingPoint(const DtVector& pnt);
267  virtual const DtVector geodeticAimingPoint() const;
268 
274  virtual void setGoalVector(const DtVector &goalVector);
275  virtual const DtVector& goalVector() const;
276 
279  virtual void setContinueAtGoal(const bool cont);
280  virtual bool continueAtGoal(void) const;
282 
283  virtual void setIsEmergencyStop(const bool isEmergency);
284  virtual bool isEmergencyStop(void)const;
285 
286  virtual void setIsDriftStop(const bool isDriftStop);
287  virtual bool isDriftStop(void) const;
288 
290  virtual void putSelf(std::string& fp, int indentLevel = 0,
291  bool writeUnspecified = false, const DtFilename& path = DtReaderWriter::appPath());
292 
297  virtual DtReal maxYawRate() const;
298  virtual void setMaxYawRate (DtReal maxYawRate);
299 
301  virtual DtReal maxYawAcceleration() const;
302  virtual void setMaxYawAcceleration(DtReal maxYawAcceleration);
303 
305  virtual double stoppingSpeed() const;
306  virtual void setStoppingSpeed(DtReal stoppingSpeed);
307 
309 
310 
311 public:
312 
314  static DtVrfProcessStateRepository* creator (const DtString& rwName,
315  DtVrfObject* vrfObject, DtReaderWriterRegistry* parentRegistry);
316 
317 protected:
318 
339 
344 
356 
357 
358 
365 
369 
396 
413 
421 
442 
449 
455 
464 
475 
481 
489 
492 
496 };
UUID is a unique ID wrapper class.
Definition: rwUUID.h:222
virtual double desiredTurnRate()
Definition: surfaceMovementPSR.h:165
DtRwVector myGeodeticAimingPoint
For Surface Entity Move To Location controller.
Definition: surfaceMovementPSR.h:403
DtRwReal myGoalDepth
This is used by subsurface depth controller.
Definition: surfaceMovementPSR.h:364
DtRwBoolean myContinueAtGoal
Indicates that the entity should continue at speed after hitting the destination location.
Definition: surfaceMovementPSR.h:411
DtRwVrfObjectReference myEntityToFollow
For follow control.
Definition: surfaceMovementPSR.h:470
DtRwReal myForwardAcceleration
Definition: surfaceMovementPSR.h:336
virtual double clampHeading()
Definition: surfaceMovementPSR.h:102
DtRwInt myNextVertex
Definition: surfaceMovementPSR.h:439
DtTurnMoveTypeEnum
These enumerations must match the int values that come back from the GUI in the task message...
Definition: surfaceMovementPSR.h:23
DtVrfObject is used to represent any type of simulated object (entities, aggregate, control objects) in a VR-Forces application.
Definition: vrfObject.h:215
DtLocalVertexList myVertices
my copy of the current route
Definition: surfaceMovementPSR.h:432
Definition: surfaceMovementPSR.h:39
DtRwReal myStartTurnDistance2
The distance (squared) before the next point that the ship has to start heading for the following poi...
Definition: surfaceMovementPSR.h:447
virtual void setStartTurnDistance2(const DtReal distance)
Definition: surfaceMovementPSR.h:210
virtual double desiredTurnDiameter()
Definition: surfaceMovementPSR.h:162
Definition: surfaceMovementPSR.h:58
File: lclVecIter.h.
Definition: localVectorIterator.h:25
virtual void setIsUsingConstantDiameter(const bool usingDiameter)
Definition: surfaceMovementPSR.h:155
DtStopModeTypeEnum
Definition: surfaceMovementPSR.h:43
Definition: surfaceMovementPSR.h:25
DtRwReal myForwardSpeed
Used in the actuator DtSufaceEntitySimpleActuator.
Definition: surfaceMovementPSR.h:335
virtual DtReal startTurnDistance2()
Accessors for start-turn-distance squared (see description below).
Definition: surfaceMovementPSR.h:209
Definition: surfaceMovementPSR.h:26
Definition: readerWriterRegistry.h:39
virtual void setIsAground(bool isAground)
Definition: surfaceMovementPSR.h:130
DtRwReal myAltitudeChangeRate
For the subsurface depth actuator:
Definition: surfaceMovementPSR.h:341
DtRwBoolean myWaitUntilOrderedSpeedMetToStopTask
Whether or not to wait until the ordered speed has been met to stop the task.
Definition: surfaceMovementPSR.h:394
DtRwVrfObjectReference myFirstWaypoint
For patrol-between control.
Definition: surfaceMovementPSR.h:461
virtual double goalDepth()
Access functions for state variables describing the various movement tasks.
Definition: surfaceMovementPSR.h:139
virtual void setHasFuel(const bool hasFuel)
Definition: surfaceMovementPSR.h:124
virtual double clampSpeed()
Definition: surfaceMovementPSR.h:99
virtual void setIsTurningRight(const bool isContinous)
Definition: surfaceMovementPSR.h:159
Definition: surfaceMovementPSR.h:45
DtRwBoolean myHasFuel
Actuator status information.
Definition: surfaceMovementPSR.h:352
DtRwVector myFollowOffsetVector
Following offset vector (in body coordinates of entity to follow, in meters).
Definition: surfaceMovementPSR.h:473
virtual double forwardAcceleration()
Definition: surfaceMovementPSR.h:93
virtual double clampAltitude()
Definition: surfaceMovementPSR.h:112
virtual double forwardSpeed()
These accessors return the values that the actuator caches between ticks for kinematic values...
Definition: surfaceMovementPSR.h:90
Definition: rwVector.h:23
virtual void setDesiredDepthRate(const double rate)
Definition: surfaceMovementPSR.h:144
DtRwInt myCurrentVertex
Read/write variables to capture route state.
Definition: surfaceMovementPSR.h:438
virtual void setClampSpeed(const double speed)
Definition: surfaceMovementPSR.h:100
Definition: surfaceMovementPSR.h:46
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
DT_DLL_VRVCORE double distance(const makVrv::DtCoordinateSystem &, const DtVector &from, const DtVector &to)
Returns the distance from the two points.
virtual void setClampHeading(const double clampHeading)
Definition: surfaceMovementPSR.h:103
DtRwVrfObjectReference myControlObject
For move-to [waypoint] control.
Definition: surfaceMovementPSR.h:419
Definition: surfaceMovementPSR.h:47
virtual void setAltitudeChangeRate(const double altitudeRate)
Definition: surfaceMovementPSR.h:107
DtRwReal myClampAltitude
Definition: surfaceMovementPSR.h:342
Description: Readable, Writable int.
Definition: rwInt.h:25
DtRwBoolean myReverseFlag
For patrol-route control.
Definition: surfaceMovementPSR.h:454
virtual DtVrfProcessStateRepository * clone(const DtString &rwName=DtString::nullString(), DtReaderWriterRegistry *parentRegistry=0) const =0
DtRwBoolean myIsEmergencyStop
For stop task.
Definition: surfaceMovementPSR.h:478
DtRwBoolean myIsDriftStop
Definition: surfaceMovementPSR.h:479
DtRwReal myMaxYawAcceleration
Max yaw rate acceleration– used only in DtSurfaceEntityActuator.
Definition: surfaceMovementPSR.h:494
virtual bool isTurnContinuous()
Definition: surfaceMovementPSR.h:147
DtRwReal myDesiredTurnDiameter
Definition: surfaceMovementPSR.h:382
Definition: surfaceMovementPSR.h:40
virtual bool isTurningRight()
Definition: surfaceMovementPSR.h:158
DtRwReal myClampSpeed
Definition: surfaceMovementPSR.h:337
DtRwReal myDesiredTurnRate
Positive if turning right, negative if left. Rad/sec.
Definition: surfaceMovementPSR.h:384
virtual void setIsTurnContinuous(const bool isContinous)
Definition: surfaceMovementPSR.h:148
virtual double altitudeChangeRate()
Definition: surfaceMovementPSR.h:106
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.
DtRwReal myDesiredDepthRate
The desired depth change rate. This is always positive.
Definition: surfaceMovementPSR.h:367
DtRwReal myClampHeading
Definition: surfaceMovementPSR.h:338
Description: Readable, Writable DtReal (double)
Definition: rwReal.h:27
DtRwBoolean myIsTurnContinuous
For turn-move:
Definition: surfaceMovementPSR.h:375
Class used as the reader/writer implementation of the DtVrfObjectReference.
Definition: vrfObjectReference.h:204
Definition: surfaceMovementPSR.h:27
virtual void setGoalDepth(const double depth)
Definition: surfaceMovementPSR.h:140
DtLocalVectorIterator * myRouteState
Route state used to get info about the current route we&#39;re trying to follow (e.g. ...
Definition: surfaceMovementPSR.h:430
Class DtVrfProcessStateRepository: Abstract base class for all process state repositories.
Definition: vrfProcessStateRepository.h:43
Description: Readable, Writable bool.
Definition: rwBoolean.h:26
virtual int nextRoutePointIndex()
Definition: surfaceMovementPSR.h:218
DtRwVrfObjectReference myRoute
For move-along [route] control.
Definition: surfaceMovementPSR.h:427
virtual bool isAground() const
Definition: surfaceMovementPSR.h:129
virtual void setForwardAcceleration(const double acceleration)
Definition: surfaceMovementPSR.h:94
virtual bool isUsingConstantDiameter()
Definition: surfaceMovementPSR.h:154
virtual int prevRoutePointIndex()
Accessors for next- and prev-route-point index.
Definition: surfaceMovementPSR.h:216
DtRwBoolean myTurnTaskControllingSpeed
True when the task is run; stays true until another movement task runs.
Definition: surfaceMovementPSR.h:388
virtual void setClampAltitude(const double altitude)
Definition: surfaceMovementPSR.h:113
DtRwInt myPrevVertex
Definition: surfaceMovementPSR.h:440
virtual bool hasFuel() const
Accessors for actuator status info.
Definition: surfaceMovementPSR.h:123
virtual double goalHeading()
Definition: surfaceMovementPSR.h:151
Definition: surfaceMovementPSR.h:32
DtRwReal myMaxYawRate
Max yaw rate– used only in DtSurfaceEntityActuator.
Definition: surfaceMovementPSR.h:491
DtRwBoolean myIsUsingConstantDiameter
If turn rate is set with diameter, then each tick the radians/secc turn rate for the output port has ...
Definition: surfaceMovementPSR.h:379
virtual DtString type() const =0
Returns the string type of the repository, as defined in procSRTypes.h.
DtRwBoolean myIsTurningRight
If turning on a diameter, this flag indicates which way:
Definition: surfaceMovementPSR.h:381
DtTurnRateTypeEnum
Definition: surfaceMovementPSR.h:30
virtual void setForwardSpeed(const double speed)
Definition: surfaceMovementPSR.h:91
DtRwReal myGoalHeading
Definition: surfaceMovementPSR.h:376
voidpf uLong offset
Definition: ioapi.h:42
class DtLocalVertexList:
Definition: localVertexList.h:20
DtRwVector myGoalVector
The vector from the aiming point (goal) to the start point of the move.
Definition: surfaceMovementPSR.h:408
DtTurnDirectionTypeEnum
Definition: surfaceMovementPSR.h:36
virtual double desiredDepthRate()
Definition: surfaceMovementPSR.h:143
DtRwReal myStoppingSpeed
Other variables: not used in the above controllers or actuators.
Definition: surfaceMovementPSR.h:488
DtRwBoolean myIsAground
Set by the actuator when it detects that the entity is aground.
Definition: surfaceMovementPSR.h:354
File: rwVector.h.
static const DtFilename & appPath()
Gets the current working directory.
Definition: surfaceMovementPSR.h:38
const DtVrfProcessStateRepository & operator=(const DtVrfProcessStateRepository &orig)
DtRwVrfObjectReference mySecondWaypoint
Definition: surfaceMovementPSR.h:462
Definition: surfaceMovementPSR.h:33

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)