/**
 * Base class for IK solvers.
 *
 * @public
 */ class IKSolver {
    /** The IK chain to solve */ _chain;
    /** Maximum number of iterations */ _maxIterations;
    /** Convergence tolerance (distance threshold) */ _tolerance;
    /**
   * Create an IK solver.
   *
   * @param chain - The IK chain to solve
   * @param maxIterations - Maximum number of iterations (default: 10)
   * @param tolerance - Convergence tolerance in world units (default: 0.001)
   */ constructor(chain, maxIterations = 10, tolerance = 0.001){
        this._chain = chain;
        this._maxIterations = maxIterations;
        this._tolerance = tolerance;
    }
    /**
   * Get the IK chain.
   */ get chain() {
        return this._chain;
    }
    /**
   * Set maximum number of iterations.
   */ setMaxIterations(value) {
        this._maxIterations = Math.max(1, value);
    }
    /**
   * Get maximum number of iterations.
   */ getMaxIterations() {
        return this._maxIterations;
    }
    /**
   * Set convergence tolerance.
   */ setTolerance(value) {
        this._tolerance = Math.max(0, value);
    }
    /**
   * Get convergence tolerance.
   */ getTolerance() {
        return this._tolerance;
    }
}

export { IKSolver };
//# sourceMappingURL=ik_solver.js.map
