![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 00002 /******************************************************************************* 00003 ** Copyright (c) 2011 MAK Technologies, Inc. 00004 ** All rights reserved. 00005 *******************************************************************************/ 00006 00007 00008 #pragma once 00009 00010 #include <bhaveSim/bhaveSimDefines.h> 00011 #include <kyruntime.h> 00012 #include <vrfobjcore/vrfObject.h> 00013 #include <vrfobjcore/simObjSR.h> 00014 #include <vrfcgf/cgf.h> 00015 00016 #include <map> 00017 00018 namespace BHAVE 00019 { 00023 class DT_DLL_bhaveSim DtVrfBodyManager 00024 { 00025 public: 00026 00028 DtVrfBodyManager(); 00029 00031 virtual ~DtVrfBodyManager(); 00032 00034 virtual bool init(DtCgf* cgf); 00035 00037 virtual bool isEntity(DtVrfObject* vrfObject); 00038 00039 virtual bool createRemoteEntity(DtVrfObject* vrfObject); 00040 virtual bool removeObject(DtVrfObject* vrfObject); 00041 00042 virtual Kaim::Body* getBodyFromEntity(DtVrfObject* vrfObject); 00043 virtual DtVrfObject* getEntityFromBody(Kaim::Body* body); 00044 00045 virtual void updateAllKynapsePositions(); 00046 virtual void updateKynapsePosition(DtVrfObject* vrfObject, Kaim::Body* body); 00047 virtual void initializeKynapsePosition(DtVrfObject* vrfObject, Kaim::Body* body); 00048 00049 00051 static void objectAboutToBeAddedCallback(DtVrfObject* vrfObject, void* usr); 00052 00054 static void objectAboutToBeRemovedCallback(DtVrfObject* vrfObject, void* usr); 00055 protected: 00056 00057 virtual void updateOrientation( DtSimObjectStateRepository* movingSR, Kaim::Body &body ); 00058 virtual void updatePosition( DtSimObjectStateRepository* movingSR, const Dt3dBoundingVolume &boundingVolume, Kaim::Body &body ); 00059 00060 00061 protected: 00062 DtCgf* myCgf; 00063 00064 std::map<Kaim::Body*,DtVrfObject*> myBodyToEntityMap; 00065 std::map<DtVrfObject*,Kaim::Body*> myEntityToBodyMap; 00066 00067 }; 00068 00069 00070 00071 00072 } //namespace BHAVE 00073 00074