VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfMovingObjectStateRepository.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
9 #pragma once
10 
12 
15 
27 {
28 public:
29 
32  const DtObjectType& objectType, DtVrfObjectParameters* parameters,
33  const DtString& rwName = DtString::nullString(), DtReaderWriterRegistry* parentRegistry = 0);
34 
37  const DtString& rwName = DtString::nullString(), DtReaderWriterRegistry* parentRegistry = 0);
38 
41 
44 
45  static DtVrfObjectStateRepository* creator(const DtString& name,
46  DtVrfObject* vrfObject, const DtObjectType& objectType,
47  DtVrfObjectParameters* parameters, DtReaderWriterRegistry* parentRegistry);
48 
50  isVrfMovingObjectStateRepository(DtSimObjectStateRepository* repository);
51 
53  isVrfMovingObjectStateRepository(const DtSimObjectStateRepository* repository);
54 
56  virtual void tick();
57 
59  virtual DtSimObjectStateRepository* clone(const DtString& rwName = DtString::nullString(),
60  DtReaderWriterRegistry* parentRegistry = 0) const;
61 
62  virtual DtString type() const;
63 
65  virtual const int vrfObjectStateRepositorySubType() const;
66 
68  virtual const int vrfMovingObjectStateRepositorySubType() const;
69 
70  virtual bool createParameters();
71  virtual void initializeFromParameters();
72 
75  virtual void addRangeItem(const DtRangeItem&);
76  virtual void setRangeItems(const DtRangeItems&);
77  virtual void removeRangeItem(int index);
78 
80  virtual void updateMaximumSensorRangeRing();
81  virtual const DtMovingObjectParameters* movingObjectParameters() const;
82 
83  virtual bool canPivot() const;
84  virtual void setCanPivot (const bool canPivot);
85 
86  virtual DtReal maxPivotSpeed() const;
87  virtual void setMaxPivotSpeed (DtReal maxPivotSpeed);
88 
90  virtual const DtGroundInteractionPt* rightSupport() const;
91  virtual DtGroundInteractionPt* rightSupport();
92  virtual void setRightSupport(const DtVector& vec);
93 
94  virtual const DtGroundInteractionPt* leftSupport() const;
95  virtual DtGroundInteractionPt* leftSupport();
96  virtual void setLeftSupport(const DtVector& vec);
97 
98  virtual const DtGroundInteractionPt* otherSupport() const;
99  virtual DtGroundInteractionPt* otherSupport();
100  virtual void setOtherSupport(const DtVector& vec);
101 
102  virtual DtReal maxSpeed() const;
103  virtual void setMaxSpeed(const DtReal speed);
104 
105  virtual DtReal maxReverseSpeed() const;
106  virtual void setMaxReverseSpeed(const DtReal speed);
107 
108  virtual DtReal turningRadius() const;
109  virtual void setTurningRadius(const DtReal turningRadius);
110 
111  virtual DtReal maxSlope() const;
112  virtual void setMaxSlope(const DtReal slope);
113 
114 
117 
118  virtual DtReal orderedSpeed() const;
119  virtual void setOrderedSpeed(const DtReal speed);
121 
123  virtual DtReal orderedSpeedConstrained() const;
124 
128  virtual DtReal maneuverAggressiveness() const;
129  virtual void setManeuverAggressiveness(const DtReal fraction);
131 
135  virtual void setCurrentPitch(double);
136  virtual double currentPitch() const;
137 
140  virtual DtReal orderedAltitude() const;
141  virtual bool orderedAltitudepecified() const;
142  virtual void setOrderedAltitude(DtReal orderedAltitude);
143  virtual void setOrderedAltitudeSpecified(bool);
144 
145  virtual DtReal maxAcceleration() const;
146  virtual void setMaxAcceleration(const DtReal maxAcceleration);
147 
148  virtual DtReal maxStoppingDeceleration() const;
149  virtual void setMaxStoppingDeceleration(const DtReal maxStoppingDeceleration);
150 
153  virtual DtReal maxLateralAcceleration() const;
154  virtual void setMaxLateralAcceleration(const DtReal maxLateralAcceleration);
155 
156  virtual DtReal fuelEfficiency() const;
157  virtual void setFuelEfficiency(const DtReal fuelEfficiency);
158 
160  virtual DtReal inverseStoppingDeceleration() const;
161 
164  virtual bool haveSupplies() const;
165  virtual void setHaveSupplies(const bool doHave);
167 
171  virtual double nextSupplyCheckTime() const;
172  virtual void setNextSupplyCheckTime(const double time);
174 
175  virtual bool forward() const;
176  virtual void setForward(const bool forward);
177 
179  virtual bool amClampedToGround() const;
180  virtual void setAmClampedToGround(const bool clamp);
181 
183  virtual void reclampToGround();
184 
188  virtual bool usingRailMovement() const;
189  virtual void setUsingRailMovement(const bool rails);
190 
201  virtual void clampToGround(const DtVector& location, const DtReal heading,
202  bool* dataAvailable = 0, bool requireAllData = false);
203 
214  virtual void clampToGround(const DtVector& location, const DtReal heading,
215  bool gravityAligned, bool* dataAvailable = 0,
216  bool requireAllData = false);
217 
222  virtual void updateSupportPoints(const DtVector& newPosition,
223  const DtReal newHeading);
224 
226  virtual DtVector parentPosition();
227 
237  virtual void place(const DtVector& location, bool* dataAvailable = 0,
238  bool requireAllData = false);
239 
249  virtual void place(const DtReal heading, bool* dataAvailable = 0,
250  bool requireAllData = false);
251 
264  virtual void place(const DtVector& location, const DtReal heading,
265  bool clampToGroundFlag = true, bool* dataAvailable = 0,
266  bool requireAllData = false);
267 
269  virtual void placeAtAltitude(const DtVector& location, const DtReal heading);
270 
273  virtual void setDIGuyCharacterState(DtRwDIGuyCharacterState * info);
274  virtual DtRwDIGuyCharacterState * diGuyCharacterState();
275 
280 
281  virtual void setDIGuyCharacter(const DtString & animation);
282  virtual const DtString & dIGuyCharacter() const;
284 
286 
287  virtual void setDIGuyAnimation(const DtString & animation);
288  virtual const DtString & dIGuyAnimation() const;
290 
292 
293  virtual void setDIGuyUsingAnimationOffset(bool usingOffset);
294  virtual bool dIGuyUsingAnimationOffset() const;
296 
301 
302  virtual void setDIGuyAnimationOffset(const DtVector& offset);
303  virtual const DtVector& dIGuyAnimationOffset() const;
305 
307 
308  virtual void setDIGuyBodyWeight(double w);
309  virtual double dIGuyBodyWeight() const;
311 
313 
314  virtual void setDIGuyAppearance(const DtString & app);
315  virtual const DtString& dIGuyAppearance() const;
317 
319  virtual const DtRwNLengthStringVector& randomAppearancesList() const;
320 
322 
323  virtual void setDIGuyHandItem(const DtString & app);
324  virtual const DtString& dIGuyHandItem() const;
326 
328 
329  virtual void setDIGuyHead(const DtString & app);
330  virtual const DtString& dIGuyHead() const;
332 
334 
335  virtual void addCurrentPitchCallback(DtVrfObjectCallbackList::DtCallbackFunctionType fcn, void* usr);
336  virtual void removeCurrentPitchCallback(DtVrfObjectCallbackList::DtCallbackFunctionType fcn, void* usr);
337  virtual void invokeCurrentPitchCallbacks();
339 
340 protected:
341  virtual void getSelf(DtlObjPtr args, const DtReaderWriter::SearchPaths& searchPaths,
342  const DtVariableBindingsList& variableBindings);
343 
345  virtual void determineDiGuyAppearance();
346 
348  virtual void determineVisualMarkingAppearance();
349 
351  virtual DtRwDIGuyCharacterState* createDIGuyCharacterState();
352 
353 protected:
356 
360 
378 
381 
384 
388 
391 
394 
397 
402 
405 };
406 
Instances of DtVrfObjectParameters are the readable/writeable objects that contain the information ne...
Definition: vrfObjectParameters.h:59
DtRwReal myMaxAcceleration
Definition: vrfMovingObjectStateRepository.h:369
DtVrfObject is used to represent any type of simulated object (entities, aggregate, control objects) in a VR-Forces application.
Definition: vrfObject.h:215
DtRwBoolean myUsingRailMovement
If true keeps the entity clamped to the route segment it is on, no steering just follows the segment...
Definition: vrfMovingObjectStateRepository.h:376
DtRwReal myTurningRadius
Definition: vrfMovingObjectStateRepository.h:366
DtGroundInteractionPt myOtherSupport
Definition: vrfMovingObjectStateRepository.h:359
Description: This repository holds all information that is common to all the forms of all objects wit...
Definition: vrfMovingObjectStateRepository.h:26
DtRwBoolean myCanPivot
Definition: vrfMovingObjectStateRepository.h:373
DtRwNLengthStringVector is a named, readable/writable vector of strings of arbitrary length...
Definition: rwNLengthStringVector.h:28
DtRwReal myMaxSlope
Definition: vrfMovingObjectStateRepository.h:367
DtReal myInverseStoppingDeceleration
Derived quantity (1/myMaxStoppingDeceleration) - no need to make it read-write.
Definition: vrfMovingObjectStateRepository.h:387
DtRwReal myMaxReverseSpeed
Definition: vrfMovingObjectStateRepository.h:365
DtRwBoolean myForward
Definition: vrfMovingObjectStateRepository.h:368
DtRwBoolean myPitchSet
Records if the pitch has been set by the user to respect when clamping to ground or setting at altitu...
Definition: vrfMovingObjectStateRepository.h:393
virtual void getSelf(DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths, const DtVariableBindingsList &variableBindings)
Override getSelf to handle mapping of old pre-2.0 oob files.
*virtual const DtObjectType & objectType() const
The DtSimObjectStateRepository is an abstract base class (ABC) for all state repositories.
Definition: simObjectStateRepository.h:46
virtual void removeRangeItem(int index)
Definition: readerWriterRegistry.h:39
Description: This repository holds all information that is common to all the forms of all entity/aggr...
Definition: vrfObjectStateRepository.h:87
DtRwReal myOrderedAltitude
Definition: vrfMovingObjectStateRepository.h:363
DtRwReal myMaxLateralAcceleration
Definition: vrfMovingObjectStateRepository.h:371
DtRwBoolean myKeepGroundClampingFlag
Records whether we should keep ground clamping b/c not all terrain was loaded.
Definition: vrfMovingObjectStateRepository.h:390
Definition: objectType.h:27
DtString myDIGuyCharacter
Stores the character type string for remote entities.
Definition: vrfMovingObjectStateRepository.h:383
static DtVrfObjectStateRepository * creator(const DtString &name, DtVrfObject *simObject, const DtObjectType &objectType, DtVrfObjectParameters *parameters, DtReaderWriterRegistry *parentRegistry)
DtRwReal myManeuverAggressiveness
Definition: vrfMovingObjectStateRepository.h:362
DtGroundInteractionPt myLeftSupport
Definition: vrfMovingObjectStateRepository.h:357
DtRwDIGuyCharacterState * myDIGuyCharacterState
DI-Guy state for the entity.
Definition: vrfMovingObjectStateRepository.h:380
virtual bool createParameters()
Definition: rangeItem.h:81
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
std::list< const DtRwVariableBindings * > DtVariableBindingsList
Definition: readerWriterRegistry.h:29
virtual DtSimObjectStateRepository * clone(const DtString &rwName=DtString::nullString(), DtReaderWriterRegistry *parentRegistry=0) const
Clone.
virtual void updateSupportPoints(const DtVector &newPosition, const DtReal newHeading)
reading in a scenario, want to make sure the support points get set up properly.
std::vector< DtFilename > SearchPaths
Definition: readerWriter.h:92
DtRwReal myMaxSpeed
Definition: vrfMovingObjectStateRepository.h:364
The moving-object-param parameter type is used for objects that are capable of movement, such as individual entities and aggregates.
Definition: movingObjectParameters.h:33
DtRwReal myNextSupplyCheckTime
Records the next time that supplies should be checked (in general, this isn&#39;t done every tick...
Definition: vrfMovingObjectStateRepository.h:401
virtual void tick()
This method is called each simulation frame, and may include any processing that needs to be done on ...
DtVrfObjectCallbackList myCurrentPitchCallbacks
List of callbacks for when this entity sets current pitch.
Definition: vrfMovingObjectStateRepository.h:404
Definition: rangeItem.h:136
DtRwBoolean myHaveSupplies
Records whether the entity has appropriate supplies to keep it moving.
Definition: vrfMovingObjectStateRepository.h:396
virtual const int vrfObjectStateRepositorySubType() const
Returns DtVrfObjectStateRepositorySubTypeBase.
Description: Readable, Writable DtReal (double)
Definition: rwReal.h:27
DtRwReal myFuelEfficiency
Definition: vrfMovingObjectStateRepository.h:372
Description: Readable, Writable bool.
Definition: rwBoolean.h:26
Class Invariant: The DtGroundInteractionPt class must always have a valid DtAttachedTerrain or DtSimM...
Definition: groundInteractionPt.h:28
DtRwReal myOrderedSpeed
Definition: vrfMovingObjectStateRepository.h:361
DtRwReal myMaxStoppingDeceleration
Definition: vrfMovingObjectStateRepository.h:370
const DtVrfObjectStateRepository & operator=(const DtVrfObjectStateRepository &orig)
Assignment Operator.
void(* DtCallbackFunctionType)(const DtVrfObject *, void *)
The function signature of the callback function.
Definition: noArgumentCallbackList.h:95
virtual void initializeFromParameters()
The DtRwDIGuyCharacterState class is a readable/writable class that can store itself and read itself ...
Definition: rwDIGuyCharacterState.h:30
virtual DtString type() const
returns DtSimObjectStateRepositoryType
virtual void reclampToGround()
Will cause the object to be replaced at it&#39;s current position and clamped to the terrain.
voidpf uLong offset
Definition: ioapi.h:42
DtGroundInteractionPt myRightSupport
Definition: vrfMovingObjectStateRepository.h:358
virtual void addRangeItem(const DtRangeItem &)
Adds, removes and returns items in the range item list.
virtual void place(const DtVector &location, bool *dataAvailable=0, bool requireAllData=false)
Place entity at &#39;location&#39;, on the ground, keeping its current heading.
DtRwBoolean myClampToGround
Definition: vrfMovingObjectStateRepository.h:374
virtual void setRangeItems(const DtRangeItems &)
DtRwReal myMaxPivotSpeed
Definition: vrfMovingObjectStateRepository.h:377

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)