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
velocityABodyVelocityWidevelocityBBodyVelocityWidelinearImpulseToVelocityAVector3WideangularImpulseToVelocityAVector3WidenegatedLinearImpulseToVelocityBVector3WideangularImpulseToVelocityBVector3WidecsiVector<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
linearJAVector3WideangularImpulseToVelocityAVector3WideangularImpulseToVelocityBVector3WideinertiaABodyInertiaWideinertiaBBodyInertiaWidecsiVector<float>velocityABodyVelocityWidevelocityBBodyVelocityWide
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
velocityABodyVelocityWidevelocityBBodyVelocityWidelinearVelocityToImpulseAVector3WideangularVelocityToImpulseAVector3WideangularVelocityToImpulseBVector3WidebiasImpulseVector<float>softnessImpulseScaleVector<float>accumulatedImpulseVector<float>csiVector<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
angularJAVector3WideangularJBVector3WideinertiaABodyInertiaWideinertiaBBodyInertiaWideeffectiveMassCFMScaleVector<float>angularImpulseToVelocityAVector3WideangularImpulseToVelocityBVector3WideeffectiveMassVector<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
abVector3WideorientationAQuaternionWideorientationBQuaternionWidelocalPlaneNormalAVector3WidelocalOffsetAVector3WidelocalOffsetBVector3WideplaneNormalDotVector<float>normalVector3WideangularJAVector3WideangularJBVector3Wide
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
jacobianModifierTJacobianModifierlocalOffsetAVector3WidelocalOffsetBVector3WidelocalPlaneNormalVector3WideorientationAQuaternionWideinertiaABodyInertiaWideabVector3WideorientationBQuaternionWideinertiaBBodyInertiaWideeffectiveMassCFMScaleVector<float>anchorAVector3WideanchorBVector3WidenormalVector3WideeffectiveMassVector<float>linearVelocityToImpulseAVector3WideangularVelocityToImpulseAVector3WideangularVelocityToImpulseBVector3WidelinearImpulseToVelocityAVector3WideangularImpulseToVelocityAVector3WidenegatedLinearImpulseToVelocityBVector3WideangularImpulseToVelocityBVector3Wide
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
dtVector<float>wsvABodyVelocityWidewsvBBodyVelocityWideprestepDataLinearAxisServoPrestepData
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
positionAVector3WideorientationAQuaternionWideinertiaABodyInertiaWidepositionBVector3WideorientationBQuaternionWideinertiaBBodyInertiaWidedtfloatinverseDtfloatprestepLinearAxisServoPrestepDataaccumulatedImpulsesVector<float>wsvABodyVelocityWidewsvBBodyVelocityWide
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
positionAVector3WideorientationAQuaternionWideinertiaABodyInertiaWidepositionBVector3WideorientationBQuaternionWideinertiaBBodyInertiaWideprestepLinearAxisServoPrestepDataaccumulatedImpulsesVector<float>wsvABodyVelocityWidewsvBBodyVelocityWide