| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- // Copyright (c) 2008-2023 the Urho3D project
- // License: MIT
- #pragma once
- #include "../Physics2D/Constraint2D.h"
- namespace Urho3D
- {
- /// 2D motor constraint component.
- class URHO3D_API ConstraintMotor2D : public Constraint2D
- {
- URHO3D_OBJECT(ConstraintMotor2D, Constraint2D);
- public:
- /// Construct.
- explicit ConstraintMotor2D(Context* context);
- /// Destruct.
- ~ConstraintMotor2D() override;
- /// Register object factory.
- /// @nobind
- static void RegisterObject(Context* context);
- /// Set linear offset.
- /// @property
- void SetLinearOffset(const Vector2& linearOffset);
- /// Set angular offset.
- /// @property
- void SetAngularOffset(float angularOffset);
- /// Set max force.
- /// @property
- void SetMaxForce(float maxForce);
- /// Set max torque.
- /// @property
- void SetMaxTorque(float maxTorque);
- /// Set correction factor.
- /// @property
- void SetCorrectionFactor(float correctionFactor);
- /// Return linear offset.
- /// @property
- const Vector2& GetLinearOffset() const { return linearOffset_; }
- /// Return angular offset.
- /// @property
- float GetAngularOffset() const { return jointDef_.angularOffset; }
- /// Return max force.
- /// @property
- float GetMaxForce() const { return jointDef_.maxForce; }
- /// Return max torque.
- /// @property
- float GetMaxTorque() const { return jointDef_.maxTorque; }
- /// Return correction factor.
- /// @property
- float GetCorrectionFactor() const { return jointDef_.correctionFactor; }
- private:
- /// Return joint def.
- b2JointDef* GetJointDef() override;
- /// Box2D joint def.
- b2MotorJointDef jointDef_;
- /// Linear offset.
- Vector2 linearOffset_;
- };
- }
|