VR-Forces 4.10 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) 2021 MAK Technologies, Inc.
3  * All rights reserved.
4  ****************************************************************************/
5 
9 
10 #pragma once
11 
15 
18 
30 {
31 public:
32 
34  static DtVrfObjectStateRepository* creator( const DtString& name, DtVrfObject* vrfObject,
35  const DtObjectType& objectType, DtVrfObjectParameters* parameters,
36  DtReaderWriterRegistry* parentRegistry );
37 
39  virtual DtSimObjectStateRepository* clone( const DtString& rwName = DtString::nullString(),
40  DtReaderWriterRegistry* parentRegistry = 0 ) const;
41 
44  const DtObjectType& objectType, DtVrfObjectParameters* parameters,
45  const DtString& rwName = DtString::nullString(), DtReaderWriterRegistry* parentRegistry = 0 );
46 
49  const DtString& rwName = DtString::nullString(), DtReaderWriterRegistry* parentRegistry = 0 );
50 
53 
56 
57  static DtVrfMovingObjectStateRepository* isVrfMovingObjectStateRepository(
58  DtSimObjectStateRepository* repository );
59 
60  static const DtVrfMovingObjectStateRepository* isVrfMovingObjectStateRepository(
61  const DtSimObjectStateRepository* repository );
62 
64  virtual void tick();
65 
66  virtual DtString type() const;
67 
69  virtual const int vrfObjectStateRepositorySubType() const;
70 
72  virtual const int vrfMovingObjectStateRepositorySubType() const;
73 
74  virtual bool createParameters();
75  virtual void initializeFromParameters();
76 
79  virtual void addRangeItem( const DtRangeItem& item );
80  virtual void setRangeItems( const DtRangeItems& item );
81  virtual void removeRangeItem( int index );
82 
84  virtual void updateMaximumSensorRangeRing();
85  virtual const DtMovingObjectParameters* movingObjectParameters() const;
86 
87  virtual bool canPivot() const;
88  virtual void setCanPivot( const bool canPivot );
89 
90  virtual DtReal maxPivotSpeed() const;
91  virtual void setMaxPivotSpeed( DtReal maxPivotSpeed );
92 
94  virtual const DtGroundInteractionPt* rightSupport() const;
95  virtual DtGroundInteractionPt* rightSupport();
96  virtual void setRightSupport( const DtVector& vec );
97 
98  virtual const DtGroundInteractionPt* leftSupport() const;
99  virtual DtGroundInteractionPt* leftSupport();
100  virtual void setLeftSupport( const DtVector& vec );
101 
102  virtual const DtGroundInteractionPt* otherSupport() const;
103  virtual DtGroundInteractionPt* otherSupport();
104  virtual void setOtherSupport( const DtVector& vec );
105 
106  virtual DtReal maxSpeed() const;
107  virtual void setMaxSpeed( const DtReal speed );
108 
109  virtual DtReal maxReverseSpeed() const;
110  virtual void setMaxReverseSpeed( const DtReal speed );
111 
112  virtual DtReal turningRadius() const;
113  virtual void setTurningRadius( const DtReal turningRadius );
114 
115  virtual DtReal maxSlope() const;
116  virtual void setMaxSlope( const DtReal slope );
117 
118 
121 
122  virtual DtReal orderedSpeed() const;
123  virtual void setOrderedSpeed(const DtReal speed);
125 
127  virtual DtReal orderedSpeedConstrained() const;
128 
130  virtual void setOrderedHeading(const DtReal heading);
131  virtual DtReal orderedHeading() const;
132 
136  virtual DtReal maneuverAggressiveness() const;
137  virtual void setManeuverAggressiveness(const DtReal fraction);
139 
143  virtual DtActionUrgencyLevel actionUrgency() const;
144  virtual void setActionUrgency( DtActionUrgencyLevel urgency );
146 
150  virtual void setCurrentPitch(double);
151  virtual double currentPitch() const;
152 
155  virtual DtReal orderedAltitude() const;
156  virtual void setOrderedAltitude(const DtReal orderedAltitude);
157  virtual bool orderedAltitudeSpecified() const;
158  virtual void setOrderedAltitudeSpecified(bool);
159  virtual bool useOrderedAltitudeForRoutes() const;
160  virtual void setUseOrderedAltitureForRoutes(bool c);
161 
162  virtual DtReal maxAcceleration() const;
163  virtual void setMaxAcceleration(const DtReal maxAcceleration);
164 
165  virtual DtReal maxStoppingDeceleration() const;
166  virtual void setMaxStoppingDeceleration(const DtReal maxStoppingDeceleration);
167 
170  virtual DtReal maxLateralAcceleration() const;
171  virtual void setMaxLateralAcceleration(const DtReal maxLateralAcceleration);
172 
173  virtual DtReal fuelEfficiency() const;
174  virtual void setFuelEfficiency(const DtReal fuelEfficiency);
175 
177  virtual DtReal inverseStoppingDeceleration() const;
178 
181  virtual bool haveSupplies() const;
182  virtual void setHaveSupplies(const bool doHave);
184 
188  virtual double nextSupplyCheckTime() const;
189  virtual void setNextSupplyCheckTime(const double time);
191 
192  virtual bool forward() const;
193  virtual void setForward(const bool forward);
194 
196  virtual bool amClampedToGround() const;
197  virtual void setAmClampedToGround(const bool clamp);
198 
200  virtual void reclampToGround();
201 
205  virtual bool usingRailMovement() const;
206  virtual void setUsingRailMovement(const bool rails);
207 
218  virtual void clampToGround( const DtVector& location, const DtReal heading,
219  bool* dataAvailable = 0, bool requireAllData = false );
220 
231  virtual void clampToGround(const DtVector& location, const DtReal heading, bool gravityAligned,
232  bool* dataAvailable = 0, bool requireAllData = false );
233 
238  virtual void updateSupportPoints( const DtVector& newPosition, const DtReal newHeading );
239 
241  virtual DtVector parentPosition();
242 
252  virtual void place( const DtVector& location, bool* dataAvailable = 0,
253  bool requireAllData = false );
254 
264  virtual void place( const DtReal heading, bool* dataAvailable = 0,
265  bool requireAllData = false );
266 
279  virtual void place( const DtVector& location, const DtReal heading,
280  bool clampToGroundFlag = true, bool* dataAvailable = 0,
281  bool requireAllData = false );
282 
284  virtual void placeAtAltitude( const DtVector& location, const DtReal heading );
285 
288  virtual void setDIGuyCharacterState( DtRwDIGuyCharacterState * info );
289  virtual DtRwDIGuyCharacterState * diGuyCharacterState();
290 
296  virtual void setDIGuyCharacter( const DtString & animation );
297  virtual const DtString & dIGuyCharacter() const;
299 
302  virtual void setDIGuyAnimation( const DtString & animation );
303  virtual const DtString & dIGuyAnimation() const;
305 
308  virtual void setDIGuyUsingAnimationOffset( bool usingOffset );
309  virtual bool dIGuyUsingAnimationOffset() const;
311 
317  virtual void setDIGuyAnimationOffset( const DtVector& offset );
318  virtual const DtVector& dIGuyAnimationOffset() const;
320 
325  virtual void setDIGuyTransitionSpeed( float transitionSpeed );
326  virtual float dIGuyTransitionSpeed() const;
328 
331  virtual void setDIGuyBodyWeight( double w );
332  virtual double dIGuyBodyWeight() const;
334 
337  virtual void setDIGuyAppearance( const DtString & app );
338  virtual const DtString& dIGuyAppearance() const;
340 
342  virtual const DtRwNLengthStringVector& randomAppearancesList() const;
343 
346  virtual void setDIGuyHandItem( const DtString & app );
347  virtual const DtString& dIGuyHandItem() const;
349 
352  virtual void setDIGuyHead( const DtString & app );
353  virtual const DtString& dIGuyHead() const;
355 
358  virtual void addCurrentPitchCallback( DtVrfObjectCallbackList::DtCallbackFunctionType fcn, void* usr );
359  virtual void removeCurrentPitchCallback( DtVrfObjectCallbackList::DtCallbackFunctionType fcn, void* usr );
360  virtual void invokeCurrentPitchCallbacks();
362 
363 protected:
364 
365  virtual void getSelf( DtlObjPtr args, const DtReaderWriter::SearchPaths& searchPaths,
366  const DtVariableBindingsList& variableBindings );
367 
369  virtual void determineDiGuyAppearance();
370 
372  virtual void determineVisualMarkingAppearance();
373 
375  virtual DtRwDIGuyCharacterState* createDIGuyCharacterState();
376 
377 private:
378 
381 
382 protected:
383 
387 
407 
410 
413 
417 
420 
423 
426 
431 
434 
435 };
Instances of DtVrfObjectParameters are the readable/writeable objects that contain the information ne...
Definition: vrfObjectParameters.h:59
DtRwReal myMaxAcceleration
Definition: vrfMovingObjectStateRepository.h:398
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:405
DtRwReal myTurningRadius
Definition: vrfMovingObjectStateRepository.h:395
DtGroundInteractionPt myOtherSupport
Definition: vrfMovingObjectStateRepository.h:386
Description: This repository holds all information that is common to all the forms of all objects wit...
Definition: vrfMovingObjectStateRepository.h:29
DtRwBoolean myCanPivot
Definition: vrfMovingObjectStateRepository.h:402
DtRwNLengthStringVector is a named, readable/writable vector of strings of arbitrary length...
Definition: rwNLengthStringVector.h:28
DtRwReal myMaxSlope
Definition: vrfMovingObjectStateRepository.h:396
DtReal myInverseStoppingDeceleration
Derived quantity (1/myMaxStoppingDeceleration) - no need to make it read-write.
Definition: vrfMovingObjectStateRepository.h:416
DtRwReal myMaxReverseSpeed
Definition: vrfMovingObjectStateRepository.h:394
DtRwBoolean myForward
Definition: vrfMovingObjectStateRepository.h:397
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:422
DtRwInt myActionUrgency
Definition: vrfMovingObjectStateRepository.h:390
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
DtActionUrgencyLevel
Enumeration for various predefined urgency levels.
Definition: actionUrgencyLevel.h:25
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:391
DtRwReal myMaxLateralAcceleration
Definition: vrfMovingObjectStateRepository.h:400
DtRwBoolean myKeepGroundClampingFlag
Records whether we should keep ground clamping b/c not all terrain was loaded.
Definition: vrfMovingObjectStateRepository.h:419
Definition: objectType.h:27
DtString myDIGuyCharacter
Stores the character type string for remote entities.
Definition: vrfMovingObjectStateRepository.h:412
static DtVrfObjectStateRepository * creator(const DtString &name, DtVrfObject *simObject, const DtObjectType &objectType, DtVrfObjectParameters *parameters, DtReaderWriterRegistry *parentRegistry)
DtRwReal myManeuverAggressiveness
Definition: vrfMovingObjectStateRepository.h:389
DtGroundInteractionPt myLeftSupport
Definition: vrfMovingObjectStateRepository.h:384
DtRwDIGuyCharacterState * myDIGuyCharacterState
DI-Guy state for the entity.
Definition: vrfMovingObjectStateRepository.h:409
DtRwBoolean myUseOrderedAltitudeForRoutes
Definition: vrfMovingObjectStateRepository.h:392
virtual bool createParameters()
Definition: rangeItem.h:149
#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.
Description: Readable, Writable int.
Definition: rwInt.h:25
std::vector< DtFilename > SearchPaths
Definition: readerWriter.h:92
DtRwReal myMaxSpeed
Definition: vrfMovingObjectStateRepository.h:393
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:430
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:433
Definition: rangeItem.h:206
DtRwBoolean myHaveSupplies
Records whether the entity has appropriate supplies to keep it moving.
Definition: vrfMovingObjectStateRepository.h:425
virtual const int vrfObjectStateRepositorySubType() const
Returns DtVrfObjectStateRepositorySubTypeBase.
Description: Readable, Writable DtReal (double)
Definition: rwReal.h:27
DtRwReal myFuelEfficiency
Definition: vrfMovingObjectStateRepository.h:401
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:388
DtRwReal myMaxStoppingDeceleration
Definition: vrfMovingObjectStateRepository.h:399
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:32
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:385
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:403
virtual void setRangeItems(const DtRangeItems &)
DtRwReal myMaxPivotSpeed
Definition: vrfMovingObjectStateRepository.h:406
Contains the DtActionUrgencyLevel enumeration declaration.

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)