![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2007 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: humanLauncherAcqrCtlr.h,v $ $Revision: 1.4 $ $State: Exp $ 00007 ** Created:1/30/07 MEM 00008 *******************************************************************************/ 00009 00012 00016 00017 #ifndef DtHumanLauncherAcquireController_H_ 00018 #define DtHumanLauncherAcquireController_H_ 00019 00020 #include "vrfmodel/humanAcquireController.h" 00021 00022 class DtIndLifeformLauncherAcquireDescriptor; 00023 class DtVrfObject; 00024 class DtTargetAcquireCriteria; 00025 00028 00037 #include "vrfmodel/vrfmodelDefines.h" 00038 class DT_DLL_vrfmodel DtHumanLauncherAcquireController : public DtHumanAcquireController 00039 { 00040 00041 public: 00042 00045 DtHumanLauncherAcquireController(const DtString& name, 00046 DtVrfObject* owner, 00047 DtSimManager* simManager, 00048 DtComponentDescriptor* desc = 0, 00049 DtReaderWriterRegistry* parentRegistry = 0); 00050 00052 virtual ~DtHumanLauncherAcquireController(); 00053 00054 virtual bool init(); 00055 00058 virtual DtString type() const; 00059 00062 virtual void selectATarget(); 00063 00064 virtual DtVrfObject* easier(DtVrfObject* entity1, DtVrfObject* entity2) const; 00065 00069 virtual DtVrfObject * chooseTarget(const DtEntityTargetList& targetList) const; 00070 00075 virtual bool targetIsAcquirable(const DtVrfObject* targetObj, 00076 const DtVector& localEyepoint) const; 00077 00080 virtual bool checkSpeedForAcquire(DtTargetAcquireCriteria * crit, const DtVrfObject * target) const; 00081 00084 virtual bool checkElevationForAcquire(DtTargetAcquireCriteria * crit, const DtVrfObject * target) const; 00085 00089 virtual bool checkElevAngleForAcquire(DtTargetAcquireCriteria * crit, const DtVrfObject * target) const; 00090 00094 static DtSimComponent * creator(const DtString& name, 00095 DtVrfObject* owner, 00096 DtSimManager* simManager, 00097 DtComponentDescriptor* desc = 0, 00098 DtReaderWriterRegistry* parentRegistry = 0); 00099 00100 00101 protected: 00102 00104 DtTargetAcquireCriteria * findAcquireCriteria(const DtEntityType & entityType) const; 00105 00107 DtHumanLauncherAcquireController(); 00108 00110 DtHumanLauncherAcquireController(const 00111 DtHumanLauncherAcquireController & orig); 00112 00114 const DtHumanLauncherAcquireController & operator=( 00115 const DtHumanLauncherAcquireController & orig); 00116 00117 00118 protected: 00119 00120 const DtIndLifeformLauncherAcquireDescriptor* myLauncherAcquireDescriptor; 00121 00122 protected: 00123 00126 00127 mutable std::set<DtString> myActiveTooFastTargets; 00128 mutable std::set<DtString> myActiveTooHighTargets; 00129 mutable std::set<DtString> myActiveTooSteepAngleTargets; 00130 00131 }; 00132 00133 #endif