src/main/java/org/a05annex/util/geo2d/KochanekBartelsSpline.java
@NotNull
    public ControlPoint insertControlPoint(double time) {
        // validity testing
        if (null == m_first || m_first == m_last) {
            throw new IllegalStateException("There is no path to insert control points into.");
        }
        if (time <= 0.0) {
            throw new IllegalArgumentException("The time for an inserted control point must be greater than 0.0.");
        } else if (time >= m_last.m_time) {
            throw new IllegalArgumentException(
                    "The time for an inserted control point must be less than the time of the last point.");
        }

        // get the point on the path at the specified time
        PathFollower pathFollower = new PathFollower(1.0);
        PathPoint pathPoint = pathFollower.getPointAt(time);
        return insertControlPoint(pathPoint);
    }
/**
     * Insert a control point at a specified time along the path. There must be a path (i.e. at least a start
     * and an end control point) before a control point can be inserted.
     *
     * @param time The time the point should be inserted, which must be greater than 0.0 and
     *             less than the time the path ends.
     * @return Returns the added control point.
     */
Insert a control point at a specified time along the path. There must be a path  before a control point can be inserted.

@param time The time the point should be inserted, which must be greater than 0.0 and
less than the time the path ends.
@return Returns the added control point.
Insert a control point at a specified time along the path . There must be a path before a control point can be inserted . @param time The time the point should be inserted which must be greater than 0 . 0 and less than the time the path ends . @return Returns the added control point .
@NotNull
    public ControlPoint insertControlPoint(double time) {
        if (null == m_first || m_first == m_last) {
            throw new IllegalStateException("There is no path to insert control points into.");
        }
        if (time <= 0.0) {
            throw new IllegalArgumentException("The time for an inserted control point must be greater than 0.0.");
        } else if (time >= m_last.m_time) {
            throw new IllegalArgumentException(
                    "The time for an inserted control point must be less than the time of the last point.");
        }
        PathFollower pathFollower = new PathFollower(1.0);
        PathPoint pathPoint = pathFollower.getPointAt(time);
        return insertControlPoint(pathPoint);
    }
@ NotNull public ControlPoint insertControlPoint ( double time ) { if ( null == m_first || m_first == m_last ) { throw new IllegalStateException ( "There is no path to insert control points into." ) ; } if ( time <= 0.0 ) { throw new IllegalArgumentException ( "The time for an inserted control point must be greater than 0.0." ) ; } else if ( time >= m_last . m_time ) { throw new IllegalArgumentException ( "The time for an inserted control point must be less than the time of the last point." ) ; } PathFollower pathFollower = new PathFollower ( 1.0 ) ; PathPoint pathPoint = pathFollower . getPointAt ( time ) ; return insertControlPoint ( pathPoint ) ; }
Insert a control point at a specified time along the path.
Insert a control point at a specified time along the path .
// validity testing // get the point on the path at the specified time