![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2003 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: gndFollwCtl.h,v $ $Revision: 1.31 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00014 00015 00016 #ifndef DtGroundFollowEntityController_H_ 00017 #define DtGroundFollowEntityController_H_ 00018 00019 00020 #include "vrfmodel/gndMvToDestinationCntlr.h" 00021 00022 #include <vlutil/vlString.h> 00023 #include <matrix/vlVector.h> 00024 00025 class DtSimManager; 00026 class DtSimMessage; 00027 class DtStringOutputPort; 00028 00029 00038 #include "vrfmodel/vrfmodelDefines.h" 00039 class DT_DLL_vrfmodel DtGroundFollowEntityController : public DtGroundMoveToDestinationControllerComponent 00040 { 00041 00042 public: 00043 00046 DtGroundFollowEntityController(const DtString& name, 00047 DtVrfObject* owner, 00048 DtSimManager* simManager, 00049 DtComponentDescriptor* desc = 0, 00050 DtReaderWriterRegistry* parentRegistry = 0); 00051 00053 virtual ~DtGroundFollowEntityController(); 00054 00057 virtual DtString type() const; 00058 00059 00063 static void followEntityCallback(DtSimMessage* msg, void* usrData); 00064 00065 virtual void processFollowEntityTask(DtSimMessage* msg); 00066 00071 virtual const DtString& entityToFollow(); 00072 virtual void setEntityToFollow(const DtString& entity); 00073 00076 virtual const DtVector& offsetVector() const; 00077 virtual void setOffsetVector(const DtVector& offsets); 00078 00082 static DtSimComponent * creator(const DtString& name, 00083 DtVrfObject* owner, 00084 DtSimManager* simManager, 00085 DtComponentDescriptor* desc = 0, 00086 DtReaderWriterRegistry* parentRegistry = 0); 00087 00089 virtual void registerTaskMsgCallbacks(); 00090 00094 virtual bool setupDestination(); 00095 00098 virtual bool passedDestination(); 00099 00102 virtual double findDesiredSpeed(); 00103 00107 virtual double findDesiredHeading(); 00108 00119 virtual void setupDestinationVector() const; 00120 00125 virtual DtAutoTransmissionGear determineGearSetting(); 00126 00130 virtual void stop(); 00131 00132 protected: 00135 DtGroundFollowEntityController(); 00136 00138 DtGroundFollowEntityController(const DtGroundFollowEntityController & 00139 orig); 00140 00142 const DtGroundFollowEntityController & operator=(const 00143 DtGroundFollowEntityController & orig); 00144 00145 bool createPorts(); 00146 00147 protected: 00148 00150 DtVrfObject* myEntityPointer; 00151 DtStringOutputPort * myFollowEntityOutputPort; 00152 }; 00153 00154 #endif 00155 00156 00157