Struct TwistServoFunctions
- Namespace
 - BepuPhysics.Constraints
 
- Assembly
 - BepuPhysics.dll
 
public struct TwistServoFunctions : ITwoBodyConstraintFunctions<TwistServoPrestepData, 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 Vector3Wide, ref Vector3Wide, in Vector3Wide, in Vector3Wide, in Vector<float>)
public static void ApplyImpulse(ref Vector3Wide angularVelocityA, ref Vector3Wide angularVelocityB, in Vector3Wide impulseToVelocityA, in Vector3Wide negatedImpulseToVelocityB, in Vector<float> csi)
  Parameters
angularVelocityAVector3WideangularVelocityBVector3WideimpulseToVelocityAVector3WidenegatedImpulseToVelocityBVector3WidecsiVector<float>
ComputeCurrentAngle(in Vector3Wide, in Vector3Wide, in Matrix3x3Wide, out Vector<float>)
public static void ComputeCurrentAngle(in Vector3Wide basisBX, in Vector3Wide basisBZ, in Matrix3x3Wide basisA, out Vector<float> angle)
  Parameters
ComputeEffectiveMass(float, in SpringSettingsWide, in Symmetric3x3Wide, in Symmetric3x3Wide, in Vector3Wide, out Vector3Wide, out Vector3Wide, out Vector<float>, out Vector<float>, out Vector<float>, out Vector3Wide)
public static void ComputeEffectiveMass(float dt, in SpringSettingsWide springSettings, in Symmetric3x3Wide inverseInertiaA, in Symmetric3x3Wide inverseInertiaB, in Vector3Wide jacobianA, out Vector3Wide impulseToVelocityA, out Vector3Wide negatedImpulseToVelocityB, out Vector<float> positionErrorToVelocity, out Vector<float> softnessImpulseScale, out Vector<float> effectiveMass, out Vector3Wide velocityToImpulseA)
  Parameters
dtfloatspringSettingsSpringSettingsWideinverseInertiaASymmetric3x3WideinverseInertiaBSymmetric3x3WidejacobianAVector3WideimpulseToVelocityAVector3WidenegatedImpulseToVelocityBVector3WidepositionErrorToVelocityVector<float>softnessImpulseScaleVector<float>effectiveMassVector<float>velocityToImpulseAVector3Wide
ComputeEffectiveMassContributions(in Symmetric3x3Wide, in Symmetric3x3Wide, in Vector3Wide, out Vector3Wide, out Vector3Wide, out Vector<float>)
public static void ComputeEffectiveMassContributions(in Symmetric3x3Wide inverseInertiaA, in Symmetric3x3Wide inverseInertiaB, in Vector3Wide jacobianA, out Vector3Wide impulseToVelocityA, out Vector3Wide negatedImpulseToVelocityB, out Vector<float> unsoftenedInverseEffectiveMass)
  Parameters
inverseInertiaASymmetric3x3WideinverseInertiaBSymmetric3x3WidejacobianAVector3WideimpulseToVelocityAVector3WidenegatedImpulseToVelocityBVector3WideunsoftenedInverseEffectiveMassVector<float>
ComputeJacobian(in QuaternionWide, in QuaternionWide, in QuaternionWide, in QuaternionWide, out Vector3Wide)
public static void ComputeJacobian(in QuaternionWide orientationA, in QuaternionWide orientationB, in QuaternionWide localBasisA, in QuaternionWide localBasisB, out Vector3Wide jacobianA)
  Parameters
orientationAQuaternionWideorientationBQuaternionWidelocalBasisAQuaternionWidelocalBasisBQuaternionWidejacobianAVector3Wide
ComputeJacobian(in QuaternionWide, in QuaternionWide, in QuaternionWide, in QuaternionWide, out Vector3Wide, out Vector3Wide, out Matrix3x3Wide, out Vector3Wide)
public static void ComputeJacobian(in QuaternionWide orientationA, in QuaternionWide orientationB, in QuaternionWide localBasisA, in QuaternionWide localBasisB, out Vector3Wide basisBX, out Vector3Wide basisBZ, out Matrix3x3Wide basisA, out Vector3Wide jacobianA)
  Parameters
orientationAQuaternionWideorientationBQuaternionWidelocalBasisAQuaternionWidelocalBasisBQuaternionWidebasisBXVector3WidebasisBZVector3WidebasisAMatrix3x3WidejacobianAVector3Wide
IncrementallyUpdateForSubstep(in Vector<float>, in BodyVelocityWide, in BodyVelocityWide, ref TwistServoPrestepData)
public static void IncrementallyUpdateForSubstep(in Vector<float> dt, in BodyVelocityWide wsvA, in BodyVelocityWide wsvB, ref TwistServoPrestepData prestepData)
  Parameters
dtVector<float>wsvABodyVelocityWidewsvBBodyVelocityWideprestepDataTwistServoPrestepData
Solve(in Vector3Wide, in QuaternionWide, in BodyInertiaWide, in Vector3Wide, in QuaternionWide, in BodyInertiaWide, float, float, ref TwistServoPrestepData, 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 TwistServoPrestepData prestep, ref Vector<float> accumulatedImpulses, ref BodyVelocityWide wsvA, ref BodyVelocityWide wsvB)
  Parameters
positionAVector3WideorientationAQuaternionWideinertiaABodyInertiaWidepositionBVector3WideorientationBQuaternionWideinertiaBBodyInertiaWidedtfloatinverseDtfloatprestepTwistServoPrestepDataaccumulatedImpulsesVector<float>wsvABodyVelocityWidewsvBBodyVelocityWide
WarmStart(in Vector3Wide, in QuaternionWide, in BodyInertiaWide, in Vector3Wide, in QuaternionWide, in BodyInertiaWide, ref TwistServoPrestepData, 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 TwistServoPrestepData prestep, ref Vector<float> accumulatedImpulses, ref BodyVelocityWide wsvA, ref BodyVelocityWide wsvB)
  Parameters
positionAVector3WideorientationAQuaternionWideinertiaABodyInertiaWidepositionBVector3WideorientationBQuaternionWideinertiaBBodyInertiaWideprestepTwistServoPrestepDataaccumulatedImpulsesVector<float>wsvABodyVelocityWidewsvBBodyVelocityWide