![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 1999 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: weaponAct.h,v $ $Revision: 1.31 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00014 00015 #ifndef DtWeaponActuator_H_ 00016 #define DtWeaponActuator_H_ 00017 00018 #include "vrfobjcore/actCmpnt.h" 00019 #include <vl/fireInter.h> 00020 #include <vl/detonateInter.h> 00021 #include "vrfcore/timer.h" 00022 #include <vl/hostStructs.h> 00023 00024 class DtSimManager; 00025 class DtWeaponActuatorDescriptor; 00026 class DtVrfWeaponPSR; 00027 00028 class DtArticulatedPartStateRepository; 00029 class DtDcm; 00030 00031 class DtConstrainedIntegerInputPort; 00032 class DtAmmunitionInputPort; 00033 class DtBooleanInputPort; 00034 class DtIntegerOutputPort; 00035 00054 #include "vrfmodel/vrfmodelDefines.h" 00055 class DT_DLL_vrfmodel DtWeaponActuator : public DtActuatorComponent 00056 { 00057 00058 public: 00059 00062 DtWeaponActuator(const DtString& name, 00063 DtVrfObject* owner, 00064 DtSimManager* simManager, 00065 DtComponentDescriptor* desc = 0, 00066 DtReaderWriterRegistry* parentRegistry = 0); 00067 00069 virtual ~DtWeaponActuator(); 00070 00074 virtual bool init(); 00075 00078 virtual DtString type() const; 00079 00081 virtual void tick(); 00082 00084 virtual bool postAddComponentsInit(); 00085 00088 virtual void fireTheWeapon(); 00089 00091 virtual DtFireInteraction * createFireInteraction(); 00092 00093 virtual void setProjectileStartSpeed(DtReal startSpeed); 00094 virtual DtReal projectileStartSpeed(); 00095 00096 virtual void setMuzzleOffset(const DtVector& muzzleOffset); 00097 virtual const DtVector& muzzleOffset(); 00098 00110 virtual const DtVector& muzzleLocalPosition(); 00111 00119 virtual const DtDcm& weaponOrientation(); 00120 00128 virtual DtArticulatedPartStateRepository * getWeaponSimBody(); 00129 00130 00134 static DtSimComponent * creator(const DtString& name, 00135 DtVrfObject* owner, 00136 DtSimManager* simManager, 00137 DtComponentDescriptor* desc = 0, 00138 DtReaderWriterRegistry* parentRegistry = 0); 00139 00140 protected: 00141 00143 virtual bool createPortGroups(); 00144 00146 virtual bool createPorts(); 00147 00153 virtual bool createPSR(); 00154 00155 protected: 00156 00158 DtWeaponActuator(); 00159 00161 DtWeaponActuator(const DtWeaponActuator & orig); 00162 00164 const DtWeaponActuator & operator=(const DtWeaponActuator & orig); 00165 00166 00167 protected: 00168 00171 00174 DtInputPortGroup* myWeaponInputPortGroup; 00175 00181 DtAmmunitionInputPort* myAmmunitionPort; 00182 00189 DtConstrainedIntegerInputPort* myFusePort; 00190 00196 DtBooleanInputPort* myTriggerPort; 00197 00203 DtBooleanInputPort* myLoadedPort; 00204 00207 DtOutputPortGroup* myWeaponOutputPortGroup; 00208 00215 DtIntegerOutputPort* myArtPartTypePort; 00216 00218 00219 DtWeaponActuatorDescriptor * myWeaponActuatorDescriptor; 00220 DtEntityIdentifier myObjectId; 00221 00222 DtReal myProjectileStartSpeed; 00223 DtVector myMuzzleOffset; 00224 00227 DtVrfObject* myCurrentEntityTarget; 00228 DtEventId myCurrentEventId; 00229 DtReal myCurrentRange; 00230 DtVrfWeaponPSR* myWeaponProcessState; 00231 00232 }; 00233 00234 #endif 00235