VR-Forces 4.0.4 Class Documentation
include/vrfmodel/iFireAct.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 1999 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: iFireAct.h,v $ $Revision: 1.21 $ $State: Exp $
00007 *******************************************************************************/
00008 
00011 
00013 
00014 #ifndef DtIndirectFireActuator_H_
00015 #define DtIndirectFireActuator_H_
00016 
00017 #include "vrfmodel/weaponAct.h"
00018 #include <vl/hostStructs.h>
00019 
00020 class DtSimManager;
00021 class DtIndirectFireActuatorDescriptor;
00022 class DtVrfIndirectFirePSR;
00023 class DtDetonationDescriptor;
00024 class DtVrfIndirectFirePSR;
00025 
00026 class DtAnalogInputPort;
00027 class DtVectorInputPort;
00028    
00042 #include "vrfmodel/vrfmodelDefines.h"
00043 class DT_DLL_vrfmodel DtIndirectFireActuator : public DtWeaponActuator
00044 {
00045  
00046 public:
00047 
00050    DtIndirectFireActuator(const DtString& name, 
00051       DtVrfObject* owner,
00052       DtSimManager* simManager, 
00053       DtComponentDescriptor* desc = 0,
00054       DtReaderWriterRegistry* parentRegistry = 0);
00055 
00057    virtual ~DtIndirectFireActuator();
00058 
00061    virtual void tick();
00062 
00069    virtual void initPendingDetonations();
00070 
00073    virtual DtString type() const;
00074 
00082    virtual DtFireInteraction * createFireInteraction();
00083 
00091    virtual DtDetonationInteraction * createDetonationInteraction(DtTime& 
00092       detTime);
00093 
00097    virtual void scheduleDetonation(DtDetonationInteraction * detInter,
00098       DtTime detTime);
00099 
00103    virtual void fireTheWeapon();
00104 
00109    virtual void addDispersion(DtVector& detLocation, 
00110       bool addHeightDispersion);
00111 
00113    static void detonationCallback(DtTimer * timer);
00114 
00118    static DtSimComponent * creator(const DtString& name, 
00119       DtVrfObject* owner,
00120       DtSimManager* simManager, 
00121       DtComponentDescriptor* desc = 0,
00122       DtReaderWriterRegistry* parentRegistry = 0);
00123 
00129    virtual DtDetonationInteraction * createDetonationInteraction(
00130       const DtDetonationDescriptor& desc, DtTime& detTime);
00131 
00134    virtual DtDetonationDescriptor* createDetonationDescriptor(
00135       DtDetonationInteraction* detInter, DtTime simTime);
00136 
00138    static void objectAddedCb(DtVrfObject * vrfObject, void * usr);
00139 
00144    virtual void processObjectAdded(DtVrfObject * vrfObject);
00145 
00146 protected:
00147 
00149    virtual bool createPorts();
00150 
00156    virtual bool createPSR();
00157 
00158 protected:
00159    
00161    DtIndirectFireActuator();
00162 
00164    DtIndirectFireActuator(const DtIndirectFireActuator & orig);
00165 
00167    const DtIndirectFireActuator & operator=(
00168       const DtIndirectFireActuator & orig);
00169 
00170 
00171 protected:
00172 
00175 
00181    DtVectorInputPort* myTargetPointPort;
00182 
00188    DtAnalogInputPort* myMaxRangePort;
00189 
00191 
00192    DtReal myMuzzleSpeed;
00193    DtList myTimerList;
00194    DtIndirectFireActuatorDescriptor * myIndirectFireActuatorDescriptor;
00195 
00198    DtVrfIndirectFirePSR* myIndirectFireProcessState;
00199 
00200    bool myFirstTick;
00201 };
00202 
00203 #endif

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)