Table of Contents

Struct DistanceLimitFunctions

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

public static void ApplyImpulse(in Vector3Wide linearJacobianA, in Vector3Wide angularJacobianA, in Vector3Wide angularJacobianB, in BodyInertiaWide inertiaA, in BodyInertiaWide inertiaB, in Vector<float> csi, ref BodyVelocityWide velocityA, ref BodyVelocityWide velocityB)

Parameters

linearJacobianA Vector3Wide
angularJacobianA Vector3Wide
angularJacobianB Vector3Wide
inertiaA BodyInertiaWide
inertiaB BodyInertiaWide
csi Vector<float>
velocityA BodyVelocityWide
velocityB BodyVelocityWide

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

public static void ComputeJacobians(in Vector3Wide localOffsetA, in Vector3Wide positionA, in QuaternionWide orientationA, in Vector3Wide localOffsetB, in Vector3Wide positionB, in QuaternionWide orientationB, in Vector<float> minimumDistance, in Vector<float> maximumDistance, out Vector<int> useMinimum, out Vector<float> distance, out Vector3Wide direction, out Vector3Wide angularJA, out Vector3Wide angularJB)

Parameters

localOffsetA Vector3Wide
positionA Vector3Wide
orientationA QuaternionWide
localOffsetB Vector3Wide
positionB Vector3Wide
orientationB QuaternionWide
minimumDistance Vector<float>
maximumDistance Vector<float>
useMinimum Vector<int>
distance Vector<float>
direction Vector3Wide
angularJA Vector3Wide
angularJB Vector3Wide

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

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

Parameters

dt Vector<float>
wsvA BodyVelocityWide
wsvB BodyVelocityWide
prestepData DistanceLimitPrestepData

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

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