VR-Forces 4.0.4 Class Documentation
include/vrfmodel/balGunCtlr.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 1999 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: balGunCtlr.h,v $ $Revision: 1.37 $ $State: Exp $
00007 *******************************************************************************/
00008 
00011 
00014 
00015 #ifndef DtBallisticGunController_H_
00016 #define DtBallisticGunController_H_
00017 
00018 
00019 #include "vrfobjcore/cntrlCmpnt.h"
00020 #include "vrfutil/vlClock.h"
00021 #include <vl/hostStructs.h>
00022 #include "vrfutil/simMunition.h"
00023 #include <vlpi/disEnums.h>
00024 
00025 class DtBooleanOutputPort;
00026 class DtIntegerOutputPort;
00027 class DtIntegerInputPort;
00028 class DtBallisticGunControllerDescriptor;
00029 class DtVrfBalGunPSR;
00030 class DtOutputPortGroup;
00031 class DtBooleanInputPort;
00032 class DtWeaponComponentInterface;
00033 class DtEntityListOutputPort;
00034 
00048 #include "vrfmodel/vrfmodelDefines.h"
00049 class DT_DLL_vrfmodel DtBallisticGunController : public DtControllerComponent
00050 {
00051 
00052 public:
00053 
00056    DtBallisticGunController(const DtString& name, 
00057       DtVrfObject* owner,
00058       DtSimManager* simManager, 
00059       DtComponentDescriptor* desc = 0,
00060       DtReaderWriterRegistry* parentRegistry = 0);
00061 
00063    virtual ~DtBallisticGunController();
00064 
00068    virtual bool postAddComponentsInit();
00069 
00072    virtual DtString type() const;
00073 
00075    virtual bool init();
00076 
00080    virtual void tick();
00081 
00084    virtual bool createTriggerPort();
00085    virtual DtBooleanOutputPort * triggerPort() const;
00086 
00087    virtual bool createQuantityOutputPort();
00088    virtual DtIntegerOutputPort* quantityOutputPort() const;
00089 
00090    virtual bool createLoadedPort();
00091    virtual DtBooleanOutputPort * loadedPort() const;
00092 
00093    virtual bool createLosOutputPort();
00094    virtual DtIntegerOutputPort * losOutputPort() const;
00095 
00096    virtual bool createLosInputPort();
00097    virtual DtIntegerInputPort * losInputPort() const;
00098 
00099    virtual bool createWeaponsHoldInputPort();
00100 
00101    virtual bool createTargetToAcquireOutputPort();
00102 
00103    virtual void setLoadAmmoTime(DtTime loadAmmoTime);
00104    virtual DtTime loadAmmoTime() const;
00105 
00106    virtual void setUnloadAmmoTime(DtTime unloadAmmoTime);
00107    virtual DtTime unloadAmmoTime() const;
00108 
00112    virtual void fire();
00113 
00121    virtual bool chooseAmmo(DtVrfObject * entity, DtSimMunition& 
00122       munition, DtDetonatorFuze& fuze, int& ammoAvailable);
00123 
00125    virtual void initProcessSR();
00126 
00130    static DtSimComponent * creator(const DtString& name, 
00131       DtVrfObject* owner,
00132       DtSimManager* simManager, 
00133       DtComponentDescriptor* desc = 0,
00134       DtReaderWriterRegistry* parentRegistry = 0);
00135 
00136 protected:
00137    
00139    virtual bool createPorts();
00140 
00142    virtual bool createPortGroups();
00143 
00151    virtual void lookupAndCacheProcessSR();
00152 
00155    virtual bool weaponsHoldState();
00156 
00157    
00158 protected:
00160    DtBallisticGunController();
00161 
00163    DtBallisticGunController(const DtBallisticGunController & orig);
00164 
00166    const DtBallisticGunController & operator=(const DtBallisticGunController & 
00167       orig);
00168 
00169 protected:
00170 
00173 
00180    DtIntegerInputPort * myLosInputPort;
00181 
00187    DtBooleanOutputPort *    myTriggerPort;
00188 
00195    DtIntegerOutputPort*     myQuantityOutputPort;
00196 
00202    DtBooleanOutputPort *    myLoadedPort;
00203 
00210    DtIntegerOutputPort* myLosOutputPort;
00211 
00214    DtOutputPortGroup * myGunControlPortGroup;
00215 
00222    DtBooleanInputPort* myWeaponsHoldInputPort;
00223 
00224 
00228    DtEntityListOutputPort* myTargetToAcquireOutputPort;
00230 
00233    DtEntityIdentifier myPreviousTarget;
00234 
00236    DtSimMunition      myCurrentMunition;
00237    DtDetonatorFuze    myCurrentFuze;
00238 
00240    int              myRoundsAvailable;
00241  
00247    DtVrfBalGunPSR*    myProcessState;
00248 
00250    const DtBallisticGunControllerDescriptor* myGunDescriptor;
00251 
00255    bool myWaitingForFire;
00256 
00257    bool myFirstTick;
00259    bool myOutOfAmmoWarn;
00260 
00263    DtWeaponComponentInterface* myWeaponComponentInterface;
00264 };
00265 
00266 #endif
00267 
00268 
00269 
00270 

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)