Class FixedAngle
- Namespace
- Jitter2.Dynamics.Constraints
- Assembly
- Jitter2.dll
Constrains the relative orientation between two bodies, eliminating three degrees of rotational freedom.
public class FixedAngle : Constraint<FixedAngle.FixedAngleData>, IDebugDrawable
- Inheritance
-
FixedAngle
- Implements
- Inherited Members
Properties
Bias
Gets or sets the bias factor controlling how aggressively angular error is corrected.
public float Bias { get; set; }
Property Value
- float
Default is 0.2. Higher values correct errors faster but may cause instability.
Impulse
Gets the accumulated solver impulse from the last solved substep.
public JVector Impulse { get; }
Property Value
Softness
Gets or sets the softness (compliance) of the constraint.
public float Softness { get; set; }
Property Value
- float
Default is 0.001. Higher values allow more angular error but improve stability.
Methods
Create()
Sets the solver dispatch id used by this instance. Override this in derived classes to assign the correct registered solver pair. The id is later written into the unmanaged header when the constraint is enabled.
protected override void Create()
DebugDraw(IDebugDrawer)
Draws a debug visualization of this constraint.
public override void DebugDraw(IDebugDrawer drawer)
Parameters
drawerIDebugDrawerThe 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
drawerIDebugDrawersettingsDebugDrawSettings
Initialize()
Initializes the constraint using the current relative orientation of the bodies.
public void Initialize()
Remarks
Records the current relative orientation as the target. Default values: Softness = DefaultAngularSoftness, Bias = DefaultAngularBias.
IterateFixedAngle(ref ConstraintData, in TimeStep)
public static void IterateFixedAngle(ref ConstraintData constraint, in TimeStep timeStep)
Parameters
constraintConstraintDatatimeStepTimeStep
PrepareForIterationFixedAngle(ref ConstraintData, in TimeStep)
public static void PrepareForIterationFixedAngle(ref ConstraintData constraint, in TimeStep timeStep)
Parameters
constraintConstraintDatatimeStepTimeStep
ResetWarmStart()
Resets the cached warm-start state used by the solver for this constraint.
public override void ResetWarmStart()
Remarks
This clears only persistent solver impulses. Constraint configuration remains unchanged. Useful after restoring snapshots or other discontinuous state changes where preserving warm-starting is undesirable.