PreviousUpNext

15.3.618  src/lib/x-kit/draw/beta2-spline.api

## beta2-spline.api

# Compiled by:
#     src/lib/x-kit/draw/xkit-draw.sublib



###                "Before I had chance in another war,
###                 the desire to kill people to whom I had
###                 not been introduced had passed away."
###
###                      -- Autobiography of Mark Twain


stipulate
    package g2d =  geometry2d;                  # geometry2d    is from   src/lib/std/2d/geometry2d.pkg
herein

    # This api is implemented in:
    #
    #     src/lib/x-kit/draw/beta2-spline.pkg
    #
    api Beta2_Spline {
        #

        curve:  (g2d::Point, g2d::Point, g2d::Point, g2d::Point)  ->  List(g2d::Point);
            #
            # Given four points (p0, p1, p2, p3), return a list of points corresponding to 
            # to a Bezier cubic section, starting at p0, ending at p3, with p1, p2 as
            # control points.


        simple_bspline:  List(g2d::Point) -> List(g2d::Point);
            #
            # Compute a simple B-spline with the given control points.


        b_spline:  List(g2d::Point) -> List(g2d::Point);
            #
            #   bSpline ([p1]@l@[pn]) === simpleBSpline ([p1, p1, p1]@l@[pn, pn, pn])
            # The replication of p1 and pn constrains the resultant spline 
            # to connect p1 and pn.


        closed_bspline:  List(g2d::Point) -> List(g2d::Point);
            #
            # Compute a closed B-spline.
            #   closedBSpline (l as a . b . c . _) = simpleBSpline (l@[a, b, c])
            # Note that the first and last points of the result are the same.
    };
end;


## COPYRIGHT (c) 1991 by AT&T Bell Laboratories  See SMLNJ-COPYRIGHT file for details.
## Subsequent changes by Jeff Prothero Copyright (c) 2010-2015,
## released per terms of SMLNJ-COPYRIGHT.


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext