VR-Forces Developer's Guide
 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 class DtPatchIdentifier;
19 
32 {
33 private:
34 
37 
40 
41 public:
42 
45  const DtString& rwName = DtString::nullString(), DtReaderWriterRegistry* parentRegistry = 0 );
46 
48  virtual ~DtVrfMovingObjectStateRepository() override;
49 
50  static DtVrfObjectStateRepository* creator( const DtString& name,
51  DtLocalObject* vrfObject, DtReaderWriterRegistry* parentRegistry );
52 
54  virtual void tick() override;
55 
56  virtual DtString type() const override;
57 
59  virtual const int vrfObjectStateRepositorySubType() const override;
60 
62  virtual const int vrfMovingObjectStateRepositorySubType() const;
63 
64  virtual void initializeFromParameters() override;
65 
67  const DtMovingObjectParameters* movingObjectParameters() const;
68 
69  virtual bool canPivot() const;
70  virtual void setCanPivot( const bool canPivot );
71 
72  virtual DtReal maxPivotSpeed() const;
73  virtual void setMaxPivotSpeed( DtReal maxPivotSpeed );
74 
76  virtual const DtGroundInteractionPt* rightSupport() const;
77  virtual DtGroundInteractionPt* rightSupport();
78  virtual void setRightSupport( const DtVector& vec );
79 
80  virtual const DtGroundInteractionPt* leftSupport() const;
81  virtual DtGroundInteractionPt* leftSupport();
82  virtual void setLeftSupport( const DtVector& vec );
83 
84  virtual const DtGroundInteractionPt* otherSupport() const;
85  virtual DtGroundInteractionPt* otherSupport();
86  virtual void setOtherSupport( const DtVector& vec );
87 
88  virtual DtReal maxSpeed() const;
89  virtual void setMaxSpeed( const DtReal speed );
90 
91  virtual DtReal maxReverseSpeed() const;
92  virtual void setMaxReverseSpeed( const DtReal speed );
93 
94  virtual DtReal turningRadius() const;
95  virtual void setTurningRadius( const DtReal turningRadius );
96 
97  virtual DtReal maxSlope() const;
98  virtual void setMaxSlope( const DtReal slope );
99 
103 
104  virtual const DtVector& localEstimatedPositionError() const;
105  virtual void setLocalEstimatedPositionError(const DtVector& localEstimatedPositionError);
107 
110 
111  virtual const DtVector localEstimatedPosition() const;
112  virtual const DtVector worldEstimatedPosition() const;
114 
117 
118  virtual DtReal orderedSpeed() const;
119  virtual void setOrderedSpeed(const DtReal speed);
121 
123  virtual DtReal orderedSpeedConstrained() const;
124 
126  virtual void setOrderedHeading(const DtReal heading);
127  virtual DtReal orderedHeading() const;
128 
132  virtual DtReal maneuverAggressiveness() const;
133  virtual void setManeuverAggressiveness(const DtReal fraction);
135 
139  virtual DtActionUrgencyLevel actionUrgency() const;
140  virtual void setActionUrgency( DtActionUrgencyLevel urgency );
142 
146  virtual void setCurrentPitch( double );
147 
150  virtual DtReal orderedAltitude() const;
151  virtual void setOrderedAltitude( const DtReal orderedAltitude );
152  virtual bool orderedAltitudeSpecified() const;
153  virtual void setOrderedAltitudeSpecified( bool );
154  virtual bool useOrderedAltitudeForRoutes() const;
155  virtual void setUseOrderedAltitureForRoutes( bool c );
156 
157  virtual DtReal maxAcceleration() const;
158  virtual void setMaxAcceleration( const DtReal maxAcceleration );
159 
160  virtual DtReal maxStoppingDeceleration() const;
161  virtual void setMaxStoppingDeceleration( const DtReal maxStoppingDeceleration );
162 
165  virtual DtReal maxLateralAcceleration() const;
166  virtual void setMaxLateralAcceleration( const DtReal maxLateralAcceleration );
167 
169  virtual DtReal inverseStoppingDeceleration() const;
170 
173  virtual bool haveSupplies() const;
174  virtual void setHaveSupplies( const bool doHave );
176 
180  virtual double nextSupplyCheckTime() const;
181  virtual void setNextSupplyCheckTime( const double time );
183 
184  virtual bool forward() const;
185  virtual void setForward( const bool forward );
186 
188  virtual bool amClampedToGround() const;
189  virtual void setAmClampedToGround( const bool clamp );
190 
192  virtual void reclampToGround() override;
193 
197  virtual bool usingRailMovement() const;
198  virtual void setUsingRailMovement(const bool rails);
199 
207  virtual void clampToGround( const DtVector& location, const DtReal heading,
208  bool* dataAvailable = 0, bool requireAllData = false );
209 
220  virtual void clampToGround( const DtVector& location, const DtReal heading,
221  bool gravityAligned, bool* dataAvailable = 0, bool requireAllData = false );
222 
227  virtual void updateSupportPoints(const DtVector& newPosition, const DtReal newHeading) override;
228 
238  virtual void place(const DtVector& location, bool* dataAvailable = 0, bool requireAllData = false) override;
239 
249  virtual void place(const DtReal heading, bool* dataAvailable = 0, bool requireAllData = false) override;
250 
263  virtual void place(const DtVector& location, const DtReal heading, bool clampToGroundFlag = true,
264  bool* dataAvailable = 0, bool requireAllData = false) override;
265 
267  virtual void placeAtAltitude( const DtVector& location, const DtReal heading );
268 
270  bool hasHumanComponent() const;
271 
274  virtual void setDIGuyCharacterState( const DtRwDIGuyCharacterState& info );
275  virtual DtRwDIGuyCharacterState diGuyCharacterState() const;
276 
282  virtual void setDiguyCharacter( const DtString& animation );
283  virtual DtString diguyCharacter() const;
285 
288  virtual void setDiguyAnimation( const DtString& animation );
289  virtual DtString diguyAnimation() const;
291 
294  virtual void setDiguyUsingAnimationOffset( bool usingOffset );
295  virtual bool diguyUsingAnimationOffset() const;
297 
303  virtual void setDiguyAnimationOffset( const DtVector& offset );
304  virtual DtVector diguyAnimationOffset() const;
306 
311  virtual void setDiguyTransitionSpeed( float transitionSpeed );
312  virtual float diguyTransitionSpeed() const;
314 
317  virtual void setDiguyBodyWeight( double w );
318  virtual double diguyBodyWeight() const;
320 
323  virtual void setDiguyAppearance( const DtString& app );
324  virtual DtString diguyAppearance() const;
326 
328  virtual const DtRwNLengthStringVector& randomAppearancesList() const;
329 
332  virtual void setDiguyHandItem( const DtString& app );
333  virtual DtString diguyHandItem() const;
335 
338  virtual void setDiguyHead( const DtString& app );
339  virtual DtString diguyHead() const;
341 
344 
345  virtual void setDiguyPrimaryUnitPatch( const DtPatchIdentifier& patchId );
346  virtual DtPatchIdentifier diguyPrimaryUnitPatch() const;
347  virtual void setDiguySecondaryUnitPatch( const DtPatchIdentifier& patchId );
348  virtual DtPatchIdentifier diguySecondaryUnitPatch() const;
349  virtual void setDiguyRankPatch( const DtPatchIdentifier& patchId );
350  virtual DtPatchIdentifier diguyRankPatch() const;
351  virtual void setDiguyCharacterName( const DtString& name );
352  virtual DtString diguyCharacterName() const;
353 
355 
357  boost::signals2::signal<void ()> signal_currentPitchChanged;
358 
359 protected:
360 
361  virtual void createLegacyRWData() override;
362  virtual void setToLegacyRWData() override;
363  virtual void restoreFromLegacyRWData() override;
364  virtual void preGetSelf() override;
365  virtual void prePutSelf() override;
366 
368  virtual void determineDiGuyAppearance();
369 
371  virtual void determineVisualMarkingAppearance();
372 
373 protected:
374 
377 
381 
401 
404 
408 
411 
414 
417 
422 
423 public:
424 
427 
429  {
430  return rep->as<DtVrfMovingObjectStateRepository>();
431  }
432 
433  VRF4API_METHOD const DtMovingObjectParameters* vrfParameters() const { return movingObjectParameters(); };
434 
436 
437 };
virtual void prePutSelf() override
Hook function called immediately prior to putSelf().
static DtVrfObjectStateRepository * creator(const DtString &name, DtLocalObject *simObject, DtReaderWriterRegistry *parentRegistry)
DtRwReal myMaxAcceleration
Definition: vrfMovingObjectStateRepository.h:393
DtRwBoolean myUsingRailMovement
If true keeps the entity clamped to the route segment it is on, no steering just follows the segment...
Definition: vrfMovingObjectStateRepository.h:399
DtRwReal myTurningRadius
Definition: vrfMovingObjectStateRepository.h:390
DtGroundInteractionPt myOtherSupport
Definition: vrfMovingObjectStateRepository.h:380
Description: This repository holds all information that is common to all the forms of all objects wit...
Definition: vrfMovingObjectStateRepository.h:31
virtual void preGetSelf() override
Hook function called immediately prior to getSelf().
DtRwBoolean myCanPivot
Definition: vrfMovingObjectStateRepository.h:396
DtRwNLengthStringVector is a named, readable/writable vector of strings of arbitrary length...
Definition: rwNLengthStringVector.h:28
DtRwReal myMaxSlope
Definition: vrfMovingObjectStateRepository.h:391
virtual void createLegacyRWData() override
Creates the legacy data used for any pre/put operation. Override this to create your legacy data atta...
boost::signals2::signal< void()> signal_currentPitchChanged
Signal sent when the current pitch has changed for this state rep.
Definition: vrfMovingObjectStateRepository.h:357
DtReal myInverseStoppingDeceleration
Derived quantity (1/myMaxStoppingDeceleration) - no need to make it read-write.
Definition: vrfMovingObjectStateRepository.h:407
DtRwReal myMaxReverseSpeed
Definition: vrfMovingObjectStateRepository.h:389
DtRwBoolean myForward
Definition: vrfMovingObjectStateRepository.h:392
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:413
DtRwInt myActionUrgency
Definition: vrfMovingObjectStateRepository.h:385
Definition: simObjectStateRepository.h:59
DtRwVector myLocalEstimatedPositionError
Definition: vrfMovingObjectStateRepository.h:382
Definition: readerWriterRegistry.h:39
DtActionUrgencyLevel
Enumeration for various predefined urgency levels. The urgency levels in this enumeration roughly cor...
Definition: actionUrgencyLevel.h:25
Description: This repository is an internal repository accessible only by local objects. It holds all information that is common to all the forms of all entity/aggregate/control objects within VR-Forces.
Definition: vrfObjectStateRepository.h:91
DtRwReal myOrderedAltitude
Definition: vrfMovingObjectStateRepository.h:386
DtRwReal myMaxLateralAcceleration
Definition: vrfMovingObjectStateRepository.h:395
DtRwBoolean myKeepGroundClampingFlag
Records whether we should keep ground clamping b/c not all terrain was loaded.
Definition: vrfMovingObjectStateRepository.h:410
virtual DtString type() const override
returns DtSimObjectStateRepositoryType
DtString myDIGuyCharacter
Stores the character type string for remote entities.
Definition: vrfMovingObjectStateRepository.h:403
DtRwReal myManeuverAggressiveness
Definition: vrfMovingObjectStateRepository.h:384
DtGroundInteractionPt myLeftSupport
Definition: vrfMovingObjectStateRepository.h:378
DtRwBoolean myUseOrderedAltitudeForRoutes
Definition: vrfMovingObjectStateRepository.h:387
Definition: rwVector.h:23
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
VRF4API_METHOD const DtMovingObjectParameters * vrfParameters() const
These are backwards compatible methods that can be used if you define ALLOW_VRF4API in your header fi...
Definition: vrfMovingObjectStateRepository.h:433
virtual void updateSupportPoints(const DtVector &newPosition, const DtReal newHeading)
reading in a scenario, want to make sure the support points get set up properly. Base class is empty...
Description: Readable, Writable int.
Definition: rwInt.h:25
DtRwReal myMaxSpeed
Definition: vrfMovingObjectStateRepository.h:388
The moving-object-param parameter type is used for objects that are capable of movement, such as individual entities and aggregates. DtMovingObjectParameters; holds all of the configurable parameters for the DtVrfMovingObjectStateRepository class. Parameters include support points, maximum speed, maximum reverse speed, turning radius, maximum slope, ordered speed, maximum acceleration, maximum deceleration, and fuel efficiency. Aggregates are moving objects and have this parameter type. All of the platform-specific parameter types derive from this one. .
Definition: movingObjectParameters.h:32
DtRwReal myNextSupplyCheckTime
Records the next time that supplies should be checked (in general, this isn&#39;t done every tick...
Definition: vrfMovingObjectStateRepository.h:421
virtual void restoreFromLegacyRWData() override
virtual void tick()
This method is called each simulation frame, and may include any processing that needs to be done on ...
DtRwBoolean myHaveSupplies
Records whether the entity has appropriate supplies to keep it moving.
Definition: vrfMovingObjectStateRepository.h:416
virtual const int vrfObjectStateRepositorySubType() const
Returns DtVrfObjectStateRepositorySubTypeBase.
virtual void place(const DtVector &location, bool *dataAvailable=nullptr, bool requireAllData=false)
Place entity at &#39;location&#39;, on the ground, keeping its current heading. Since no terrain intersection...
Description: Readable, Writable DtReal (double)
Definition: rwReal.h:27
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:383
DtRwReal myMaxStoppingDeceleration
Definition: vrfMovingObjectStateRepository.h:394
const T_SRType * as() const
Convenience function to cast to particular state rep type.
Definition: simObjectStateRepository.h:101
const DtVrfObjectStateRepository & operator=(const DtVrfObjectStateRepository &orig)
Assignment Operator.
virtual void initializeFromParameters()
The DtRwDIGuyCharacterState class is a readable/writable class that can store itself and read itself ...
Definition: rwDIGuyCharacterState.h:37
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
virtual void setToLegacyRWData() override
DtGroundInteractionPt myRightSupport
Definition: vrfMovingObjectStateRepository.h:379
static VRF4API_METHOD DtVrfMovingObjectStateRepository * isVrfMovingObjectStateRepository(DtSimObjectStateRepository *rep)
These are backwards compatible methods that can be used if you define ALLOW_VRF4API in your header fi...
Definition: vrfMovingObjectStateRepository.h:428
#define VRF4API_METHOD
Include this header file to allow for the definition/usage of the ability to mark something as deprec...
Definition: vrf4XAPI.h:23
DtRwBoolean myClampToGround
Definition: vrfMovingObjectStateRepository.h:397
DtRwReal myMaxPivotSpeed
Definition: vrfMovingObjectStateRepository.h:400
Contains the DtActionUrgencyLevel enumeration declaration.
A locally simulated VRF object.
Definition: localObject.h:98

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)