10#ifndef JPH_PLATFORM_DOXYGEN
38 JPH_ASSERT(inStiffness > 0.0f || inDamping > 0.0f);
50 mSoftness = 1.0f / (inDeltaTime * (inDamping + inDeltaTime * inStiffness));
55 mBias = inBias + inDeltaTime * inStiffness * mSoftness * inC;
86 outEffectiveMass = 1.0f / (inInvEffectiveMass + mSoftness);
102 outEffectiveMass = 1.0f / inInvEffectiveMass;
105 float omega = 2.0f * JPH_PI * inFrequency;
108 float k = outEffectiveMass *
Square(omega);
109 float c = 2.0f * outEffectiveMass * inDamping * omega;
132 switch (inSpringSettings.
mMode)
149 return mSoftness != 0.0f;
153 JPH_INLINE
float GetBias(
float inTotalLambda)
const
177 return mSoftness * inTotalLambda + mBias;
182 float mSoftness = 0.0f;
#define JPH_NAMESPACE_END
Definition Core.h:434
#define JPH_MSVC_SUPPRESS_WARNING(w)
Definition Core.h:338
#define JPH_NAMESPACE_BEGIN
Definition Core.h:428
#define JPH_ASSERT(...)
Definition IssueReporting.h:33
JPH_INLINE constexpr T Square(T inV)
Square a value.
Definition Math.h:70
@ MassNormalizedStiffnessAndDamping
Stiffness and damping divided by mass / inertia are specified (also known as acceleration mode)....
@ FrequencyAndDamping
Frequency and damping are specified.
@ StiffnessAndDamping
Stiffness and damping are specified.
Class used in other constraint parts to calculate the required bias factor in the lagrange multiplier...
Definition SpringPart.h:16
JPH_INLINE void CalculateSpringPropertiesWithMassNormalizedStiffnessAndDamping(float inDeltaTime, float inInvEffectiveMass, float inBias, float inC, float inStiffness, float inDamping, float &outEffectiveMass)
Definition SpringPart.h:123
JPH_INLINE bool IsActive() const
Returns if this spring is active.
Definition SpringPart.h:147
JPH_INLINE void CalculateSpringPropertiesWithFrequencyAndDamping(float inDeltaTime, float inInvEffectiveMass, float inBias, float inC, float inFrequency, float inDamping, float &outEffectiveMass)
Definition SpringPart.h:98
JPH_INLINE float GetBias(float inTotalLambda) const
Get total bias b, including supplied bias and bias for spring: lambda = J v + b.
Definition SpringPart.h:153
JPH_INLINE void CalculateSpringPropertiesWithStiffnessAndDamping(float inDeltaTime, float inInvEffectiveMass, float inBias, float inC, float inStiffness, float inDamping, float &outEffectiveMass)
Definition SpringPart.h:36
JPH_INLINE void CalculateSpringPropertiesWithBias(float inBias)
Definition SpringPart.h:21
JPH_INLINE void CalculateSpringPropertiesWithSettings(float inDeltaTime, float inInvEffectiveMass, float inBias, float inC, const SpringSettings &inSpringSettings, float &outEffectiveMass)
Definition SpringPart.h:130
Settings for a linear or angular spring.
Definition SpringSettings.h:24
float mStiffness
Definition SpringSettings.h:70
float mDamping
Definition SpringSettings.h:84
ESpringMode mMode
Selects the way in which the spring is defined. See the descriptions of the mFrequency,...
Definition SpringSettings.h:47
float mFrequency
Definition SpringSettings.h:54