Click or drag to resize
DigitalRuneTwistSwingLimit Class
Defines a twist and swing limits to limit rotations.
Inheritance Hierarchy

Namespace: DigitalRune.Physics.Constraints
Assembly: DigitalRune.Physics (in DigitalRune.Physics.dll) Version: 1.10.0.0 (1.10.0.14427)
Syntax
public class TwistSwingLimit : Constraint

The TwistSwingLimit type exposes the following members.

Constructors
  NameDescription
Public methodTwistSwingLimit
Initializes a new instance of the TwistSwingLimit class
Top
Methods
  NameDescription
Public methodApplyImpulse
Called by the simulation to apply an impulse that satisfies the constraint.
(Inherited from Constraint.)
Public methodEquals
Determines whether the specified Object is equal to the current Object.
(Inherited from Object.)
Protected methodFinalize
Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Inherited from Object.)
Public methodGetHashCode
Serves as a hash function for a particular type.
(Inherited from Object.)
Public methodGetPointOnCone
Gets a point on the swing limit cone (for debug visualization).
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Protected methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Protected methodOnAddToSimulation
Called when this constraint is added to a simulation.
(Inherited from Constraint.)
Protected methodOnApplyImpulse
Called when the constraint impulse should be applied.
(Overrides ConstraintOnApplyImpulse.)
Protected methodOnChanged
Called when properties of this constraint were changed.
(Overrides ConstraintOnChanged.)
Protected methodOnRemoveFromSimulation
Called when this constraint is removed from a simulation.
(Inherited from Constraint.)
Protected methodOnSetup
Called when constraint should be set-up for a new time step.
(Overrides ConstraintOnSetup.)
Public methodSetup
Called by the simulation to prepare this constraint for constraint solving for a new time step.
(Inherited from Constraint.)
Public methodToString
Returns a string that represents the current object.
(Inherited from Object.)
Top
Properties
  NameDescription
Public propertyAnchorOrientationALocal
Gets or sets the constraint anchor orientation on BodyA in local space of BodyA.
Public propertyAnchorOrientationBLocal
Gets or sets the constraint anchor orientation on BodyB in local space of BodyB.
Public propertyAngularConstraintImpulse
Gets or sets the angular constraint impulse that was applied.
(Overrides ConstraintAngularConstraintImpulse.)
Public propertyBodyA
Gets or sets the first body.
(Inherited from Constraint.)
Public propertyBodyB
Gets or sets the second body.
(Inherited from Constraint.)
Public propertyCollisionEnabled
Gets or sets a value indicating whether collisions between BodyA and BodyB are disabled.
(Inherited from Constraint.)
Public propertyEnabled
Gets or sets a value indicating whether this constraint is enabled.
(Inherited from Constraint.)
Public propertyErrorReduction
Gets or sets the error reduction parameter.
Public propertyLinearConstraintImpulse
Gets or sets the linear constraint impulse that was applied.
(Overrides ConstraintLinearConstraintImpulse.)
Public propertyMaxForce
Gets or sets the maximal forces that are applied by this constraint.
Public propertyMaximum
Gets or sets the maximum movement limit on the twist and swing axes.
Public propertyMinimum
Gets or sets the minimum movement limit on the twist and swing axes.
Public propertyRestitution
Gets or sets the coefficient of restitution for limits.
Public propertySimulation
Gets the simulation to which this constraint belongs.
(Inherited from Constraint.)
Public propertySoftness
Gets or sets the softness.
Top
Remarks

This limit is often used to limit the rotation of ragdoll joints. AnchorOrientationALocal defines a coordinate frame fixed on the first body. AnchorOrientationBLocal defines a coordinate frame fixed on the second body. Twist is defined as the rotation of the x-axis (x is the twist axis). Swing is defined as the deviation of the x-axes. The y- and the z-axes fixed on the first body are the swing axes. The twist and swing values are angles in the range [-π, π]. Using the properties Minimum and Maximum the twist and swing angles can be limited. Limiting the swing angles creates a limit cone. Different minimum and maximum swing limits can be chosen for the swing axes. This can be used to create a deformed limit cone.

This constraint should not be used if the swing on a swing axis is locked (minimum and maximum is set to 0). In this case a different constraint type should be used (e.g. a HingeJoint). Using very non-uniform swing limits is also not recommended. The swing limits appear "smoother" if the cone is symmetric.

See Also