CcdIKSolver Class |
Namespace: DigitalRune.Animation.Character
The CcdIKSolver type exposes the following members.
Name | Description | |
---|---|---|
CcdIKSolver |
Initializes a new instance of the CcdIKSolver class.
|
Name | Description | |
---|---|---|
Equals | (Inherited from Object.) | |
Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) | |
GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) | |
OnInvalidate |
Called when the SkeletonPose was exchanged.
(Overrides IKSolverOnInvalidate.) | |
OnSolve |
Called when Solve(Single) is called.
(Overrides IKSolverOnSolve(Single).) | |
Solve |
Modifies the SkeletonPose to reach the Target position.
(Inherited from IKSolver.) | |
ToString | Returns a string that represents the current object. (Inherited from Object.) |
Name | Description | |
---|---|---|
AllowedDeviation |
Gets or sets the allowed distance error.
| |
BoneGain |
Gets or sets the bone gain.
| |
LimitBoneTransforms |
Gets or sets the a callback that enforces rotation limits.
| |
MaxAngularVelocity |
Gets or sets the maximal angular velocity per bone.
(Inherited from IKSolver.) | |
NumberOfIterations |
Gets or sets the number of iterations.
| |
RootBoneIndex |
Gets or sets the index of the root bone.
| |
SkeletonPose |
Gets or sets the skeleton pose.
(Inherited from IKSolver.) | |
Target |
Gets or sets the target position in model space.
(Inherited from IKSolver.) | |
TipBoneIndex |
Gets or sets the index of the tip bone.
| |
TipOffset |
Gets or sets the tip offset in tip bone space.
| |
Weight |
Gets or sets the weight.
(Inherited from IKSolver.) |
Name | Description | |
---|---|---|
IAnimatableObjectGetAnimatablePropertyT |
Gets the property with given name and type which can be animated.
(Inherited from IKSolver.) | |
IAnimatableObjectGetAnimatedProperties |
Gets the properties which are currently being animated.
(Inherited from IKSolver.) | |
INamedObjectName |
Not implemented.
(Inherited from IKSolver.) |
This IKSolver uses the cyclic-coordinate descent (CCD) algorithm to modify a bone chain to reach the Target position. RootBoneIndex determines the first bone in the chain. TipBoneIndex determines the last bone that is included in the chain. This IK solver rotates all bones in the chain, so that the tip of the bone chain reaches the Target position.
This solver uses an iterative algorithm. NumberOfIterations limits the maximal number allowed iterations. The algorithm ends early if the distance between the Target and the tip of the chain is less than AllowedDeviation.
Bone rotation limits:
Per default, the IKSolver assumes that the bones can rotate in any direction
without rotation limits. If the bone rotations should be limited (e.g. "do not rotate about
the y axis" or "do not rotate more than 45°"), then a LimitBoneTransforms
callback must be set. The LimitBoneTransforms callback must be a method that
checks the current bone rotations and removes any invalid rotations. See
LimitBoneTransforms for more details.
See also IKSolver for more general information.