5# include <JoltPlugin/Constraints/JoltConstraintComponent.h>
7struct PL_JOLTPLUGIN_DLL plJoltAxis
9 using StorageType = plUInt8;
29PL_DECLARE_FLAGS_OPERATORS(plJoltAxis);
30PL_DECLARE_REFLECTABLE_TYPE(PL_JOLTPLUGIN_DLL, plJoltAxis);
36 PL_DECLARE_COMPONENT_TYPE(plJolt6DOFConstraintComponent,
plJoltConstraintComponent, plJolt6DOFConstraintComponentManager);
42 virtual void SerializeComponent(
plWorldWriter& stream)
const override;
43 virtual void DeserializeComponent(
plWorldReader& stream)
override;
50 virtual void CreateContstraintType(JPH::Body* pBody0, JPH::Body* pBody1)
override;
57 plJolt6DOFConstraintComponent();
58 ~plJolt6DOFConstraintComponent();
60 virtual void ApplySettings() final override;
62 void SetFreeLinearAxis(
plBitflags<plJoltAxis> flags);
63 plBitflags<plJoltAxis> GetFreeLinearAxis()
const {
return m_FreeLinearAxis; }
71 void SetLinearRangeX(
const plVec2& value);
72 const plVec2& GetLinearRangeX()
const {
return m_vLinearRangeX; }
73 void SetLinearRangeY(
const plVec2& value);
74 const plVec2& GetLinearRangeY()
const {
return m_vLinearRangeY; }
75 void SetLinearRangeZ(
const plVec2& value);
76 const plVec2& GetLinearRangeZ()
const {
return m_vLinearRangeZ; }
78 void SetLinearStiffness(
float f);
79 float GetLinearStiffness()
const {
return m_fLinearStiffness; }
81 void SetLinearDamping(
float f);
82 float GetLinearDamping()
const {
return m_fLinearDamping; }
88 plAngle GetSwingLimit()
const {
return m_SwingLimit; }
90 void SetSwingStiffness(
float f);
91 float GetSwingStiffness()
const {
return m_fSwingStiffness; }
93 void SetSwingDamping(
float f);
94 float GetSwingDamping()
const {
return m_fSwingDamping; }
99 void SetLowerTwistLimit(
plAngle f);
100 plAngle GetLowerTwistLimit()
const {
return m_LowerTwistLimit; }
102 void SetUpperTwistLimit(
plAngle f);
103 plAngle GetUpperTwistLimit()
const {
return m_UpperTwistLimit; }
105 void SetTwistStiffness(
float f);
106 float GetTwistStiffness()
const {
return m_fTwistStiffness; }
108 void SetTwistDamping(
float f);
109 float GetTwistDamping()
const {
return m_fTwistDamping; }
116 float m_fLinearStiffness = 0.0f;
117 float m_fLinearDamping = 0.0f;
128 float m_fSwingStiffness = 0.0f;
129 float m_fSwingDamping = 0.0f;
135 float m_fTwistStiffness = 0.0f;
136 float m_fTwistDamping = 0.0f;
Float wrapper struct for a safe usage and conversions of angles.
Definition Angle.h:10
Definition ComponentManager.h:88
Base class for all Jolt physics joints (constraints).
Definition JoltConstraintComponent.h:73
static constexpr plVec2Template< float > MakeZero()
Definition Vec2.h:49
Reads a world description from a stream. Allows to instantiate that world multiple times in different...
Definition WorldReader.h:47
Stores an entire plWorld in a stream.
Definition WorldWriter.h:13
The plBitflags class allows you to work with type-safe bitflags.
Definition Bitflags.h:82
A custom enum implementation that allows to define the underlying storage type to control its memory ...
Definition Enum.h:37
Enum
Definition JoltConstraintComponent.h:24