![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2003 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: humanAcquireController.h,v $ $Revision: 1.6 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00014 00015 #ifndef humanAcquireController_h 00016 #define humanAcquireController_h 00017 00018 #include "vrfobjcore/cntrlCmpnt.h" 00019 #include "vrfobjcore/entListIOPort.h" 00020 #include "vrfmodel/vrfmodelDefines.h" 00021 #include <vl/fireInter.h> 00022 00023 class DtIntegerOutputPort; 00024 class DtVrfBalGunPSR; 00025 class DtSimMessage; 00026 class DtAnalogOutputPort; 00027 class DtIndividualLifeformAcquireDescriptor; 00028 00032 class DT_DLL_vrfmodel DtHumanAcquireController : public DtControllerComponent 00033 { 00034 00035 public: 00036 00039 DtHumanAcquireController(const DtString& name, 00040 DtVrfObject* owner, 00041 DtSimManager* simManager, 00042 DtComponentDescriptor* desc = 0, 00043 DtReaderWriterRegistry* parentRegistry = 0); 00044 00046 virtual ~DtHumanAcquireController(); 00047 00048 virtual bool init(); 00049 00050 virtual bool createWeaponStatePort(); 00051 00052 virtual DtIntegerOutputPort *lifeformWeaponStatePort(); 00053 00054 virtual bool createTargetListPort(); 00055 00056 virtual bool createAimDirectionPort(); 00057 00060 virtual DtString type() const; 00061 00062 virtual void tick(); 00063 00066 virtual bool haveTarget() const; 00067 00073 virtual double findHeadingToCurrentTarget() const; 00074 00077 virtual void selectATarget(); 00078 00079 virtual bool inSector(DtVrfObject* entity) const; 00080 00081 virtual DtVrfObject* easier(DtVrfObject* entity1, DtVrfObject* entity2) const; 00082 00085 virtual void setAcquire(); 00086 00090 virtual void getWeaponProcessSR(); 00091 00094 virtual DtVrfObject * chooseTarget(const DtEntityTargetList& targetList) const; 00095 00099 virtual bool targetVisible(const DtVrfObject* targetObj, 00100 const DtVector& localEyepoint) const; 00101 00105 static DtSimComponent * creator(const DtString& name, 00106 DtVrfObject* owner, 00107 DtSimManager* simManager, 00108 DtComponentDescriptor* desc = 0, 00109 DtReaderWriterRegistry* parentRegistry = 0); 00110 00111 protected: 00112 00115 virtual bool haveAmmo() const; 00116 00118 virtual bool createPorts(); 00119 00122 virtual bool postAddComponentsInit(); 00123 00124 protected: 00125 00127 DtHumanAcquireController(); 00128 00130 DtHumanAcquireController(const 00131 DtHumanAcquireController & orig); 00132 00134 const DtHumanAcquireController & operator=( 00135 const DtHumanAcquireController & orig); 00136 00137 00138 protected: 00139 00142 00148 DtEntityListInputPort* myTargetListPort; 00149 00155 DtIntegerOutputPort* myLifeformWeaponStatePort; 00156 00163 DtAnalogOutputPort* myAimDirectionPort; 00164 00166 00167 DtEntityIdentifier myObjectId; 00168 bool myAcquiring; 00169 double myTimeAiming; 00170 DtVrfBalGunPSR* myWeaponProcessState; 00171 const DtIndividualLifeformAcquireDescriptor* myAcquireDescriptor; 00172 }; 00173 00174 #endif