 }

    setEffectorBone( boneIdx ){
        this._effBoneIdx = boneIdx;
        return this;
    }
    // #endregion

    resolve( chain, pose, debug ){
        // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        this._preProcess( chain, pose, debug );
        
        let dist = 0;
        for( let i=0; i < this.maxIteration; i++ ){
            // Move Effector point to target
            vec3.copy( this._points[ this._effLinkIdx ].pos, this._targetPos );
            FabricUtil.applyDistanceCo