![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2011 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 00006 #pragma once 00007 00008 #include <bhaveSim/bhaveSpawnManager.h> 00009 #include <bhaveMsgs/ifCreateMultipleEntities.h> 00010 #include <bhaveSim/bhaveSimDefines.h> 00011 00012 #include <geometry/tdbextent.h> 00013 #include <vector> 00014 #include <list> 00015 00016 #include <kyruntime.h> 00017 00018 class DtCgf; 00019 class DtSimMessage; 00020 class DtObjectType; 00021 class DtVrfObject; 00022 00023 namespace BHAVE 00024 { 00025 class DtKynapseManager; 00026 00030 class DT_DLL_bhaveSim DtSimCreationManager 00031 { 00032 public: 00033 00034 DtSimCreationManager(DtCgf* cgf, DtKynapseManager* kynapseManager); 00035 virtual ~DtSimCreationManager(); 00036 00037 private: 00038 00040 DtSimCreationManager(const DtSimCreationManager& orig); 00042 DtSimCreationManager& operator=(const DtSimCreationManager& orig); 00043 00044 public: 00045 00047 virtual bool init(); 00048 00051 virtual bool initKynapseWorld(); 00052 00053 protected: 00054 00056 static void createMultipleEntitiesCallback(DtSimMessage* msg, void* usr); 00057 00061 virtual void processCreateMultipleEntities(DtSimMessage* msg); 00062 00066 virtual std::string getDatabaseFromObjectType( DtObjectType &objType ); 00067 00069 virtual void createSelectionGroups(const DtString groupName, const std::vector<DtString>& entNames); 00070 00073 virtual bool collisionWithOtherEntities(DtExtent& extent, const DtVector& pos, double radius); 00074 00076 virtual DtVrfObject* createEntity(const Kaim::Vec3f& location, const DtBufferSerialize::DtGroupEntityInfo& entityInfo); 00077 virtual DtVrfObject* createEntity(const DtVector& location, const DtBufferSerialize::DtGroupEntityInfo& entityInfo); 00078 00081 virtual void processCreateMultipleEntitiesNoPathdata(const DtBufferSerialize::DtGroupEntityInfo& entityInfo, 00082 DtVrfObject* areaObject, std::vector<DtString>& nameList); 00083 00084 protected: 00085 00086 DtCgf* myCgf; 00087 DtKynapseManager * myKynapseMgr; 00088 std::list<DtVector> myTempObjects; 00089 DtBhaveSpawnManager* mySpawnManager; 00090 Kaim::World* myCurrentWorld; 00091 00092 }; 00093 }