vrecko
virtual reality framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
BaseActor.h
Go to the documentation of this file.
1 #ifndef BaseActor_h
2 #define BaseActor_h
3 
4 #include "UpdatablePhysXObject.h"
5 #include "PhysXVreckoMessages.h"
6 
7 using namespace vrecko;
8 using namespace vrecko;
9 
10 namespace PhysXPlugin
11 {
13  {
14  private:
15  osg::Quat _firstRotation;
16  osg::Vec3 _firstPosition;
17 
18  bool BDynamicActorOutputs() const { return _bDynamicActorOutputs; }
19  void BDynamicActorOutputs(bool val);
20  void UpdateDynamicActorOutputs();
21  public:
22  BaseActor(const char* abName): UpdatablePhysXObject(abName),_bDynamicActorOutputs(false)
23  {
24  _move_step_limit = -1.0;
25  }
26  virtual ~BaseActor();
27 
28  virtual void Create();
29 
30  virtual bool loadXMLParameters(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *parametersNode);
31  virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *getXMLParameters(XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument *);
32 
33  virtual void postInitialize();
34 
35 
36 // virtual void processEvent(const std::string& input_name, void * value);
37  protected:
39  NxActorDesc _actorDesc;
40  NxBodyDesc _bodyDesc;
41  std::string _MaterialName;
42 
43  NxMaterialIndex _MaterialIndex;
44  NxActor* _pPO;
45 
47 
48  void UpdateEnvironmentObject();
49 
50  DECLARE_INPUT(ResetPosition, MessageBool);
51  DECLARE_INPUT(MoveTo, MessageVec3);
52  DECLARE_INPUT(RotateTo, MessageQuat);
53  DECLARE_INPUT(DynamicActorOutputs, MessageBool);
54 
55  DECLARE_OUTPUT(LinearMomentum, MessageVec3);
56  DECLARE_OUTPUT(AngularMomentum, MessageVec3);
57  DECLARE_OUTPUT(LinearVelocity, MessageVec3);
58  DECLARE_OUTPUT(AngularVelocity, MessageVec3);
59 
60  DECLARE_REQUEST_OUTPUT(Material, MessageString, MessageNxMaterialIndex);
61  DECLARE_REQUEST_OUTPUT(RegisterJointedActor, MessageNxActorWithName, MessageBool);
62  };
63 }
64 
65 #endif