Table of Contents

Struct LinearAxisServoFunctions

Namespace
BepuPhysics.Constraints
Assembly
BepuPhysics.dll
public struct LinearAxisServoFunctions : ITwoBodyConstraintFunctions<LinearAxisServoPrestepData, 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(ref BodyVelocityWide, ref BodyVelocityWide, in Vector3Wide, in Vector3Wide, in Vector3Wide, in Vector3Wide, ref Vector<float>)

public static void ApplyImpulse(ref BodyVelocityWide velocityA, ref BodyVelocityWide velocityB, in Vector3Wide linearImpulseToVelocityA, in Vector3Wide angularImpulseToVelocityA, in Vector3Wide negatedLinearImpulseToVelocityB, in Vector3Wide angularImpulseToVelocityB, ref Vector<float> csi)

Parameters

velocityA BodyVelocityWide
velocityB BodyVelocityWide
linearImpulseToVelocityA Vector3Wide
angularImpulseToVelocityA Vector3Wide
negatedLinearImpulseToVelocityB Vector3Wide
angularImpulseToVelocityB Vector3Wide
csi Vector<float>

ApplyImpulse(in Vector3Wide, in Vector3Wide, in Vector3Wide, in BodyInertiaWide, in BodyInertiaWide, in Vector<float>, ref BodyVelocityWide, ref BodyVelocityWide)

public static void ApplyImpulse(in Vector3Wide linearJA, in Vector3Wide angularImpulseToVelocityA, in Vector3Wide angularImpulseToVelocityB, in BodyInertiaWide inertiaA, in BodyInertiaWide inertiaB, in Vector<float> csi, ref BodyVelocityWide velocityA, ref BodyVelocityWide velocityB)

Parameters

linearJA Vector3Wide
angularImpulseToVelocityA Vector3Wide
angularImpulseToVelocityB Vector3Wide
inertiaA BodyInertiaWide
inertiaB BodyInertiaWide
csi Vector<float>
velocityA BodyVelocityWide
velocityB BodyVelocityWide

ComputeCorrectiveImpulse(ref BodyVelocityWide, ref BodyVelocityWide, in Vector3Wide, in Vector3Wide, in Vector3Wide, in Vector<float>, in Vector<float>, in Vector<float>, out Vector<float>)

public static void ComputeCorrectiveImpulse(ref BodyVelocityWide velocityA, ref BodyVelocityWide velocityB, in Vector3Wide linearVelocityToImpulseA, in Vector3Wide angularVelocityToImpulseA, in Vector3Wide angularVelocityToImpulseB, in Vector<float> biasImpulse, in Vector<float> softnessImpulseScale, in Vector<float> accumulatedImpulse, out Vector<float> csi)

Parameters

velocityA BodyVelocityWide
velocityB BodyVelocityWide
linearVelocityToImpulseA Vector3Wide
angularVelocityToImpulseA Vector3Wide
angularVelocityToImpulseB Vector3Wide
biasImpulse Vector<float>
softnessImpulseScale Vector<float>
accumulatedImpulse Vector<float>
csi Vector<float>

ComputeEffectiveMass(in Vector3Wide, in Vector3Wide, in BodyInertiaWide, in BodyInertiaWide, in Vector<float>, out Vector3Wide, out Vector3Wide, out Vector<float>)

public static void ComputeEffectiveMass(in Vector3Wide angularJA, in Vector3Wide angularJB, in BodyInertiaWide inertiaA, in BodyInertiaWide inertiaB, in Vector<float> effectiveMassCFMScale, out Vector3Wide angularImpulseToVelocityA, out Vector3Wide angularImpulseToVelocityB, out Vector<float> effectiveMass)

Parameters

angularJA Vector3Wide
angularJB Vector3Wide
inertiaA BodyInertiaWide
inertiaB BodyInertiaWide
effectiveMassCFMScale Vector<float>
angularImpulseToVelocityA Vector3Wide
angularImpulseToVelocityB Vector3Wide
effectiveMass Vector<float>

ComputeJacobians(in Vector3Wide, in QuaternionWide, in QuaternionWide, in Vector3Wide, in Vector3Wide, in Vector3Wide, out Vector<float>, out Vector3Wide, out Vector3Wide, out Vector3Wide)

