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
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
BodyVelocityWidevelocityB
BodyVelocityWidelinearImpulseToVelocityA
Vector3WideangularImpulseToVelocityA
Vector3WidenegatedLinearImpulseToVelocityB
Vector3WideangularImpulseToVelocityB
Vector3Widecsi
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
Vector3WideangularImpulseToVelocityA
Vector3WideangularImpulseToVelocityB
Vector3WideinertiaA
BodyInertiaWideinertiaB
BodyInertiaWidecsi
Vector<float>velocityA
BodyVelocityWidevelocityB
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
BodyVelocityWidevelocityB
BodyVelocityWidelinearVelocityToImpulseA
Vector3WideangularVelocityToImpulseA
Vector3WideangularVelocityToImpulseB
Vector3WidebiasImpulse
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
Vector3WideangularJB
Vector3WideinertiaA
BodyInertiaWideinertiaB
BodyInertiaWideeffectiveMassCFMScale
Vector<float>angularImpulseToVelocityA
Vector3WideangularImpulseToVelocityB
Vector3WideeffectiveMass
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
Vector3WideorientationA
QuaternionWideorientationB
QuaternionWidelocalPlaneNormalA
Vector3WidelocalOffsetA
Vector3WidelocalOffsetB
Vector3WideplaneNormalDot
Vector<float>normal
Vector3WideangularJA
Vector3WideangularJB
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
TJacobianModifierlocalOffsetA
Vector3WidelocalOffsetB
Vector3WidelocalPlaneNormal
Vector3WideorientationA
QuaternionWideinertiaA
BodyInertiaWideab
Vector3WideorientationB
QuaternionWideinertiaB
BodyInertiaWideeffectiveMassCFMScale
Vector<float>anchorA
Vector3WideanchorB
Vector3Widenormal
Vector3WideeffectiveMass
Vector<float>linearVelocityToImpulseA
Vector3WideangularVelocityToImpulseA
Vector3WideangularVelocityToImpulseB
Vector3WidelinearImpulseToVelocityA
Vector3WideangularImpulseToVelocityA
Vector3WidenegatedLinearImpulseToVelocityB
Vector3WideangularImpulseToVelocityB
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
BodyVelocityWidewsvB
BodyVelocityWideprestepData
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
Vector3WideorientationA
QuaternionWideinertiaA
BodyInertiaWidepositionB
Vector3WideorientationB
QuaternionWideinertiaB
BodyInertiaWidedt
floatinverseDt
floatprestep
LinearAxisServoPrestepDataaccumulatedImpulses
Vector<float>wsvA
BodyVelocityWidewsvB
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
Vector3WideorientationA
QuaternionWideinertiaA
BodyInertiaWidepositionB
Vector3WideorientationB
QuaternionWideinertiaB
BodyInertiaWideprestep
LinearAxisServoPrestepDataaccumulatedImpulses
Vector<float>wsvA
BodyVelocityWidewsvB
BodyVelocityWide