constructor( mesh, iks = [], sphereSize = 0.25 ) {

		super();

		/**
		 * The skinned mesh this helper refers to.
		 *
		 * @type {SkinnedMesh}
		 */
		this.root = mesh;

		/**
		 * The IK objects.
		 *
		 * @type {Array<CCDIKSolver~IK>}
		 */
		this.iks = iks;

		this.matrix.copy( mesh.matrixWorld );
		this.matrixAutoUpdate = false;

		/**
		 * The helpers sphere geometry.
		 *
		 * @type {SkinnedMesh}
		 */
		this.sphereGeometry = new SphereGeometry( sphereSize, 16, 8 );

		/**
		 * The material for the target spheres.
		 *
		 * @type {MeshBasicMaterial}
		 */
		this.targetSphereMaterial = new MeshBasicMaterial( {
			color: new Color( 0xff8888 ),
			depthTest: false,
			depthWrite: false,
			transparent: true
		} );

		/**
		 * The material for the effector spheres.
		 *
		 * @type {MeshBasicMaterial}
		 */
		this.effectorSphereMaterial = new MeshBasicMaterial( {
			color: new Color( 0x88ff88 ),
			depthTest: false,
			depthWrite: false,
			transparent: true
		} );

		/**
		 * The material for the link spheres.
		 *
		 * @type {MeshBasicMaterial}
		 */
		this.linkSphereMaterial = new MeshBasicMaterial( {
			color: new Color( 0x8888ff ),
			depthTest: false,
			depthWrite: false,
			transparent: true
		} );

		/**
		 * A global line material.
		 *
		 * @type {LineBasicMaterial}
		 */
		this.lineMaterial = new LineBasicMaterial( {
			color: new Color( 0xff0000 ),
			depthTest: false,
			depthWrite: false,
			transparent: true
		} );

		this._init();

	}
@param {SkinnedMesh} mesh - The skinned mesh.
@param {Array<CCDIKSolver~IK>} [iks=[]] - The IK objects.
@param {number} [sphereSize=0.25] - The sphere size.