public static void ComputeJacobians(in Vector3Wide ab, in QuaternionWide orientationA, in QuaternionWide orientationB, in Vector3Wide localPlaneNormalA, in Vector3Wide localOffsetA, in Vector3Wide localOffsetB, out Vector<float> planeNormalDot, out Vector3Wide normal, out Vector3Wide angularJA, out Vector3Wide angularJB)

Parameters

ab Vector3Wide
orientationA QuaternionWide
orientationB QuaternionWide
localPlaneNormalA Vector3Wide
localOffsetA Vector3Wide
localOffsetB Vector3Wide
planeNormalDot Vector<float>
normal Vector3Wide
angularJA Vector3Wide
angularJB Vector3Wide

ComputeTransforms<TJacobianModifier>(ref TJacobianModifier, in Vector3Wide, in Vector3Wide, in Vector3Wide, in QuaternionWide, in BodyInertiaWide, in Vector3Wide, in QuaternionWide, in BodyInertiaWide, in Vector<float>, out Vector3Wide, out Vector3Wide, out Vector3Wide, out Vector<float>, out Vector3Wide, out Vector3Wide, out Vector3Wide, out Vector3Wide, out Vector3Wide, out Vector3Wide, out Vector3Wide)

public static void ComputeTransforms<TJacobianModifier>(ref TJacobianModifier jacobianModifier, in Vector3Wide localOffsetA, in Vector3Wide localOffsetB, in Vector3Wide localPlaneNormal, in QuaternionWide orientationA, in BodyInertiaWide inertiaA, in Vector3Wide ab, in QuaternionWide orientationB, in BodyInertiaWide inertiaB, in Vector<float> effectiveMassCFMScale, out Vector3Wide anchorA, out Vector3Wide anchorB, out Vector3Wide normal, out Vector<float> effectiveMass, out Vector3Wide linearVelocityToImpulseA, out Vector3Wide angularVelocityToImpulseA, out Vector3Wide angularVelocityToImpulseB, out Vector3Wide linearImpulseToVelocityA, out Vector3Wide angularImpulseToVelocityA, out Vector3Wide negatedLinearImpulseToVelocityB, out Vector3Wide angularImpulseToVelocityB) where TJacobianModifier : LinearAxisServoFunctions.IJacobianModifier

Parameters

jacobianModifier TJacobianModifier
localOffsetA Vector3Wide
localOffsetB Vector3Wide
localPlaneNormal Vector3Wide
orientationA QuaternionWide
inertiaA BodyInertiaWide
ab Vector3Wide
orientationB QuaternionWide
inertiaB BodyInertiaWide
effectiveMassCFMScale Vector<float>
anchorA Vector3Wide
anchorB Vector3Wide
normal Vector3Wide
effectiveMass Vector<float>
linearVelocityToImpulseA Vector3Wide
angularVelocityToImpulseA Vector3Wide
angularVelocityToImpulseB Vector3Wide
linearImpulseToVelocityA Vector3Wide
angularImpulseToVelocityA Vector3Wide
negatedLinearImpulseToVelocityB Vector3Wide
angularImpulseToVelocityB Vector3Wide

Type Parameters

TJacobianModifier

IncrementallyUpdateForSubstep(in Vector<float>, in BodyVelocityWide, in BodyVelocityWide, ref LinearAxisServoPrestepData)

public static void IncrementallyUpdateForSubstep(in Vector<float> dt, in BodyVelocityWide wsvA, in BodyVelocityWide wsvB, ref LinearAxisServoPrestepData prestepData)

Parameters

dt Vector<float>
wsvA BodyVelocityWide
wsvB BodyVelocityWide
prestepData LinearAxisServoPrestepData

Solve(in Vector3Wide, in QuaternionWide, in BodyInertiaWide, in Vector3Wide, in QuaternionWide, in BodyInertiaWide, float, float, ref LinearAxisServoPrestepData, 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 LinearAxisServoPrestepData 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 LinearAxisServoPrestepData
accumulatedImpulses Vector<float>
wsvA BodyVelocityWide
wsvB BodyVelocityWide

WarmStart(in Vector3Wide, in QuaternionWide, in BodyInertiaWide, in Vector3Wide, in QuaternionWide, in BodyInertiaWide, ref LinearAxisServoPrestepData, 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 LinearAxisServoPrestepData 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 LinearAxisServoPrestepData
accumulatedImpulses Vector<float>
wsvA BodyVelocityWide
wsvB BodyVelocityWide