VR-Forces 4.0.4 Class Documentation
include/vrfmodel/gndMovementChooserController.h
Go to the documentation of this file.
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

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)