VR-Forces 4.0.4 Class Documentation
include/vrfmodel/baseWeapCtlr.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2012 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 
00008 
00011  
00012 #pragma once
00013 
00014 #include "vrfmodel/mountingCtlr.h"
00015 #include "vrfutil/vlClock.h"
00016 #include <vl/hostStructs.h>
00017 #include "vrfutil/simMunition.h"
00018 #include <vlpi/disEnums.h>
00019 
00020 class DtAmmunitionOutputPort;
00021 class DtBooleanOutputPort;
00022 class DtInputPortGroup;
00023 class DtIntegerInputPort;
00024 
00025 class DtBaseWeaponControllerDescriptor;
00026 class DtVrfWeaponPSR;
00027 
00032 #include "vrfmodel/vrfmodelDefines.h"
00033 class DT_DLL_vrfmodel DtBaseWeaponController : public DtControllerComponent
00034 {
00035 
00036 public:
00037 
00040    DtBaseWeaponController(const DtString& name, 
00041       DtVrfObject* owner,
00042       DtSimManager* simManager, 
00043       DtComponentDescriptor* desc = 0,
00044       DtReaderWriterRegistry* parentRegistry = 0);
00045 
00047    virtual ~DtBaseWeaponController();
00048 
00050    virtual bool init();
00051 
00055    virtual bool postAddComponentsInit();
00056 
00058    virtual bool createMountingController();
00059 
00062    virtual DtString type() const;
00063 
00065    virtual void fire();
00066 
00069    virtual bool waitingForFire();
00070    
00072    virtual void setWaitingForFire(bool waiting);
00073    
00075    virtual bool createWeaponOutputPortGroup();
00076 
00078    virtual DtOutputPortGroup* weaponOutputPortGroup();
00079    
00081    virtual bool createWeaponInputPortGroup();
00082 
00084    virtual DtInputPortGroup* weaponInputPortGroup();
00085    
00088    virtual bool createTriggerPort();
00089    virtual DtBooleanOutputPort * triggerPort() const;
00090 
00091    virtual bool createLoadAmmunitionPort();
00092    virtual DtAmmunitionOutputPort * loadAmmunitionPort() const;
00093 
00094    virtual bool createLoadedPort();
00095    virtual DtBooleanOutputPort * loadedPort() const;
00096 
00097    virtual bool createArtPartTypePort();
00098    virtual DtIntegerInputPort * artPartTypePort() const;
00099 
00107    virtual void setPreloadWeapon(bool doPreload);
00108    virtual bool preloadWeapon() const;
00109 
00110    virtual void setLoadAmmoTime(DtTime loadAmmoTime);
00111    virtual DtTime loadAmmoTime() const;
00112 
00113    virtual void setUnloadAmmoTime(DtTime unloadAmmoTime);
00114    virtual DtTime unloadAmmoTime() const;
00115 
00119    virtual void setMaxVehicleSpeedToFire(DtReal maxVehicleSpeedToFire);
00120    virtual DtReal maxVehicleSpeedToFire() const;
00121 
00122    virtual bool weaponCorrectlyOriented() const;
00123 
00130    virtual void setMaxAngleOffBoresight(DtReal maxAngleOffBoresight);
00131    virtual DtReal maxAngleOffBoresight() const;
00132 
00133 
00135    virtual void initProcessSR();
00136    
00138    virtual DtBaseMountingController * mountingController();
00139 
00141    virtual void setCurrentMunitionName(const DtString & currentMunitionName);
00143    virtual const DtString & currentMunitionName() const;
00144 
00146    virtual DtVrfWeaponPSR* weaponProcessState();
00148    virtual const DtVrfWeaponPSR* weaponProcessState() const;
00149 
00152    virtual void tick();
00153    
00157    static DtSimComponent * creator(const DtString& name, 
00158       DtVrfObject* owner,
00159       DtSimManager* simManager, 
00160       DtComponentDescriptor* desc = 0,
00161       DtReaderWriterRegistry* parentRegistry = 0);
00162 
00163 protected:
00164    
00167    virtual bool createPortGroups();
00168 
00170    virtual bool createPorts();
00171 
00179    virtual void lookupAndCacheProcessSR();
00180 
00181 protected:
00182    
00184    DtBaseWeaponController();
00185 
00187    DtBaseWeaponController(const DtBaseWeaponController & orig);
00188 
00190    const DtBaseWeaponController & operator=(const DtBaseWeaponController & 
00191       orig);
00192 
00193 
00194 protected:
00195 
00198    
00201    DtOutputPortGroup* myWeaponOutputPortGroup;
00202    
00208    DtAmmunitionOutputPort* myLoadAmmunitionPort;
00209    
00215    DtBooleanOutputPort* myTriggerPort;
00216    
00222    DtBooleanOutputPort* myLoadedPort;
00223 
00226    DtInputPortGroup* myWeaponInputPortGroup;
00227    
00233    DtIntegerInputPort* myArtPartTypePort;
00234    
00236 
00242    bool          myDoWeaponPreload;
00243 
00247    bool myWaitingForFire;
00248 
00251    DtReal             myFireMaxVehicleSpeed;
00252 
00253    DtReal             myMaxAngleOffBoresight;
00254 
00256    const DtBaseWeaponControllerDescriptor* myBaseWeaponCtlrDesc;
00257    DtBaseMountingController*         myBaseMountingController;
00258 
00264    DtVrfWeaponPSR*                   myWeaponProcessState;
00265    
00266    bool myFirstTick;
00267 };

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)