# CCDIKSolver

This class solves the Inverse Kinematics Problem with a CCD Algorithm.

`CCDIKSolver` is designed to work with instances of SkinnedMesh.

## Import

CCDIKSolver is an addon, and must be imported explicitly, see Installation#Addons.

    import { CCDIKSolver } from 'three/addons/animation/CCDIKSolver.js';

## Constructor

### new CCDIKSolver ( mesh : SkinnedMesh, iks : Array.<CCDIKSolver~IK> )

mesh | The skinned mesh.
iks | The IK objects. Default is `[]`.

## Properties

### .iks : Array.<CCDIKSolver~IK>

The IK objects.

### .mesh : SkinnedMesh

The skinned mesh.

## Methods

### .createHelper ( sphereSize : number ) : CCDIKHelper

Creates a helper for visualizing the CCDIK.

sphereSize | The sphere size.

Returns: The created helper.

### .update ( globalBlendFactor : number ) : CCDIKSolver

Updates all IK bones by solving the CCD algorithm.

globalBlendFactor | Blend factor applied if an IK chain doesn't have its own .blendFactor. Default is `1.0`.

Returns: A reference to this instance.

### .updateOne ( ik : CCDIKSolver~IK, overrideBlend : number ) : CCDIKSolver

Updates one IK bone solving the CCD algorithm.

ik | The IK to update.
overrideBlend | If the IK object does not define `blendFactor`, this value is used. Default is `1.0`.

Returns: A reference to this instance.

## Type Definitions

### .BoneLink

This type represents bone links.

index number | The index of a linked bone which refers to a bone in the `Skeleton.bones` array.
limitation number | Rotation axis.
rotationMin number | Rotation minimum limit.
rotationMax number | Rotation maximum limit.
enabled boolean | Whether the link is enabled or not. Default is `true`.

### .IK

This type represents IK configuration objects.

target number | The target bone index which refers to a bone in the `Skeleton.bones` array.
effector number | The effector bone index which refers to a bone in the `Skeleton.bones` array.
links Array.<CCDIKSolver~BoneLink> | An array of bone links.
iteration number | Iteration number of calculation. Smaller is faster but less precise. Default is `1`.
minAngle number | Minimum rotation angle in a step in radians.
maxAngle number | Minimum rotation angle in a step in radians.
blendFactor number | The blend factor.

## Source

examples/jsm/animation/CCDIKSolver.js