(******************************************************************************
*                                SCAN3D21.DEF                                 *
*                              ABO Software Dep.                              *
*                                                                             *
* Purpose : To provide routines for doing 3D spanning scanline conversion of  *
*         polygons.                                                           *
*                                                                             *
*   Notes : This module does not transform points to a viewport, and does no  *
*         clipping.                                                           *
*                                                                             *
*         Version Date : 22/10/92                                             *
******************************************************************************)
DEFINITION MODULE SCAN3D2;

FROM POLY3D1 IMPORT Poly3D;
FROM PNT3D1  IMPORT Point3D;
FROM POLY3I1 IMPORT Poly3I;
FROM PNT3I1  IMPORT Point3I;
FROM COLOR1  IMPORT ColorRGB;


(******************************************************************************
*                              scanpoly3I                                     *
*                                                                             *
*  Purpose : To create and initialise a polygon table entry given a polygon,  *
*          its normal and its color. This routine is for integer polygons.    *
*                                                                             *
*    Input : p        :the polygon                                            *
*            n        :the polygon's normal                                   *
*            c        :the polygon's color                                    *
*                                                                             *
*    Output: the polygon table now includes the new polygon                   *
*                                                                             *
*           Version Date : 22/10/92                                           *
******************************************************************************)
PROCEDURE scanpoly3I(
	p:Poly3I;
	n:Point3I;
	c:ColorRGB);


(******************************************************************************
*                              scanpoly3D                                     *
*                                                                             *
*  Purpose : To create and initialise a polygon table entry given a polygon,  *
*          its normal and its color. This routine is for real polygons.       *
*                                                                             *
*    Input : p        :the polygon                                            *
*            n        :the polygon's normal                                   *
*            c        :the polygon's color                                    *
*                                                                             *
*    Output: the polygon table now includes the new polygon                   *
*                                                                             *
*           Version Date : 22/10/92                                           *
******************************************************************************)
PROCEDURE scanpoly3D(
	p:Poly3D;
	n:Point3D;
	c:ColorRGB);


(******************************************************************************
*                              clearscan                                      *
*                                                                             *
*  Purpose : To free and re-initialize all polygon and edge table entrys.     *
*                                                                             *
*    Output: the polygon and edge tables are now empty                        *
*                                                                             *
*           Version Date : 22/10/92                                           *
******************************************************************************)
PROCEDURE clearscan;


(******************************************************************************
*                              displayscan                                    *
*                                                                             *
*  Purpose : To display all the polygons scanned since the scan table was last*
*          initialised, and initialise the scan table for next time.          *
*                                                                             *
*    Input : the scan tables.                                                 *
*                                                                             *
*    Output: the polygons are output to the screen.                           *
*                                                                             *
*    Notes : Only the polygons are written to the screen. Any areas not       *
*          covered by a polygon are not modified. This allows polygons to be  *
*          displayed over the top of other graphics drawn beforehand. Clearing*
*          the screen can be achieved using a graphics clear screen routine,  *
*          or a large black polygon of maximum depth scaned in.               *
*                                                                             *
*           Version Date : 22/10/92                                           *
******************************************************************************)
PROCEDURE displayscan;


END SCAN3D2.
