vrecko
virtual reality framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
PhysXScene.h
Go to the documentation of this file.
1 #ifndef PhysXScene_h
2 #define PhysXScene_h
3 
4 #ifndef LINUX
5 #include <Windows.h>
6 #else
7 #endif
8 #include <vrecko/Ability.h>
9 #include <vreckoAP/Export>
10 
11 #include <vector>
12 #include <NxScene.h>
13 
14 
15 #include "PhysXObject.h"
16 #include "UpdatablePhysXObject.h"
17 #include "MaterialManager.h"
18 #include "PhysXVreckoMessages.h"
19 
20 
21 using namespace vrecko;
22 
23 namespace PhysXPlugin
24 {
25  class AP_EXPORT PhysXScene : public PhysXObject
26  {
27  private:
28  #ifndef LINUX
29  __int64 _gLastTime;
30  #else
31  struct timeval lasttv;
32  #endif
33 
34  NxReal UpdateTime();
35 
36  void StartPhysics();
37 
38  void GetPhysicsResults();
39 
40 
41 
42  std::string _sName;
43  std::string _simulationType;
44  NxSceneDesc _SceneDesc;
45 
46  NxScene* _pScene;
47 
48 
49  MaterialManager _materialManager;
50  std::map<std::string, NxActor*> _JointedActorMap;
51  typedef std::map<std::string, NxActor*>::iterator TJointedActorMapIter;
52 
53  std::vector<UpdatablePhysXObject*> _UPOHandler;
54  public:
55 
56 
57 
58  PhysXScene();
59  virtual ~PhysXScene(){}
60 
61 
62  void preInitialize();
63  void postInitialize();
64 
65 
66 // virtual void* processRequest(const std::string& input_name, void *value);
67 
68 
69  virtual bool loadXMLParameters(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *pParametersNode);
70 
71  void update(void);
72 
73  DECLARE_REQUEST_INPUT(RegisterPhysXObject, MessageUpdatablePhysXObjectPtr, MessageBool);
74  DECLARE_REQUEST_INPUT(PhysXScene, MessageVoid, MessageNxScenePtr);
75  DECLARE_REQUEST_INPUT(RegisterJointedActor, MessageNxActorWithName, MessageBool);
76  DECLARE_REQUEST_INPUT(GetJointedActor, MessageString, MessageNxActorPtr);
77  DECLARE_REQUEST_INPUT(Material, MessageString, MessageNxMaterialIndex);
78  };
79 }
80 
81 #endif