namespace Sandbox.Physics;
///
/// Spring related settings for joints such as .
///
[Expose]
public record struct PhysicsSpring
{
///
/// The stiffness of the spring
///
public float Frequency { get; set; }
///
/// The damping ratio of the spring, usually between 0 and 1
///
public float Damping { get; set; }
///
/// For weld joints only, maximum force. Not for breaking.
///
public float Maximum { get; set; }
public PhysicsSpring( float frequency = 0.0f, float damping = 0.0f, float maximum = -1.0f )
{
Frequency = frequency;
Damping = damping;
Maximum = maximum < 0.0f ? float.MaxValue : maximum;
}
public static implicit operator Vector3( PhysicsSpring s )
{
return new Vector3( s.Frequency, s.Damping, s.Maximum );
}
public static implicit operator PhysicsSpring( Vector3 s )
{
return new PhysicsSpring( s.x, s.y, s.z );
}
}