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 ); } }