![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2007 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: surfEntFolwCtl.h,v $ $Revision: 1.21 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00014 00015 00016 #ifndef DtSurfEntFollowEntityController_H_ 00017 #define DtSurfEntFollowEntityController_H_ 00018 00019 #include "vrfmodel/surfEntMvToCtl.h" 00020 00021 class DtSimManager; 00022 class DtSimMessage; 00023 00024 00036 00037 #include "vrfmodel/vrfmodelDefines.h" 00038 class DT_DLL_vrfmodel DtSurfaceEntityFollowEntityController : 00039 public DtSurfaceEntityMoveToController 00040 { 00041 00042 public: 00043 00046 DtSurfaceEntityFollowEntityController(const DtString& name, 00047 DtVrfObject* owner, 00048 DtSimManager* simManager, 00049 DtComponentDescriptor* desc = 0, 00050 DtReaderWriterRegistry* parentRegistry = 0); 00051 00055 virtual ~DtSurfaceEntityFollowEntityController(); 00056 00059 virtual DtString type() const; 00060 00069 static void followEntityCallback(DtSimMessage* msg, void* usrData); 00070 00077 virtual void processFollowEntityTask(DtSimMessage* msg); 00078 00085 virtual const DtString& entityToFollow(); 00087 virtual void setEntityToFollow(const DtString& entity); 00088 00093 virtual const DtVector& offsetVector() const; 00094 virtual void setOffsetVector(const DtVector& offsets); 00096 00100 virtual void registerTaskMsgCallbacks(); 00101 00108 virtual bool setupControlPoint(); 00109 00126 virtual void tick(); 00127 00136 virtual void matchFollowedEntity(); 00137 00140 virtual double findDesiredSpeed(); 00141 00144 virtual void setupGoalVector(const DtVector & goalPosition); 00145 00148 virtual bool passedGoal(); 00149 00153 static DtSimComponent* creator(const DtString& name, 00154 DtVrfObject* owner, 00155 DtSimManager* simManager, 00156 DtComponentDescriptor* desc = 0, 00157 DtReaderWriterRegistry* parentRegistry = 0); 00158 00167 virtual void doMoving (double desiredSpeed); 00168 00169 protected: 00171 DtSurfaceEntityFollowEntityController(); 00172 00174 DtSurfaceEntityFollowEntityController( 00175 const DtSurfaceEntityFollowEntityController & orig); 00176 00178 const DtSurfaceEntityFollowEntityController & operator=( 00179 const DtSurfaceEntityFollowEntityController & orig); 00180 00181 protected: 00182 00184 DtVrfObject* myEntityPointer; 00185 00186 }; 00187 #endif