World.cpp 998 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. #include "StdAfx.h"
  2. #include <ode/ode.h>
  3. #include "World.h"
  4. namespace ODEManaged
  5. {
  6. //Constructor
  7. World::World(void)
  8. {
  9. /*dWorldID _temp = dWorldCreate();
  10. _id = _temp;*/
  11. _id = dWorldCreate();
  12. }
  13. //Destructor
  14. World::~World(void)
  15. {
  16. dWorldDestroy(this->_id);
  17. }
  18. //Methods
  19. //Id
  20. dWorldID World::Id()
  21. {
  22. return _id;
  23. }
  24. //SetGravity
  25. void World::SetGravity(double x, double y, double z)
  26. {
  27. dWorldSetGravity(this->_id, x, y, z);
  28. }
  29. //Overloaded GetGravity
  30. Vector3 World::GetGravity(void)
  31. {
  32. Vector3 retVal;
  33. dVector3 temp;
  34. dWorldGetGravity(this->_id, temp);
  35. retVal.x = temp[0];
  36. retVal.y = temp[1];
  37. retVal.z = temp[2];
  38. return retVal;
  39. }
  40. void World::GetGravity(double gravity __gc[])
  41. {
  42. dVector3 temp;
  43. dWorldGetGravity(this->_id, temp);
  44. gravity[0] = temp[0];
  45. gravity[1] = temp[1];
  46. gravity[2] = temp[2];
  47. }
  48. //Step
  49. void World::Step(double stepSize)
  50. {
  51. dWorldStep(this->_id, stepSize);
  52. }
  53. }