Namespace BepuPhysics.Constraints
Classes
- AreaConstraintTypeProcessor
Handles the solve iterations of a bunch of area constraints.
- BallSocketMotorTypeProcessor
Handles the solve iterations of a bunch of ball socket motor constraints.
- BallSocketServoTypeProcessor
Handles the solve iterations of a bunch of ball socket servo constraints.
- BallSocketShared
Provides shared functionality for constraints with jacobians similar to the BallSocket.
- BallSocketTypeProcessor
Handles the solve iterations of a bunch of ball socket constraints.
- CenterDistanceLimitTypeProcessor
Handles the solve iterations of a bunch of distance servos.
- CenterDistanceTypeProcessor
Handles the solve iterations of a bunch of distance servos.
- DistanceLimitTypeProcessor
Handles the solve iterations of a bunch of distance servos.
- DistanceServoTypeProcessor
Handles the solve iterations of a bunch of distance servos.
- FourBodyTypeProcessor<TPrestepData, TAccumulatedImpulse, TConstraintFunctions, TWarmStartAccessFilterA, TWarmStartAccessFilterB, TWarmStartAccessFilterC, TWarmStartAccessFilterD, TSolveAccessFilterA, TSolveAccessFilterB, TSolveAccessFilterC, TSolveAccessFilterD>
Shared implementation across all four body constraints.
- OneBodyTypeProcessor<TPrestepData, TAccumulatedImpulse, TConstraintFunctions, TWarmStartAccessFilterA, TSolveAccessFilterA>
Shared implementation across all one body constraints.
- ThreeBodyTypeProcessor<TPrestepData, TAccumulatedImpulse, TConstraintFunctions, TWarmStartAccessFilterA, TWarmStartAccessFilterB, TWarmStartAccessFilterC, TSolveAccessFilterA, TSolveAccessFilterB, TSolveAccessFilterC>
Shared implementation across all three body constraints.
- TwoBodyTypeProcessor<TPrestepData, TAccumulatedImpulse, TConstraintFunctions, TWarmStartAccessFilterA, TWarmStartAccessFilterB, TSolveAccessFilterA, TSolveAccessFilterB>
Shared implementation across all two body constraints.
- TypeProcessor
Superclass of constraint type batch processors. Responsible for interpreting raw type batches for the purposes of bookkeeping and solving.
- VolumeConstraintTypeProcessor
Handles the solve iterations of a bunch of volume constraints.
- WeldTypeProcessor
Handles the solve iterations of a bunch of ball socket constraints.
Structs
- AccessAll
Marks all body properties as necessary for gather/scatter.
- AccessNoInertia
Used for kinematic integration; the inertias are known ahead of time and there's no reason to gather them.
- AllowPoseIntegration
Marks a batch as integrating poses for any bodies with integration responsibility within the constraint batch. Constraints which need to be updated in response to pose integration will also have their UpdateForNewPose function called.
- AngularAxisGearMotor
Constrains body B's angular velocity around an axis anchored to body A to equal body A's velocity around that axis with a scaling factor applied.
- AngularAxisMotor
Constrains the relative angular velocity of two bodies around a local axis attached to body A to a target velocity.
- AngularHinge
Angular component of a hinge. Constrains the angular degrees of freedom of two bodies such that they can only rotate relative to each other around the hinge's axis.
- AngularMotor
Constrains the relative angular velocity between two bodies to a target.
- AngularServo
Constrains two bodies to have a target relative rotation.
- AngularSwivelHinge
Constrains two bodies with the angular component of a swivel hinge that allows rotation around two axes, like a laptop monitor hinge that allows flipping the screen.
- AreaConstraint
Constrains the area of a triangle connecting the centers of three bodies to match a goal area. Scaled volume computed from ||ab x ac||.
- BallSocket
Constrains a point on one body to a point on another body.
- BallSocketMotor
Controls the relative linear velocity from the center of body A to an attachment point on body B.
- BallSocketServo
Constrains a point on one body to a point on another body. Provides speed and force configuration that the BallSocket joint does not.
- BatchShouldAlwaysIntegrate
The batch was determined to have only constraints with integration responsibilities, so there's no need to check.
- BatchShouldConditionallyIntegrate
The batch was determined to have some constraints with integration responsibilities.
- BatchShouldNeverIntegrate
The batch was determined to have no constraints with integration responsibilities, so there's no need to check.
- CenterDistanceConstraint
Constrains the center of two bodies to be separated by a goal distance.
- CenterDistanceLimit
Constrains the center of two bodies to be separated by a distance within a range.
- DisallowPoseIntegration
Marks a batch as not integrating poses for any bodies within the constraint batch.
- DistanceLimit
Constrains points on two bodies to be separated by a distance within a range.
- DistanceServo
Constrains points on two bodies to be separated by a goal distance.
- FourBodyReferences
A constraint's body references. Stored separately from the iteration data since it is accessed by both the prestep and solve.
- Hinge
Constrains two bodies with a hinge. Equivalent to a BallSocket constraint and an AngularHinge constraint solved together.
- LinearAxisLimit
Constrains points on two bodies to a range of offsets from each other along a direction anchored to body A.
- LinearAxisMotor
Constrains points on two bodies to move relative to each other along a direction.
- LinearAxisServo
Constrains points on two bodies to be on a plane defined in the local space of one of the bodies.
- MotorSettings
Defines some of the shared behavior across motor constraints.
- OneBodyAngularMotor
Constrains the angular velocity of one body to the target.
- OneBodyAngularServo
Constrains a single body to a target orientation.
- OneBodyLinearMotor
Constrains a point on a body to have a target linear velocity.
- OneBodyLinearServo
Constrains a point on a body to a target location.
- PointOnLineServo
Constrains a point on body B to be on a line attached to body A.
- SwingLimit
Restricts axes attached to two bodies to fall within a maximum swing angle.
- SwivelHinge
Constrains two bodies with a swivel hinge that allows rotation around two axes, like a laptop monitor hinge that allows flipping the screen. Equivalent to a BallSocket constraint and an AngularSwivelHinge constraint solved together.
- ThreeBodyReferences
A constraint's body references. Stored separately from the iteration data since it is accessed by both the prestep and solve.
- TwistLimit
Constrains two bodies' rotations around attached twist axes to a range of permitted twist angles.
- TwistMotor
Constrains the twist velocity between two bodies to a target.
- TwistServo
Constrains two bodies to maintain a target twist angle around body-attached axes.
- TwoBodyReferences
A constraint's body references. Stored separately from the iteration data since it is accessed by both the prestep and solve. Two address streams isn't much of a problem for prefetching.
- TypeBatch
Stores the raw AOSOA formatted data associated with constraints in a type batch.
- VolumeConstraint
Constrains the volume of a tetrahedron connecting the centers of four bodies to match a goal volume. Scaled volume computed from (ab x ac) * ad; the volume may be negative depending on the winding of the tetrahedron.
- Weld
Constrains two bodies to maintain a relative position and orientation. All six degrees of freedom are solved simultaneously.
Interfaces
- IBatchIntegrationMode
Marks a type as determining the integration mode for a solver batch.
- IBatchPoseIntegrationAllowed
Marks a type as determining whether pose integration should be performed on bodies within the constraint batch.
- IBodyAccessFilter
Constrains which body properties should be accessed in a body during constraint data gathering/scattering.
- IConstraintDescription<TDescription>
Marks a type as a description of a constraint associated with a particular batch.
- IFourBodyConstraintDescription<TDescription>
Marks a type as a four body constraint description.
- IFourBodyConstraintFunctions<TPrestepData, TAccumulatedImpulse>
Prestep, warm start and solve iteration functions for a four body constraint type.
- IOneBodyConstraintDescription<TDescription>
Marks a type as a one body constraint description.
- IOneBodyConstraintFunctions<TPrestepData, TAccumulatedImpulse>
Prestep, warm start and solve iteration functions for a constraint type.
- ISortKeyGenerator<TBodyReferences>
Defines a function that creates a sort key from body references in a type batch. Used by constraint layout optimization.
- IThreeBodyConstraintDescription<TDescription>
Marks a type as a three body constraint description.
- IThreeBodyConstraintFunctions<TPrestepData, TAccumulatedImpulse>
Prestep, warm start and solve iteration functions for a three body constraint type.
- ITwoBodyConstraintDescription<TDescription>
Marks a type as a two body constraint description.
- ITwoBodyConstraintFunctions<TPrestepData, TAccumulatedImpulse>
Prestep, warm start and solve iteration functions for a two body constraint type.