ConstraintPrismatic2D.h 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. // Copyright (c) 2008-2023 the Urho3D project
  2. // License: MIT
  3. #pragma once
  4. #include "../Physics2D/Constraint2D.h"
  5. namespace Urho3D
  6. {
  7. /// 2D prismatic constraint component.
  8. class URHO3D_API ConstraintPrismatic2D : public Constraint2D
  9. {
  10. URHO3D_OBJECT(ConstraintPrismatic2D, Constraint2D);
  11. public:
  12. /// Construct.
  13. explicit ConstraintPrismatic2D(Context* context);
  14. /// Destruct.
  15. ~ConstraintPrismatic2D() override;
  16. /// Register object factory.
  17. /// @nobind
  18. static void RegisterObject(Context* context);
  19. /// Set anchor.
  20. /// @property
  21. void SetAnchor(const Vector2& anchor);
  22. /// Set axis.
  23. /// @property
  24. void SetAxis(const Vector2& axis);
  25. /// Set enable limit.
  26. /// @property
  27. void SetEnableLimit(bool enableLimit);
  28. /// Set lower translation.
  29. /// @property
  30. void SetLowerTranslation(float lowerTranslation);
  31. /// Set upper translation.
  32. /// @property
  33. void SetUpperTranslation(float upperTranslation);
  34. /// Set enable motor.
  35. /// @property
  36. void SetEnableMotor(bool enableMotor);
  37. /// Set maxmotor force.
  38. /// @property
  39. void SetMaxMotorForce(float maxMotorForce);
  40. /// Set motor speed.
  41. /// @property
  42. void SetMotorSpeed(float motorSpeed);
  43. /// Return anchor.
  44. /// @property
  45. const Vector2& GetAnchor() const { return anchor_; }
  46. /// Return axis.
  47. /// @property
  48. const Vector2& GetAxis() const { return axis_; }
  49. /// Return enable limit.
  50. /// @property
  51. bool GetEnableLimit() const { return jointDef_.enableLimit; }
  52. /// Return lower translation.
  53. /// @property
  54. float GetLowerTranslation() const { return jointDef_.lowerTranslation; }
  55. /// Return upper translation.
  56. /// @property
  57. float GetUpperTranslation() const { return jointDef_.upperTranslation; }
  58. /// Return enable motor.
  59. /// @property
  60. bool GetEnableMotor() const { return jointDef_.enableMotor; }
  61. /// Return maxmotor force.
  62. /// @property
  63. float GetMaxMotorForce() const { return jointDef_.maxMotorForce; }
  64. /// Return motor speed.
  65. /// @property
  66. float GetMotorSpeed() const { return jointDef_.motorSpeed; }
  67. private:
  68. /// Return joint def.
  69. b2JointDef* GetJointDef() override;
  70. /// Box2D joint def.
  71. b2PrismaticJointDef jointDef_;
  72. /// Anchor.
  73. Vector2 anchor_;
  74. /// Axis.
  75. Vector2 axis_;
  76. };
  77. }