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
inverseMassAVector<float>inverseMassBVector<float>directionVector3WideangularImpulseToVelocityAVector3WideangularImpulseToVelocityBVector3WidecsiVector<float>velocityABodyVelocityWidevelocityBBodyVelocityWide
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
distanceVector<float>anchorOffsetAVector3WideanchorOffsetBVector3WidedirectionVector3WideangularJAVector3WideangularJBVector3Wide
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
inertiaABodyInertiaWideinertiaBBodyInertiaWideanchorOffsetAVector3WideanchorOffsetBVector3WidedistanceVector<float>directionVector3WidedtfloatspringSettingsSpringSettingsWidepositionErrorToVelocityVector<float>softnessImpulseScaleVector<float>effectiveMassVector<float>angularJAVector3WideangularJBVector3WideangularImpulseToVelocityAVector3WideangularImpulseToVelocityBVector3Wide
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
orientationAQuaternionWideabVector3WideorientationBQuaternionWidelocalOffsetAVector3WidelocalOffsetBVector3WideanchorOffsetAVector3WideanchorOffsetBVector3WideanchorOffsetVector3WidedistanceVector<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
dtVector<float>wsvABodyVelocityWidewsvBBodyVelocityWideprestepDataDistanceServoPrestepData
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
positionAVector3WideorientationAQuaternionWideinertiaABodyInertiaWidepositionBVector3WideorientationBQuaternionWideinertiaBBodyInertiaWidedtfloatinverseDtfloatprestepDistanceServoPrestepDataaccumulatedImpulsesVector<float>wsvABodyVelocityWidewsvBBodyVelocityWide
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
positionAVector3WideorientationAQuaternionWideinertiaABodyInertiaWidepositionBVector3WideorientationBQuaternionWideinertiaBBodyInertiaWideprestepDistanceServoPrestepDataaccumulatedImpulsesVector<float>wsvABodyVelocityWidewsvBBodyVelocityWide