PreviousUpNext

14.4.145  Xgeometry

The standard library Xgeometry api the basic geometry types and operations.

The Xgeometry api is implemented by the src/lib/std/2d/xgeometry.pkg package.

The Xgeometry api source code is in src/lib/std/2d/xgeometry.api.

The above information is manually maintained and may contain errors.

api {    Point  = POINT {col:Int,  row:Int};
    Line  = LINE (Point , Point);
    Size  = SIZE {high:Int,  wide:Int};
    Box 
      = BOX {col:Int,  high:Int,  row:Int,  wide:Int};
    Arc  = ARC {angle1:Int,  angle2:Int,  col:Int,  high:Int, 
                row:Int,  wide:Int};
    Window_Site 
      = WINDOW_SITE {border_thickness:Int,  size:Size,  upperleft:Point};
    package point : api {
                        zero : Point;
                        row : Point -> Int;
                        col : Point -> Int;
                        scale : (Point , Int) -> Point;
                        add : (Point , Point) -> Point;
                        subtract : (Point , Point) -> Point;
                        add_size : (Point , Size) -> Point;
                        clip : (Point , Size) -> Point;
                        ne : (Point , Point) -> Bool;
                        eq : (Point , Point) -> Bool;
                        lt : (Point , Point) -> Bool;
                        le : (Point , Point) -> Bool;
                        gt : (Point , Point) -> Bool;
                        ge : (Point , Point) -> Bool;
                        in_box : (Point , Box) -> Bool;
                        bounding_box : List(Point ) -> Box;
                    };;
    package size : api {
                       add : (Size , Size) -> Size;
                       subtract : (Size , Size) -> Size;
                       scale : (Size , Int) -> Size;
                       eq : (Size , Size) -> Bool;
                   };;
    package box : api {
                      make : (Point , Size) -> Box;
                      upperleft : Box -> Point;
                      lowerright : Box -> Point;
                      size : Box -> Size;
                      middle : Box -> Point;
                      upperleft_and_size : Box -> (Point , Size);
                      clip_point : (Box , Point) -> Point;
                      translate : (Box , Point) -> Box;
                      rtranslate : (Box , Point) -> Box;
                      intersect : (Box , Box) -> Bool;
                      exception INTERSECTION;
                      intersection : (Box , Box) -> Box;
                      union : (Box , Box) -> Box;
                      xor : (Box , Box) -> List(Box );
                      in_box : (Box , Box) -> Bool;
                  };;
};


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext