![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2004 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 00006 #pragma once 00007 00011 00013 00014 #include <vlutil/vlMachineTypes.h> 00015 00016 #include "vrfobjcore/vrfMvObjSR.h" 00017 #include "vrfutil/rwIndLifeFormStateType.h" 00018 #include "vrfutil/rwIndLifeFormWeaponStateType.h" 00019 00020 class DtHumanParameters; 00021 00026 #include "vrfobjcore/vrfobjcoreDefines.h" 00027 class DT_DLL_vrfobjcore DtHumanStateRepository : public DtVrfMovingObjectStateRepository 00028 { 00029 protected: 00031 DtHumanStateRepository(); 00032 00033 public: 00034 00036 DtHumanStateRepository (DtVrfObject* vrfObject, 00037 const DtObjectType& objectType, DtVrfObjectParameters* parameters, 00038 const DtString& rwName = DtString::nullString(), 00039 DtReaderWriterRegistry* parentRegistry = 0); 00040 00042 DtHumanStateRepository (const DtHumanStateRepository& orig, 00043 const DtString& rwName = DtString::nullString(), 00044 DtReaderWriterRegistry* parentRegistry = 0); 00045 00047 const DtHumanStateRepository& operator= ( 00048 const DtHumanStateRepository& orig); 00049 00051 virtual ~DtHumanStateRepository(); 00052 00053 virtual DtSimObjectStateRepository* clone( 00054 const DtString& rwName = DtString::nullString(), 00055 DtReaderWriterRegistry* parentRegistry = 0) const; 00056 00057 virtual bool init(); 00058 00060 virtual DtString type() const; 00061 00063 virtual const int vrfMovingObjectStateRepositorySubType() const; 00064 00066 virtual const int humanStateRepositorySubType() const; 00067 00068 virtual bool createParameters(); 00069 virtual void initializeFromParameters(); 00070 virtual const DtHumanParameters* humanParameters() const; 00071 00073 virtual void setAssignedPosture(DtLifeformState newPosture); 00074 virtual DtLifeformState assignedPosture() const; 00075 00077 virtual DtLifeformState currentPosture() const; 00078 virtual void setCurrentPosture (DtLifeformState newPosture); 00079 00081 virtual void setAssignedWeaponState(DtWeaponState newWeaponState); 00082 virtual DtWeaponState assignedWeaponState() const; 00083 00085 virtual DtWeaponState currentWeaponState() const; 00086 virtual void setCurrentWeaponState (DtWeaponState newWeaponState); 00087 00095 virtual void clampToGround (const DtVector& location, const DtReal heading, 00096 bool* dataAvailable = 0, bool requireAllData = false); 00097 00099 virtual void setDestroyed(bool isDestroyed); 00100 00102 virtual void calculateBodyEyepointOffset(DtLifeformState posture, 00103 DtVector& bodyEyepointOffset) const; 00104 00107 virtual bool uprightPosture(DtLifeformState posture) const; 00108 00111 virtual bool staticPosture(DtLifeformState posture) const; 00112 00115 virtual bool movingPosture(DtLifeformState posture) const; 00116 00117 static DtVrfObjectStateRepository* creator (const DtString& name, 00118 DtVrfObject* vrfObject,const DtObjectType& objectType, 00119 DtVrfObjectParameters* parameters, 00120 DtReaderWriterRegistry* parentRegistry); 00121 00124 static DtHumanStateRepository* isHumanStateRepository( 00125 DtSimObjectStateRepository* repository); 00126 00127 static const DtHumanStateRepository* isHumanStateRepository( 00128 const DtSimObjectStateRepository* repository); 00129 00130 protected: 00131 00136 virtual void preGetSelf(); 00137 00143 virtual void postGetSelf(); 00144 00145 protected: 00146 DtRwIndividualLifeFormStateType myAssignedPosture; 00147 DtRwIndividualLifeFormStateType myCurrentPosture; 00148 00149 DtRwIndividualLifeFormWeaponStateType myAssignedWeaponState; 00150 DtRwIndividualLifeFormWeaponStateType myCurrentWeaponState; 00151 };