![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2003 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: msslTrkEntCtl.h,v $ $Revision: 1.21 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00014 00015 00016 #ifndef DtMissileTrackEntityController_H_ 00017 #define DtMissileTrackEntityController_H_ 00018 00019 00020 #include "vrfmodel/msslMvToCntlr.h" 00021 00022 #include <vlutil/vlString.h> 00023 #include <matrix/vlVector.h> 00024 #include "vrfobjcore/missileFlightPSR.h" 00025 00026 class DtSimManager; 00027 class DtSimMessage; 00028 00029 00039 #include "vrfmodel/vrfmodelDefines.h" 00040 class DT_DLL_vrfmodel DtMissileTrackEntityController : public DtMissileMoveToControllerComponent 00041 { 00042 00043 public: 00044 00047 DtMissileTrackEntityController(const DtString& name, 00048 DtVrfObject* owner, 00049 DtSimManager* simManager, 00050 DtComponentDescriptor* desc = 0, 00051 DtReaderWriterRegistry* parentRegistry = 0); 00052 00054 virtual ~DtMissileTrackEntityController(); 00055 00058 virtual DtString type() const; 00059 00062 virtual void setTargetEntity(const DtString& entity); 00063 virtual const DtString& targetEntity() const; 00064 00067 virtual DtMissileLaunchPhase launchPhase() const; 00068 virtual void setLaunchPhase(DtMissileLaunchPhase phase); 00069 00072 virtual void calculateSteering(const DtVector &relativeVelocity, 00073 const DtVector &localPosition, 00074 const DtVector &targetVelocity, 00075 const DtVector &targetPoint, 00076 double& maneuverAccelXOut, 00077 double& maneuverAccelYOut, 00078 double& maneuverAccelZOut); 00079 00083 static void targetEntityCallback(DtSimMessage * msg, void * usr); 00084 00087 virtual void processTargetEntityTask(DtSimMessage * msg); 00088 00092 static DtSimComponent * creator(const DtString& name, 00093 DtVrfObject* owner, 00094 DtSimManager* simManager, 00095 DtComponentDescriptor* desc = 0, 00096 DtReaderWriterRegistry* parentRegistry = 0); 00097 00098 protected: 00101 DtMissileTrackEntityController(); 00102 00104 DtMissileTrackEntityController(const DtMissileTrackEntityController & 00105 orig); 00106 00108 const DtMissileTrackEntityController & operator=(const 00109 DtMissileTrackEntityController & orig); 00110 00113 virtual void registerTaskMsgCallbacks(); 00114 00123 virtual bool setupControlPoint(); 00124 00126 virtual double findDesiredSpeed(); 00127 00128 protected: 00129 00131 DtVrfObject* myEntityPointer; 00132 }; 00133 00134 #endif