VR-Forces 4.0.4 Class Documentation
include/bhaveSim/kynapseManager.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2009 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 
00006 #pragma once
00007 
00008 #include <bhaveSim/bhaveSimDefines.h>
00009 
00010 #include <map>
00011 #include <list>
00012 #include <vector>
00013 #include <string>
00014 
00016 #include <vrfcore/simMgr.h>
00017 #include <vrfobjcore/vrfObjMgr.h>
00018 #include <vrfobjcore/vrfObject.h>
00019 #include <vrfobjcore/vrfObjSR.h>
00020 #include <geometry/point.h>
00021 
00022 #include "bhaveMsgs/setBhaveMovementMode.h"
00023 #include "bhaveSim/bhaveFactories.h"
00024 #include "bhaveSim/vrfBodyManager.h"
00025 #include "bhaveSim/kynapseObstacleManager.h"
00026 
00027 #include <kyruntime.h>
00028 
00029 class DtCgf;
00030 class DtVrfObject;
00031 class DtObjectType;
00032 class DtString;
00033 class DtFilename;
00034 class PathDataMgr;
00035 class DtBhavePluginOptions;
00036 
00037 namespace BHAVE
00038 {
00039    class DtKynapseManager;
00040    class DtVrlLogBridge;
00041    class DtDrawingViewerBridge;
00042    class DtVrfCollisionBridge;
00043 
00044 
00045 #define BHAVE_PARAMS_DIR "../data/parameters/BHAVE"
00046 #define BHAVE_RUNTIME_CONFIG "bhave_conf.xml"
00047 
00051 class DT_DLL_bhaveSim DtKynapseManager
00052 {
00053 
00054 public:
00058    static DtKynapseManager* instance();
00059 
00061    virtual ~DtKynapseManager();
00062 
00064    virtual bool init(DtCgf* cgf);
00065 
00068    virtual void closeKynapseWorld();
00069 
00071    DtBhavePluginOptions* pluginOptions();
00072 
00073    //Accessors
00074    virtual Kaim::World* getKynapseWorld() {return myWorld;}
00075    virtual DtCgf* getCgf() {return myCgf;}
00076    virtual DtBhaveFactories* getFactories() {return DtBhaveFactories::instance();}
00077 
00079    virtual double getPathDataHeight(const DtString& pathDataName) const;
00080 
00081 protected:
00083    virtual void registerKynapseActuators();
00084 
00086    virtual void registerKynapseControllers();
00087 
00089    static void preLoadTerrainCallback(const DtFilename& filename, void* usr);
00091    virtual void processPreLoadTerrainCallback(const DtFilename& filename);
00093    static void postLoadTerrainCallback(const DtFilename& filename, void* usr);
00095    virtual void processPostLoadTerrainCallback(const DtFilename& filename);
00096 
00098    static void simTickCallback(void*);
00099 
00101    static void postTickCallback(void*);
00102 
00104    virtual void processSimTick(void*);
00105 
00107    virtual void processPostTick(void*);
00108 
00110    virtual void updateAllKynapsePositions();
00111 
00113    bool PrepareWorld();
00114 
00116    void disableBHAVETasks(DtVrfObject * vrfObject);
00117 
00119    Kaim::Bot* getKynBotByVrfObject(DtVrfObject * vrfObject);
00120 
00121 
00122 private:
00124    DtKynapseManager();
00125 
00128    bool BHAVELicenseCheck();
00129 
00130 protected:
00131 
00132    static DtKynapseManager* theKynapseManager;
00133    static Kaim::Engine* theKynapseEngine;
00134 
00135    DtBhavePluginOptions* myBhavePluginOptions;  
00136    DtCgf* myCgf;                                
00137    Kaim::World * myWorld;                       
00138    DtVrlLogBridge * myLogBridge;                
00139    DtDrawingViewerBridge * myDrawingBridge;     
00140    DtVrfCollisionBridge * myCollisionBridge;    
00141    DtKynapseObstacleManager* myObstacleManager; 
00142    DtVrfBodyManager* myBodyManager;             
00143 
00144    std::list<Kaim::PathData*> myPathDataList;     
00145    std::list<Kaim::Database*> myPathDatabaseList; 
00146 
00147    DtFilename myTerrainFilename; 
00148 
00151    std::map<DtString, double> myPathDataHeights;
00152 
00153 
00154    int myTickCount;
00155 };
00156 
00157 
00158 } //namespace BHAVE

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)