Table of Contents

Class PointOnPlane

Namespace
Jitter2.Dynamics.Constraints
Assembly
Jitter2.dll

Limits an anchor on body 2 to a plane or a range of distances from a plane attached to body 1. Movement along the plane and relative rotation remain free.

public class PointOnPlane : Constraint<PointOnPlane.SliderData>, IDebugDrawable
Inheritance
PointOnPlane
Implements
Inherited Members

Properties

Bias

Gets or sets the bias factor controlling how aggressively positional error is corrected.

public float Bias { get; set; }

Property Value

float

Default is DefaultLinearBias. Higher values correct errors faster but may cause instability.

Impulse

Gets the accumulated solver impulse from the last solved substep.

public float Impulse { get; }

Property Value

float

Softness

Gets or sets the softness (compliance) of the constraint.

public float Softness { get; set; }

Property Value

float

Default is 0.00001. Higher values allow more positional error but improve stability.

Methods

Create()

Called when the world creates this constraint. Override to set DispatchId to the ID returned by registering the constraint's solver methods.

protected override void Create()

DebugDraw(IDebugDrawer)

Draws a debug visualization of this constraint.

public override void DebugDraw(IDebugDrawer drawer)

Parameters

drawer IDebugDrawer

The debug drawer to receive visualization primitives.

Exceptions

NotImplementedException

Thrown if the derived class does not override this method.

DebugDraw(IDebugDrawer, in DebugDrawSettings)

Draws this constraint using the supplied visualization settings. Custom constraints that only override DebugDraw(IDebugDrawer) use their default visualization.

public override void DebugDraw(IDebugDrawer drawer, in DebugDrawSettings settings)

Parameters

drawer IDebugDrawer
settings DebugDrawSettings

Initialize(JVector, JVector, JVector)

Initializes the constraint from world-space parameters.

public void Initialize(JVector axis, JVector anchor1, JVector anchor2)

Parameters

axis JVector

The plane normal in world space, fixed in the reference frame of body 1.

anchor1 JVector

Anchor point on body 1 defining the plane origin in world space.

anchor2 JVector

Anchor point on body 2 constrained to the plane in world space.

Remarks

Equal or reversed distance limits fix the distance at their midpoint. Use Fixed to keep the anchor on the plane. Default values: Bias = DefaultLinearBias, Softness = DefaultLinearSoftness.

Exceptions

ArgumentException

Thrown when axis is zero or contains a non-finite value, when anchor1 or anchor2 contains a non-finite value, or when either value in limit is NaN.

Initialize(JVector, JVector, JVector, LinearLimit)

Initializes the constraint from world-space parameters.

public void Initialize(JVector axis, JVector anchor1, JVector anchor2, LinearLimit limit)

Parameters

axis JVector

The plane normal in world space, fixed in the reference frame of body 1.

anchor1 JVector

Anchor point on body 1 defining the plane origin in world space.

anchor2 JVector

Anchor point on body 2 constrained to the plane in world space.

limit LinearLimit

Distance limit from the plane.

Remarks

Equal or reversed distance limits fix the distance at their midpoint. Use Fixed to keep the anchor on the plane. Default values: Bias = DefaultLinearBias, Softness = DefaultLinearSoftness.

Exceptions

ArgumentException

Thrown when axis is zero or contains a non-finite value, when anchor1 or anchor2 contains a non-finite value, or when either value in limit is NaN.

IteratePointOnPlane(ref ConstraintData, in TimeStep)

public static void IteratePointOnPlane(ref ConstraintData constraint, in TimeStep timeStep)

Parameters

constraint ConstraintData
timeStep TimeStep

PrepareForIterationPointOnPlane(ref ConstraintData, in TimeStep)

public static void PrepareForIterationPointOnPlane(ref ConstraintData constraint, in TimeStep timeStep)

Parameters

constraint ConstraintData
timeStep TimeStep

ResetWarmStart()

Clears impulses saved from the previous solve, without changing constraint settings.

public override void ResetWarmStart()

Remarks

Use after restoring a saved state or making a sudden change to the bodies, when impulses from their previous state should no longer be reused.

ToString()

Returns a short description of the constraint's ID, connected bodies, and state.

public override string ToString()

Returns

string