![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 1999-2002 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 00008 00009 #pragma once 00010 00011 #include "vrfobjcore/vrfObjSR.h" 00012 00013 class DtMovingObjectParameters; 00014 class DtRwDIGuyCharacterInfo; 00015 00022 #include "vrfobjcore/vrfobjcoreDefines.h" 00023 class DT_DLL_vrfobjcore DtVrfMovingObjectStateRepository : public DtVrfObjectStateRepository 00024 { 00025 public: 00026 00028 DtVrfMovingObjectStateRepository (DtVrfObject* vrfObject, 00029 const DtObjectType& objectType, DtVrfObjectParameters* parameters, 00030 const DtString& rwName = DtString::nullString(), DtReaderWriterRegistry* parentRegistry = 0); 00031 00033 DtVrfMovingObjectStateRepository(const DtVrfMovingObjectStateRepository& orig, 00034 const DtString& rwName = DtString::nullString(), DtReaderWriterRegistry* parentRegistry = 0); 00035 00037 DtVrfMovingObjectStateRepository& operator=(const DtVrfMovingObjectStateRepository& orig); 00038 00040 virtual ~DtVrfMovingObjectStateRepository(); 00041 00042 static DtVrfObjectStateRepository* creator(const DtString& name, 00043 DtVrfObject* vrfObject, const DtObjectType& objectType, 00044 DtVrfObjectParameters* parameters, DtReaderWriterRegistry* parentRegistry); 00045 00046 static DtVrfMovingObjectStateRepository* 00047 isVrfMovingObjectStateRepository(DtSimObjectStateRepository* repository); 00048 00049 static const DtVrfMovingObjectStateRepository* 00050 isVrfMovingObjectStateRepository(const DtSimObjectStateRepository* repository); 00051 00053 virtual DtSimObjectStateRepository* clone(const DtString& rwName = DtString::nullString(), 00054 DtReaderWriterRegistry* parentRegistry = 0) const; 00055 00056 virtual DtString type() const; 00057 00059 virtual const int vrfObjectStateRepositorySubType() const; 00060 00062 virtual const int vrfMovingObjectStateRepositorySubType() const; 00063 00064 virtual bool createParameters(); 00065 virtual void initializeFromParameters(); 00066 00067 virtual const DtMovingObjectParameters* movingObjectParameters() const; 00068 00069 virtual bool canPivot() const; 00070 virtual void setCanPivot (const bool canPivot); 00071 00072 virtual DtReal maxPivotSpeed() const; 00073 virtual void setMaxPivotSpeed (DtReal maxPivotSpeed); 00074 00076 virtual const DtGroundInteractionPt* rightSupport() const; 00077 virtual DtGroundInteractionPt* rightSupport(); 00078 virtual void setRightSupport(const DtVector& vec); 00079 00080 virtual const DtGroundInteractionPt* leftSupport() const; 00081 virtual DtGroundInteractionPt* leftSupport(); 00082 virtual void setLeftSupport(const DtVector& vec); 00083 00084 virtual const DtGroundInteractionPt* otherSupport() const; 00085 virtual DtGroundInteractionPt* otherSupport(); 00086 virtual void setOtherSupport(const DtVector& vec); 00087 00088 virtual DtReal maxSpeed() const; 00089 virtual void setMaxSpeed(const DtReal speed); 00090 00091 virtual DtReal maxReverseSpeed() const; 00092 virtual void setMaxReverseSpeed(const DtReal speed); 00093 00094 virtual DtReal turningRadius() const; 00095 virtual void setTurningRadius(const DtReal turningRadius); 00096 00097 virtual DtReal maxSlope() const; 00098 virtual void setMaxSlope(const DtReal slope); 00099 00102 virtual DtReal orderedSpeed() const; 00103 virtual void setOrderedSpeed(const DtReal speed); 00104 00105 virtual DtReal maxAcceleration() const; 00106 virtual void setMaxAcceleration(const DtReal maxAcceleration); 00107 00108 virtual DtReal maxStoppingDeceleration() const; 00109 virtual void setMaxStoppingDeceleration(const DtReal maxStoppingDeceleration); 00110 00111 virtual DtReal fuelEfficiency() const; 00112 virtual void setFuelEfficiency(const DtReal fuelEfficiency); 00113 00115 virtual DtReal inverseStoppingDeceleration() const; 00116 00117 virtual bool forward() const; 00118 virtual void setForward(const bool forward); 00119 00121 virtual bool amClampedToGround() const; 00122 virtual void setAmClampedToGround(const bool clamp); 00123 00127 virtual bool usingRailMovement() const; 00128 virtual void setUsingRailMovement(const bool rails); 00129 00140 virtual void clampToGround(const DtVector& location, const DtReal heading, 00141 bool* dataAvailable = 0, bool requireAllData = false); 00142 00153 virtual void clampToGround(const DtVector& location, const DtReal heading, 00154 bool gravityAligned, bool* dataAvailable = 0, 00155 bool requireAllData = false); 00156 00161 virtual void updateSupportPoints(const DtVector& newPosition, 00162 const DtReal newHeading); 00163 00165 virtual DtVector parentPosition(); 00166 00176 virtual void place(const DtVector& location, bool* dataAvailable = 0, 00177 bool requireAllData = false); 00178 00188 virtual void place(const DtReal heading, bool* dataAvailable = 0, 00189 bool requireAllData = false); 00190 00203 virtual void place(const DtVector& location, const DtReal heading, 00204 bool clampToGroundFlag = true, bool* dataAvailable = 0, 00205 bool requireAllData = false); 00206 00208 virtual void placeAtAltitude(const DtVector& location, const DtReal heading); 00209 00212 virtual void setDIGuyCharacterInfo(DtRwDIGuyCharacterInfo * info); 00213 virtual DtRwDIGuyCharacterInfo * diGuyCharacterInfo(); 00214 00216 00217 virtual void setDIGuyCharacter(const DtString& character); 00218 virtual const DtString & dIGuyCharacter() const; 00220 00222 00223 virtual void setDIGuyAnimation(const DtString & animation); 00224 virtual const DtString & dIGuyAnimation() const; 00226 00228 00229 virtual void setDIGuyAppearance(const DtString & app); 00230 virtual const DtString& dIGuyAppearance() const; 00232 00233 protected: 00235 DtVrfMovingObjectStateRepository(); 00236 00237 DtGroundInteractionPt myLeftSupport; 00238 DtGroundInteractionPt myRightSupport; 00239 DtGroundInteractionPt myOtherSupport; 00240 00241 DtRwReal myOrderedSpeed; 00242 DtRwReal myMaxSpeed; 00243 DtRwReal myMaxReverseSpeed; 00244 DtRwReal myTurningRadius; 00245 DtRwReal myMaxSlope; 00246 DtRwBoolean myForward; 00247 DtRwReal myMaxAcceleration; 00248 DtRwReal myMaxStoppingDeceleration; 00249 DtRwReal myFuelEfficiency; 00250 DtRwBoolean myCanPivot; 00251 DtRwBoolean myClampToGround; 00253 DtRwBoolean myUsingRailMovement; 00254 DtRwReal myMaxPivotSpeed; 00255 00256 DtRwDIGuyCharacterInfo * myDIGuyCharacterInfo; 00257 00260 DtReal myInverseStoppingDeceleration; 00261 }; 00262