Table of Contents

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

bool

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 Vector3Wide
angularImpulseToVelocityA Vector3Wide
angularImpulseToVelocityB Vector3Wide
csi Vector<float>
velocityA BodyVelocityWide
velocityB 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 Vector3Wide
anchorOffsetB Vector3Wide
direction Vector3Wide
angularJA Vector3Wide
angularJB 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 BodyInertiaWide
inertiaB BodyInertiaWide
anchorOffsetA Vector3Wide
anchorOffsetB Vector3Wide
distance Vector<float>
direction Vector3Wide
dt float
springSettings SpringSettingsWide
positionErrorToVelocity Vector<float>
softnessImpulseScale Vector<float>
effectiveMass Vector<float>
angularJA Vector3Wide
angularJB Vector3Wide
angularImpulseToVelocityA Vector3Wide
angularImpulseToVelocityB 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 QuaternionWide
ab Vector3Wide
orientationB QuaternionWide
localOffsetA Vector3Wide
localOffsetB Vector3Wide
anchorOffsetA Vector3Wide
anchorOffsetB Vector3Wide
anchorOffset Vector3Wide
distance 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 BodyVelocityWide
wsvB BodyVelocityWide
prestepData 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 Vector3Wide
orientationA QuaternionWide
inertiaA BodyInertiaWide
positionB Vector3Wide
orientationB QuaternionWide
inertiaB BodyInertiaWide
dt float
inverseDt float
prestep DistanceServoPrestepData
accumulatedImpulses Vector<float>
wsvA BodyVelocityWide
wsvB 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 Vector3Wide
orientationA QuaternionWide
inertiaA BodyInertiaWide
positionB Vector3Wide
orientationB QuaternionWide
inertiaB BodyInertiaWide
prestep DistanceServoPrestepData
accumulatedImpulses Vector<float>
wsvA BodyVelocityWide
wsvB BodyVelocityWide