![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2011 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: missileDistractionController.h,v $ $Revision: 1.1 $ $State: Exp $ 00007 ** Created: 5/31/11 MEM 00008 *******************************************************************************/ 00009 00013 00016 00017 #pragma once 00018 00019 #include "vrfobjcore/cntrlCmpnt.h" 00020 #include "vrfobjcore/filteredObjList.h" 00021 #include "vrfmodel/vrfmodelDefines.h" 00022 00023 class DtMissileDistractionControllerDescriptor; 00024 class DtCounterMeasureDistractionEntry; 00025 class DtMissileDistractionPSR; 00026 class DtMissileStateRepository; 00027 class DtSpatialFilterEvaluator; 00028 class DtCompositePredicate; 00029 class DtObjectType; 00030 00031 00046 class DT_DLL_vrfmodel DtMissileDistractionController : public DtControllerComponent 00047 { 00048 private: 00050 DtMissileDistractionController(); 00051 00053 DtMissileDistractionController(const DtMissileDistractionController & 00054 orig); 00055 00057 const DtMissileDistractionController & operator=(const 00058 DtMissileDistractionController & orig); 00059 00060 public: 00061 00064 DtMissileDistractionController(const DtString& name, 00065 DtVrfObject* owner, 00066 DtSimManager* simManager, 00067 DtComponentDescriptor* desc = 0, 00068 DtReaderWriterRegistry* parentRegistry = 0); 00069 00071 virtual ~DtMissileDistractionController(); 00072 00076 virtual bool init(); 00077 00080 virtual DtString type() const; 00081 00086 virtual void tick(); 00087 00091 static DtSimComponent * creator(const DtString& name, 00092 DtVrfObject* owner, 00093 DtSimManager* simManager, 00094 DtComponentDescriptor* desc = 0, 00095 DtReaderWriterRegistry* parentRegistry = 0); 00096 00097 protected: 00098 00104 virtual DtMissileDistractionPSR* createPSR(); 00105 00109 virtual const char* defaultPSRType() const; 00110 00114 virtual bool initTargetConeGeometry(); 00115 00119 virtual void setupGeometryForDetection(); 00120 00124 virtual void setUpDistractingObjectsList(); 00125 00128 virtual DtVector localTargetConePosition() const; 00129 00140 virtual bool processObjects(); 00141 00148 virtual bool detectObject(DtVrfObject* object,DtCounterMeasureDistractionEntry * entry); 00149 00152 virtual bool objectWithinTargetConeGeometry(DtVrfObject* object) const; 00153 00154 virtual bool isMissileDistracted(DtCounterMeasureDistractionEntry * entry) const; 00155 00156 protected: 00157 00158 DtManagedObjectListConstPtr myDistractingObjectList; 00159 const DtMissileDistractionControllerDescriptor* myMissileDistractionControllerDescriptor; 00160 00163 DtMissileDistractionPSR* myProcessState; 00164 DtMissileStateRepository * myLocalSR; 00165 00166 DtSpatialFilterEvaluator* myTargetConeGeometryEvaluator; 00167 DtVector myTargetConeApex; 00168 }; 00169