![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 1999 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: msslMvToCntlr.h,v $ $Revision: 1.22 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00014 00015 00016 #ifndef DtMissileMoveToControllerComponent_H_ 00017 #define DtMissileMoveToControllerComponent_H_ 00018 00019 00020 #include "vrfmodel/missileCntlr.h" 00021 00022 class DtString; 00023 class DtSimManager; 00024 class DtConstrainedAnalogPort; 00025 class boolPort; 00026 class DtVector; 00027 class DtSimMessage; 00028 00029 00038 #include "vrfmodel/vrfmodelDefines.h" 00039 class DT_DLL_vrfmodel DtMissileMoveToControllerComponent : public DtMissileControllerComponent 00040 { 00041 public: 00042 00045 DtMissileMoveToControllerComponent(const DtString& name, 00046 DtVrfObject* owner, 00047 DtSimManager* simManager, 00048 DtComponentDescriptor* desc = 0, 00049 DtReaderWriterRegistry* parentRegistry = 0); 00050 00052 virtual ~DtMissileMoveToControllerComponent(); 00053 00055 virtual void tick(); 00056 00059 virtual DtString type() const; 00060 00061 00064 virtual void setTargetPoint(const DtVector& targetPoint); 00065 virtual const DtVector& targetPoint() const; 00066 00068 virtual void setTargetVelocity(const DtVector& arg); 00069 virtual const DtVector& targetVelocity() const; 00070 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 targetPointCallback(DtSimMessage * msg, void * usr); 00084 00087 virtual void processTargetPointTask(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 DtMissileMoveToControllerComponent(); 00102 00104 DtMissileMoveToControllerComponent( 00105 const DtMissileMoveToControllerComponent& orig); 00106 00108 const DtMissileMoveToControllerComponent& operator=( 00109 const DtMissileMoveToControllerComponent& orig); 00110 00112 virtual void registerTaskMsgCallbacks(); 00113 00116 virtual bool setupControlPoint(); 00117 00119 virtual double findDesiredSpeed(); 00120 00126 virtual void doMoving(); 00127 00128 protected: 00129 00132 double myDesiredSpeed; 00133 double myCurrentSpeed; 00134 00135 }; 00136 00137 #endif