VR-Forces 4.0.4 Class Documentation
include/vrfmodel/weaponAct.h
Go to the documentation of this file.
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 

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)