Table of Contents

Namespace Jitter2.Dynamics.Constraints

Classes

AngularMotor

Represents a motor that drives relative angular velocity between two axes fixed in the reference frames of their respective bodies.

AngularServo

Drives body 2 toward a target orientation relative to body 1 using limited torque. Controls three angular degrees of freedom; translation remains free.

BallSocket

Implements a ball-and-socket joint that anchors a point on each body together, removing three translational degrees of freedom.

ConeLimit

Limits the relative tilt between two bodies, removing one angular degree of freedom when active.

Constraint

Base class for constraints that connect two rigid bodies and restrict their relative motion.

Constraint<T>

Generic base class for constraints that store custom data of type T.

DistanceLimit

Constrains the distance between a fixed point in the reference frame of one body and a fixed point in the reference frame of another body. A fixed limit removes one translational degree of freedom; a range limit acts when a boundary is reached. For a distance of zero, use the BallSocket constraint.

EllipticalConeLimit

Restricts relative swing to the region between two elliptical cones, leaving twist free.

FixedAngle

Constrains the relative orientation between two bodies, eliminating three degrees of rotational freedom.

HingeAngle

Constrains two bodies to rotate relative to each other around a single axis, removing two angular degrees of freedom. Optionally enforces angular limits.

HingeJoint

Constructs a hinge using a HingeAngle and a BallSocket, with an optional AngularMotor or TwistServo.

Joint

Base class for joints, which are composite constraints built from multiple Constraint instances.

LinearAxisServo

Drives the signed separation of two anchors along an axis attached to body 1 using limited force. Controls one translational degree of freedom; perpendicular movement and rotation remain free.

LinearMotor

A motor constraint that drives relative translational velocity along an axis fixed in the reference frame of each body.

LinearServo

Drives an anchor on body 2 toward a target position attached to body 1 using limited force. Controls three translational degrees of freedom; relative orientation remains free.

PointOnLine

Constrains a fixed point in the reference frame of one body to a line that is fixed in the reference frame of another body. This constraint removes two degrees of translational freedom; three if the limit is enforced.

PointOnPlane

Constrains a fixed point in the reference frame of one body to a plane that is fixed in the reference frame of another body. This constraint removes one degree of translational freedom if the limit is enforced.

PrismaticJoint

Constructs a prismatic joint using a PointOnLine constraint, either a FixedAngle or HingeAngle constraint, and an optional LinearMotor or LinearAxisServo drive.

TwistAngle

Constrains the relative twist of two bodies. This constraint removes one angular degree of freedom when the limit is enforced.

TwistServo

Drives relative twist toward a target angle using limited torque. Controls one angular degree of freedom; translation and swing remain free.

UniversalJoint

Creates a universal joint using a TwistAngle and a BallSocket, with an optional AngularMotor or AngularServo.

WeldJoint

Creates a rigid weld joint between two bodies using a FixedAngle constraint for orientation locking and a BallSocket constraint for positional locking. This effectively removes all relative motion between the connected bodies.

Structs

AngularLimit

Represents an angular limit defined by a minimum and maximum angle. Used by constraints to restrict rotational motion within a specified range.

AngularMotor.AngularMotorData
AngularServo.AngularServoData
BallSocket.BallSocketData
ConeLimit.ConeLimitData
ConstraintData

Low-level data for constraints, stored in unmanaged memory.

DistanceLimit.DistanceLimitData
EllipticalConeLimit.EllipticalConeLimitData
FixedAngle.FixedAngleData
HingeAngle.HingeAngleData
LinearAxisServo.LinearAxisServoData
LinearLimit

Represents a linear limit defined by a minimum and maximum distance. Used by constraints to restrict translational motion within a specified range.

LinearMotor.LinearMotorData
LinearServo.LinearServoData
PointOnLine.PointOnLineData
PointOnPlane.SliderData
SmallConstraintData

Low-level data for constraints that fit within ConstraintSizeSmall bytes.

TwistAngle.TwistLimitData
TwistServo.TwistServoData

Enums

JointDrive

Selects the optional drive created with a joint.