Struct DistanceServoFunctions
- Namespace
- BepuPhysics.Constraints
- Assembly
- BepuPhysics.dll
public struct DistanceServoFunctions : ITwoBodyConstraintFunctions<DistanceServoPrestepData, Vector<float>>
- Implements
- Inherited Members
Properties
RequiresIncrementalSubstepUpdates
Gets whether this constraint type requires incremental updates for each substep taken beyond the first.
public static bool RequiresIncrementalSubstepUpdates { get; }
Property Value
Methods
ApplyImpulse(in Vector<float>, in Vector<float>, in Vector3Wide, in Vector3Wide, in Vector3Wide, in Vector<float>, ref BodyVelocityWide, ref BodyVelocityWide)
public static void ApplyImpulse(in Vector<float> inverseMassA, in Vector<float> inverseMassB, in Vector3Wide direction, in Vector3Wide angularImpulseToVelocityA, in Vector3Wide angularImpulseToVelocityB, in Vector<float> csi, ref BodyVelocityWide velocityA, ref BodyVelocityWide velocityB)
Parameters
inverseMassA
Vector<float>inverseMassB
Vector<float>direction
Vector3WideangularImpulseToVelocityA
Vector3WideangularImpulseToVelocityB
Vector3Widecsi
Vector<float>velocityA
BodyVelocityWidevelocityB
BodyVelocityWide
ComputeJacobian(in Vector<float>, in Vector3Wide, in Vector3Wide, ref Vector3Wide, out Vector3Wide, out Vector3Wide)
public static void ComputeJacobian(in Vector<float> distance, in Vector3Wide anchorOffsetA, in Vector3Wide anchorOffsetB, ref Vector3Wide direction, out Vector3Wide angularJA, out Vector3Wide angularJB)
Parameters
distance
Vector<float>anchorOffsetA
Vector3WideanchorOffsetB
Vector3Widedirection
Vector3WideangularJA
Vector3WideangularJB
Vector3Wide
ComputeTransforms(in BodyInertiaWide, in BodyInertiaWide, in Vector3Wide, in Vector3Wide, in Vector<float>, ref Vector3Wide, float, in SpringSettingsWide, out Vector<float>, out Vector<float>, out Vector<float>, out Vector3Wide, out Vector3Wide, out Vector3Wide, out Vector3Wide)
public static void ComputeTransforms(in BodyInertiaWide inertiaA, in BodyInertiaWide inertiaB, in Vector3Wide anchorOffsetA, in Vector3Wide anchorOffsetB, in Vector<float> distance, ref Vector3Wide direction, float dt, in SpringSettingsWide springSettings, out Vector<float> positionErrorToVelocity, out Vector<float> softnessImpulseScale, out Vector<float> effectiveMass, out Vector3Wide angularJA, out Vector3Wide angularJB, out Vector3Wide angularImpulseToVelocityA, out Vector3Wide angularImpulseToVelocityB)
Parameters
inertiaA
BodyInertiaWideinertiaB
BodyInertiaWideanchorOffsetA
Vector3WideanchorOffsetB
Vector3Widedistance
Vector<float>direction
Vector3Widedt
floatspringSettings
SpringSettingsWidepositionErrorToVelocity
Vector<float>softnessImpulseScale
Vector<float>effectiveMass
Vector<float>angularJA
Vector3WideangularJB
Vector3WideangularImpulseToVelocityA
Vector3WideangularImpulseToVelocityB
Vector3Wide
GetDistance(in QuaternionWide, in Vector3Wide, in QuaternionWide, in Vector3Wide, in Vector3Wide, out Vector3Wide, out Vector3Wide, out Vector3Wide, out Vector<float>)
public static void GetDistance(in QuaternionWide orientationA, in Vector3Wide ab, in QuaternionWide orientationB, in Vector3Wide localOffsetA, in Vector3Wide localOffsetB, out Vector3Wide anchorOffsetA, out Vector3Wide anchorOffsetB, out Vector3Wide anchorOffset, out Vector<float> distance)
Parameters
orientationA
QuaternionWideab
Vector3WideorientationB
QuaternionWidelocalOffsetA
Vector3WidelocalOffsetB
Vector3WideanchorOffsetA
Vector3WideanchorOffsetB
Vector3WideanchorOffset
Vector3Widedistance
Vector<float>
IncrementallyUpdateForSubstep(in Vector<float>, in BodyVelocityWide, in BodyVelocityWide, ref DistanceServoPrestepData)
public static void IncrementallyUpdateForSubstep(in Vector<float> dt, in BodyVelocityWide wsvA, in BodyVelocityWide wsvB, ref DistanceServoPrestepData prestepData)
Parameters
dt
Vector<float>wsvA
BodyVelocityWidewsvB
BodyVelocityWideprestepData
DistanceServoPrestepData
Solve(in Vector3Wide, in QuaternionWide, in BodyInertiaWide, in Vector3Wide, in QuaternionWide, in BodyInertiaWide, float, float, ref DistanceServoPrestepData, ref Vector<float>, ref BodyVelocityWide, ref BodyVelocityWide)
public static void Solve(in Vector3Wide positionA, in QuaternionWide orientationA, in BodyInertiaWide inertiaA, in Vector3Wide positionB, in QuaternionWide orientationB, in BodyInertiaWide inertiaB, float dt, float inverseDt, ref DistanceServoPrestepData prestep, ref Vector<float> accumulatedImpulses, ref BodyVelocityWide wsvA, ref BodyVelocityWide wsvB)
Parameters
positionA
Vector3WideorientationA
QuaternionWideinertiaA
BodyInertiaWidepositionB
Vector3WideorientationB
QuaternionWideinertiaB
BodyInertiaWidedt
floatinverseDt
floatprestep
DistanceServoPrestepDataaccumulatedImpulses
Vector<float>wsvA
BodyVelocityWidewsvB
BodyVelocityWide
WarmStart(in Vector3Wide, in QuaternionWide, in BodyInertiaWide, in Vector3Wide, in QuaternionWide, in BodyInertiaWide, ref DistanceServoPrestepData, ref Vector<float>, ref BodyVelocityWide, ref BodyVelocityWide)
public static void WarmStart(in Vector3Wide positionA, in QuaternionWide orientationA, in BodyInertiaWide inertiaA, in Vector3Wide positionB, in QuaternionWide orientationB, in BodyInertiaWide inertiaB, ref DistanceServoPrestepData prestep, ref Vector<float> accumulatedImpulses, ref BodyVelocityWide wsvA, ref BodyVelocityWide wsvB)
Parameters
positionA
Vector3WideorientationA
QuaternionWideinertiaA
BodyInertiaWidepositionB
Vector3WideorientationB
QuaternionWideinertiaB
BodyInertiaWideprestep
DistanceServoPrestepDataaccumulatedImpulses
Vector<float>wsvA
BodyVelocityWidewsvB
BodyVelocityWide