VR-Forces 4.0.4 Class Documentation
include/bhaveSim/bhaveMovementChooserController.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: bhaveMovementChooserController.h,v $ $Revision: 1.3 $ $State: Exp $
00015 *******************************************************************************/
00016 
00020 
00021 #pragma once
00022 
00023 #include <bhaveSim/bhaveSimDefines.h>
00024 #include <vrfmodel/gndMovementChooserController.h>
00025 #include <vrfmodel/railPathPlanner.h>
00026 #include "vrfmodel/railPathMetric.h"
00027 #include <vrfobjcore/railPathControllerPSR.h>
00028 #include "vrfobjcore/boolIOPort.h"
00029 #include <vrfobjparam/pathMoveDesc.h>
00030 #include <bhaveSim/bhaveMovementChooserDescriptor.h>
00031 #include "makSettingsManager/boolSetting.h"
00032 
00033 #include "vrfutil/simSettingsObjectTypes.h"
00034 #include "vrfcore/simMgr.h"
00035 #include "vrfcore/vrfSimSettingsManager.h"
00036 
00037 class DtPatrolRouteTask;
00038 class DtPatrolTwoPointsTask;
00039 
00040 namespace BHAVE
00041 {
00042 class DtVrfEntityBot;
00043 
00044    const char DtBhaveMovementChooserControllerType[] = "bhave-movement-chooser-controller";
00045 
00053 class DT_DLL_bhaveSim DtBhaveMovementChooserController : public DtGroundMovementChooserController
00054 {
00055 private:
00056 
00058    DtBhaveMovementChooserController();
00060    DtBhaveMovementChooserController(const DtBhaveMovementChooserController& orig);
00062    DtBhaveMovementChooserController& operator=(const DtBhaveMovementChooserController& orig);
00063 
00064 public:
00065 
00068    DtBhaveMovementChooserController(const DtString& name, DtVrfObject* owner, 
00069       DtSimManager* simManager, DtComponentDescriptor* desc = NULL,
00070       DtReaderWriterRegistry* parentRegistry = NULL);
00071 
00072    virtual ~DtBhaveMovementChooserController();
00073 
00079    virtual bool createPSR();
00080 
00082    virtual void registerTaskMsgCallbacks();
00083 
00085    virtual bool init();
00086 
00089    virtual void initPathPlanner();
00090 
00094    virtual void tick();
00095 
00096    virtual void processSwitchSystemResponse(DtSimMessage* msg);
00097 
00098 protected:
00099 
00101    virtual void processTaskCompleteReport(DtSimMessage* msg);
00102 
00105    virtual void processMovementTask(DtFollowEntityTask* taskMsg, int taskId);
00106    virtual void processMovementTask(DtMoveAlongTask* taskMsg, int taskId);
00107    virtual void processMovementTask(DtMoveToLocationTask* taskMsg, int taskId);
00108    virtual void processMovementTask(DtMoveToTask* taskMsg, int taskId);
00109    virtual void processMovementTask(DtPatrolRouteTask* taskMsg, int taskId);
00110    virtual void processMovementTask(DtPatrolTwoPointsTask* taskMsg, int taskId);
00111    virtual void processMovementTask(DtPlanAndMoveToTask* taskMsg, int taskId);
00112    virtual void processMovementTask(DtPlanAndMoveToLocationTask* taskMsg, int taskId);
00113 
00116    virtual bool attachToVRFRailMovement(DtVrfEntityBot* kynapseTarget, int currentSubtaskId, int currentTaskId);
00117 
00119    static void setLocationCallback(DtSimMessage* msg, void* usr);
00120 
00125    virtual void processSetLocation(DtSimMessage* msg);
00126 
00128    static void settingDrivingSideCallback(const DtSettingsObject* settingsObject, void* usr);
00129 
00131    virtual void processDrivingSide(const DtBoolSetting* setting);
00132 
00134    virtual void switchToRailMovement(int currentTaskId);
00135 
00137    virtual void switchToNormalMovement(int currentTaskId);
00138 
00139 public:
00140 
00144    static DtSimComponent * creator(const DtString& name, DtVrfObject* owner, 
00145       DtSimManager* simManager, DtComponentDescriptor* desc = 0,
00146       DtReaderWriterRegistry* parentRegistry = 0);
00147 
00148    virtual bool createPorts();
00149 
00150 protected:
00151 
00152    DtRailPathPlanner* myPathPlanner;
00153    DtRailPathMetric* myPathMetric;
00154    bool myUsingRails;
00155    DtBooleanInputPort* myDisableMovementChooserPort;
00156    bool myDrivingOnLeftEnabled;
00157    bool myIgnoreRoadDriving;
00158    
00159 
00162    DtRailPathControllerPSR* myRailProcessState;
00163 
00164    const DtBhaveMovementChooserControllerDescriptor* myPathDescriptor;
00165 };
00166 
00167 } //namespace BHAVE
00168 

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)