VR-Forces 4.0.4 Class Documentation
include/vrfmodel/launchCtlr.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 1999 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: launchCtlr.h,v $ $Revision: 1.34 $ $State: Exp $
00007 *******************************************************************************/
00008 
00011 
00013 
00014 #ifndef DtLauncherController_H_
00015 #define DtLauncherController_H_
00016 
00017 
00018 #include "vrfmodel/weaponCtlr.h"
00019 #include "vrfmsgs/ifCrtEntity.h"
00020 #include <vl/detonateInter.h>
00021 
00022 class DtLauncherControllerDescriptor;
00023 class DtObjectIdOutputPort;
00024 class DtVectorOutputPort;
00025 
00059 #include "vrfmodel/vrfmodelDefines.h"
00060 class DT_DLL_vrfmodel DtLauncherController : public DtWeaponController
00061 {
00062 
00063 public:
00064 
00067    DtLauncherController(const DtString& name, 
00068       DtVrfObject* owner,
00069       DtSimManager* simManager, 
00070       DtComponentDescriptor* desc = 0,
00071       DtReaderWriterRegistry* parentRegistry = 0);
00072 
00074    virtual ~DtLauncherController();
00075 
00078    virtual bool init();
00079 
00082    virtual DtString type() const;
00083 
00085    virtual void tick();
00086 
00101    virtual void tickMunitionLoader(const DtVrfObject* target);
00102 
00105    virtual bool createMissileIdPort();
00106    virtual DtObjectIdOutputPort * missileIdPort() const;
00107 
00108    virtual bool createTargetPointPort();
00109    virtual DtVectorOutputPort * targetPointPort() const;
00110 
00111    virtual bool createTargetEntityIdPort();
00112    virtual DtObjectIdOutputPort * targetEntityIdPort() const;
00113 
00120    virtual void fire();
00121 
00128    virtual void missileDetonated(DtDetonationInteraction * detInter);
00129    
00133    static void detonationCallback(DtDetonationInteraction * detInter,
00134                                                            void * usr);
00135 
00144    virtual void disconnectMissileFromLauncher(const DtEntityIdentifier& missId);
00145 
00146    virtual void disconnectMissileFromLauncher(DtVrfObject *missile);
00147 
00149    virtual DtVrfObject* mostRecentMissileFired();
00150 
00151    virtual double abandonPassedMissileDistance();
00152    virtual void setAbandonPassedMissileDistance(const double& distance);
00153 
00154 
00158    static DtSimComponent * creator(const DtString& name, 
00159       DtVrfObject* owner,
00160       DtSimManager* simManager, 
00161       DtComponentDescriptor* desc = 0,
00162       DtReaderWriterRegistry* parentRegistry = 0);
00163 
00164 protected:
00165    
00167    virtual bool createPorts();
00168 
00171    virtual void removeMissileFromActiveList(const DtEntityIdentifier& removeId);
00172 
00173 protected:
00174    
00176    DtLauncherController();
00177 
00179    DtLauncherController(const DtLauncherController & orig);
00180 
00182    const DtLauncherController & operator=(const DtLauncherController & 
00183       orig);
00184 
00185 
00186 protected:
00187 
00188    DtIfCreateVrfObject  myCreateMissileInfo;
00189    DtList               myActiveMissiles;
00190 
00193 
00199    DtObjectIdOutputPort*    myMissileIdPort;
00200 
00206    DtObjectIdOutputPort*    myTargetEntityIdPort;
00207 
00213    DtVectorOutputPort*    myTargetPointPort;
00214 
00216 
00220    double myAbandonPassedMissileDistance;
00221 
00222    bool myFirstTick;
00223 };
00224 
00225 #endif
00226 

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)