![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 00002 /******************************************************************************* 00003 ** Copyright (c) 2009 MAK Technologies, Inc. 00004 ** All rights reserved. 00005 *******************************************************************************/ 00006 /******************************************************************************* 00007 * Copyright 2009 Autodesk, Inc. All rights reserved. 00008 * Use of this software is subject to the terms of the Autodesk license 00009 * agreement provided at the time of installation or download, or which otherwise 00010 * accompanies this software in either electronic or hard copy form. 00011 *******************************************************************************/ 00012 00013 /******************************************************************************* 00014 ** $RCSfile: gndMovementChooserController.h,v $ $Revision: 1.1 $ $State: Exp $ 00015 *******************************************************************************/ 00016 00019 00022 00023 #ifndef gndMovementChooserCtl_H_ 00024 #define gndMovementChooserCtl_H_ 00025 00026 #include "vrfmodel/vrfmodelDefines.h" 00027 00028 #include "vrfobjcore/multiTaskControllerComponent.h" 00029 #include "vrftasks/railMoveAlongTask.h" 00030 #include "vrfmsgs/setDtaRqMsg.h" 00031 #include "vrftasks/patrolRteTask.h" 00032 #include "vrftasks/patrolPtTask.h" 00033 00034 class DtMoveToTask; 00035 class DtRailMoveAlongTask; 00036 class DtMoveAlongTask; 00037 class DtMoveToLocationTask; 00038 class DtFollowEntityTask; 00039 class DtPlanAndMoveToTask; 00040 class DtPlanAndMoveToLocationTask; 00041 class DtGroundMovementChooserPSR; 00042 class DtTurnToHeadingTask; 00043 class DtRailRouteTask; 00044 00045 const char DtGroundMovementChooserControllerType[] = "ground-movement-chooser-controller"; 00046 00055 class DT_DLL_vrfmodel DtGroundMovementChooserController : public DtMultiTaskControllerComponent 00056 { 00057 private: 00058 00060 DtGroundMovementChooserController(); 00062 DtGroundMovementChooserController(const DtGroundMovementChooserController& orig); 00064 DtGroundMovementChooserController& operator=(const DtGroundMovementChooserController& orig); 00065 00066 public: 00067 00070 DtGroundMovementChooserController(const DtString& name, DtVrfObject* owner, 00071 DtSimManager* simManager, DtComponentDescriptor* desc = NULL, 00072 DtReaderWriterRegistry* parentRegistry = NULL); 00073 00074 virtual ~DtGroundMovementChooserController(); 00075 00076 virtual bool init(); 00077 00078 virtual bool createPSR(); 00079 00082 virtual DtString type() const; 00083 00086 virtual void registerTaskMsgCallbacks(); 00087 00089 virtual bool postAddComponentsInit(); 00090 00093 static void movementTaskCallback(DtSimMessage * msg, void * usr); 00094 00098 static void setMovementStrategyCallback(DtSimMessage*msg, void * usr); 00099 00100 virtual void processMovementStrategy(DtSimMessage * msg); 00101 00103 virtual void processMovementTask(DtSimMessage * msg); 00104 00107 static void taskCompleteReportCallback(DtSimMessage* msg, void* usr); 00108 00112 virtual void processTaskCompleteReport(DtSimMessage* msg); 00113 00116 static void switchSystemResponseCallback(DtSimMessage * msg, void * usr); 00117 00118 virtual void processSwitchSystemResponse(DtSimMessage* msg); 00119 00120 protected: 00121 00123 virtual void processMovementTask(DtFollowEntityTask* taskMsg, int taskId); 00124 00126 virtual void processMovementTask(DtMoveAlongTask* taskMsg, int taskId); 00127 00133 virtual void processMovementTask(DtRailRouteTask* taskMsg,int taskId); 00134 00137 virtual void processMovementTask(DtRailMoveAlongTask* taskMsg, int taskId); 00138 00140 virtual void processMovementTask(DtTaskMessage* taskMsg); 00141 00143 virtual void processMovementTask(DtMoveToTask* taskMsg, int taskId); 00144 00146 virtual void processMovementTask(DtMoveToLocationTask* taskMsg, int taskId); 00147 00148 virtual void processMovementTask(DtTurnToHeadingTask* taskMsg, int taskId); 00149 00151 virtual void processMovementTask(DtPlanAndMoveToTask* taskMsg, int taskId); 00152 00154 virtual void processMovementTask(DtPlanAndMoveToLocationTask* taskMsg, int taskId); 00155 00157 virtual void processMovementTask(DtPatrolRouteTask* taskMsg, int taskId); 00158 00160 virtual void processMovementTask(DtPatrolTwoPointsTask* taskMsg, int taskId); 00161 00163 virtual void sendSetSwitchRequest(const DtString & category,const DtString & deactivateSysName, 00164 const DtString & activateSysName); 00165 00166 public: 00167 00171 static DtSimComponent * creator(const DtString& name, DtVrfObject* owner, 00172 DtSimManager* simManager, DtComponentDescriptor* desc = 0, 00173 DtReaderWriterRegistry* parentRegistry = 0); 00174 00175 protected: 00176 DtGroundMovementChooserPSR * myProcessState; 00177 int mySystemSwitchTaskId; 00178 00179 }; 00180 00181 #endif