CMSC 635: Advanced Computer Graphics

Edge Library Information


Computer Science and Electrical Engineering Department
University of Maryland, Baltimore County

Spring 1999


The EDGE library is a high-level graphics library for education built upon the X-window system to allow graphical programming without being concerned with the details of X-windows programming.

Available Edge Information

  • Basic Edge Library Function definitions

  • Basic Edge Structure Definitions

  • General Guidelines for Using Edge

  • Edge Object Structure Definitions

  • Input Format Description

  • Structure Definitions for Solid

  • Shading parameters for Solid

  • Polymesh data format example


    GENERAL GUIDELINES FOR USING EDGE


    Basic Edge Library Functions

    Use the edge library calls directly with the sample programs skeleton.c and Makefile. The following page contains the declarations of the Edge library 435/635 routines to be used with the sample programs skeleton.c and Makefile.

    extern struct edge_td *edge_open(
            int flag,
            int width,
            int height,
            char *filename );
       defines a work area to be used by the program in absolute screen coordinates. 
       The work area has a local coordinate system with (0,0) in the lower left hand corner.
    
    extern void edge_close(
           edge_td *window );
    
       Closes the window created by edge_open.
    
    extern void edge_clear(
           edge_td *window );
       Clears the entire window.
    
    
    extern void edge_moves(
            edge_td *edge_window,
            int x,
            int y);
       Moves the current position (updates coordinate variables which are local
       to the library) to (x,y).
    
    extern void edge_draws(
             edge_td *edge_window,
             int x, 
             int y);
       Draws a line from the current position to (x,y) and makes (x,y) the new
       current position.
    
    extern void edge_drawline(
            edge_td *edge_window,
            int x1,
            int y1,
            int x2, 
            int y2);
       Draws a line from (x1,y1) to (x2,y2) and makes (x2,y2) the new current position.
    
    extern void edge_plotpoint(
            edge_td *edge_window,
            int x, 
            int y);
       plots a point (in black) in the work area.
    
    extern void edge_unplotpoint(
            edge_td *edge_window,
            int x, 
            int y);
       plots a point (in white) in the work area
    
    extern void edge_getcursor(
            edge_td *edge_window,
            int *x, 
            int *y, 
            int *b);
       On button hit, returns the x,y location of the mouse and the number of the 
       button that was pressed; buttons are numbered 0,1,2 going right to left!
    
    extern int edge_checkmouse(
            edge_td *edge_window,
            int *x, 
            int *y, 
            int *b);
    
    extern void edge_cleararea(
            edge_td *edge_window,
            int left, 
            int bottom, 
            int right, 
            int top);
       clears the work rectangle whose corners are specified
    
    extern int edge_screenbit(
            edge_td *edge_window,
            int x, 
            int y);
       Returns the value (0 or 1) of the pixel at (x,y); plotted (black) is '1' 
       and unplotted (white) is '0'.
    
    extern void edge_textput(
            edge_td *edge_window,
            int x, 
            int y, 
            char *str,
            int len);
       Places text in the work area with (x,y) being the upper left hand corner of
       the text.  A white border around the text overlays the workarea.
    
    extern void edge_textxor(
            edge_td *edge_window,
            int x, 
            int y, 
            char *str,
            int len);
       The text gets 'exclusive-or'ed onto the screen so that any pixel covered by 
       the color of the text will have its color reversed, instead of just being 
       made black or white.
    
    extern void edge_rectfill(
            edge_td *edge_window,
            int left, 
            int right, 
            int bot, 
            int top, 
            int color);
       fill the rectangle whose corners are specified with color
    



    Main Page | Syllabus | Class Calendar

    Course Assignments & Handouts | Links | Reading List