![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2007 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: surfEntMvAlg.h,v $ $Revision: 1.25 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00014 00015 #ifndef DtSurfEntMoveAlongControllerComponent_H_ 00016 #define DtSurfEntMoveAlongControllerComponent_H_ 00017 00018 #include "vrfmodel/surfEntMvToCtl.h" 00019 #include "vrfutil/lclVecIter.h" 00020 00021 class DtString; 00022 class DtSimManager; 00023 class DtRouteState; 00024 class DtSimMessage; 00025 00026 00049 #include "vrfmodel/vrfmodelDefines.h" 00050 class DT_DLL_vrfmodel DtSurfaceEntityMoveAlongController : 00051 public DtSurfaceEntityMoveToController 00052 { 00053 00054 public: 00055 00058 DtSurfaceEntityMoveAlongController(const DtString& name, 00059 DtVrfObject* owner, 00060 DtSimManager* simManager, 00061 DtComponentDescriptor* desc = 0, 00062 DtReaderWriterRegistry* parentRegistry = 0); 00063 00068 virtual ~DtSurfaceEntityMoveAlongController(); 00069 00071 virtual bool init(); 00072 00075 virtual DtString type() const; 00076 00084 static void moveAlongCallback(DtSimMessage* msg, void* usr); 00085 00094 virtual void processMoveAlongTask(DtSimMessage * msg); 00095 00100 static void routeChangedCallback(DtVrfObject* obj, void* user); 00108 virtual void processRouteChanged(DtVrfObject* obj); 00109 00118 virtual bool atGoal(); 00119 00128 virtual bool passedGoal(); 00129 00133 virtual void doMoving(double desiredSpeed); 00134 00142 virtual bool targetNextVertex(); 00143 00147 static DtSimComponent * creator(const DtString& name, 00148 DtVrfObject* owner, 00149 DtSimManager* simManager, 00150 DtComponentDescriptor* desc = 0, 00151 DtReaderWriterRegistry* parentRegistry = 0); 00152 00153 protected: 00155 DtSurfaceEntityMoveAlongController(); 00156 00158 DtSurfaceEntityMoveAlongController 00159 (const DtSurfaceEntityMoveAlongController& orig); 00160 00162 const DtSurfaceEntityMoveAlongController& operator= 00163 (const DtSurfaceEntityMoveAlongController& orig); 00164 00165 00175 virtual bool setupRoute(); 00176 00184 virtual bool setupControlPoint(); 00185 00189 virtual void registerTaskMsgCallbacks(); 00190 00193 virtual void emptyVertexList(); 00194 00195 protected: 00198 DtVrfObject* myRoute; 00199 00202 bool myRouteHasChanged; 00203 }; 00204 00205 #endif