BodyDef.cpp
上传用户:gb3593
上传日期:2022-01-07
资源大小:3028k
文件大小:3k
源码类别:

游戏引擎

开发平台:

Visual C++

  1. #pragma once
  2. #include "stdafx.h"
  3. #include "Vector.cpp"
  4. #include "ShapeDef.cpp"
  5. using namespace System::Collections::Generic;
  6. namespace Box2D
  7. {
  8. namespace Net
  9. {
  10. /// The type of body.
  11. public enum class BodyType
  12. {
  13. e_staticBody = ::b2BodyDef::e_staticBody, ///< A static body should not move and has infinite mass.
  14. e_dynamicBody = ::b2BodyDef::e_dynamicBody ///< A regular moving body.
  15. };
  16. public ref class BodyDef
  17. {
  18. internal:
  19. b2BodyDef *def;
  20. public:
  21. BodyDef() : def(new b2BodyDef()) { }
  22. virtual ~BodyDef()
  23. {
  24. delete def;
  25. }
  26. property Vector^ Position
  27. {
  28. Vector^ get()
  29. {
  30. return gcnew Vector(def->position);
  31. }
  32. void set(Vector^ value)
  33. {
  34. def->position = value->getVec2();
  35. }
  36. }
  37. property float32 Angle
  38. {
  39. float32 get()
  40. {
  41. return def->angle;
  42. }
  43. void set(float32 value)
  44. {
  45. def->angle = value;
  46. }
  47. }
  48. property float32 LinearDamping
  49. {
  50. float32 get()
  51. {
  52. return def->linearDamping;
  53. }
  54. void set(float32 value)
  55. {
  56. def->linearDamping = value;
  57. }
  58. }
  59. property float32 AngularDamping
  60. {
  61. float32 get()
  62. {
  63. return def->angularDamping;
  64. }
  65. void set(float32 value)
  66. {
  67. def->angularDamping = value;
  68. }
  69. }
  70. property bool AllowSleep
  71. {
  72. bool get()
  73. {
  74. return def->allowSleep;
  75. }
  76. void set(bool value)
  77. {
  78. def->allowSleep = value;
  79. }
  80. }
  81. property bool IsBullet
  82. {
  83. bool get()
  84. {
  85. return def->isBullet;
  86. }
  87. void set(bool value)
  88. {
  89. def->isBullet = value;
  90. }
  91. }
  92. property bool IsSleeping
  93. {
  94. bool get()
  95. {
  96. return def->isSleeping;
  97. }
  98. void set(bool value)
  99. {
  100. def->isSleeping = value;
  101. }
  102. }
  103. property bool FixedRotation
  104. {
  105. bool get()
  106. {
  107. return def->fixedRotation;
  108. }
  109. void set(bool value)
  110. {
  111. def->fixedRotation = value;
  112. }
  113. }
  114. property BodyType BodyType
  115. {
  116. Box2D::Net::BodyType get()
  117. {
  118. return (Box2D::Net::BodyType)def->type;
  119. }
  120. void set(Box2D::Net::BodyType value)
  121. {
  122. def->type = ((::b2BodyDef::Type)value);
  123. }
  124. }
  125. //TODO:
  126. /*property Object^ UserData
  127. {
  128. Object^ get()
  129. {
  130. Object^ ReturnMe;
  131. System::Runtime::InteropServices::Marshal::PtrToStructure((System::IntPtr)def->userData, ReturnMe);
  132. return ReturnMe;
  133. }
  134. void set(Object^ value)
  135. {
  136. def->userData = value;
  137. }
  138. }*/
  139. };
  140. }
  141. }