-- File: PadGraphics.mesa
-- Last edited by Bier on December 18, 1982 1:13 am
-- Author: Eric Bier on August 6, 1982 12:23 pm
-- Contents: Simple 2d graphics package for the scratchpad

DIRECTORY
 Graphics,
 Matrix3d,
 SVPolygon2d,
 SVVector2d;

PadGraphics: DEFINITIONS =

BEGIN

Path: TYPE = SVPolygon2d.Path;
Point2d: TYPE = Matrix3d.Point2d;
Polygon: TYPE = SVPolygon2d.Polygon;
Vector2d: TYPE = SVVector2d.Vector2d;

ScreenToPad: PROC [screenPoint: Point2d, origin: Point2d, scalar: REAL ← 1] RETURNS [padPoint: Point2d];
PadToScreen: PROC [padPoint: Point2d, origin: Point2d, scalar: REAL ← 1] RETURNS [screenPoint: Point2d];

MoveTo: PROC [dc: Graphics.Context, padPoint: Point2d, origin: Point2d];
DrawTo: PROC [dc: Graphics.Context, padPoint: Point2d, origin: Point2d];
MirrorMoveTo: PROC [dc: Graphics.Context, padPoint: Point2d, origin: Point2d];
MirrorDrawTo: PROC [dc: Graphics.Context, padPoint: Point2d, origin: Point2d];
DrawPathNeighborHood: PROC [dc: Graphics.Context, path: Path, index: NAT, origin: Point2d];
MirrorDrawPathNeighborHood: PROC [dc: Graphics.Context, path: Path, index: NAT, origin: Point2d];
DrawPolyNeighborHood: PROC [dc: Graphics.Context, poly: Polygon, index: NAT, origin: Point2d];
MirrorDrawPolyNeighborHood: PROC [dc: Graphics.Context, poly: Polygon, index: NAT, origin: Point2d];
DrawPath: PROC [dc: Graphics.Context, path: Path, origin: Point2d, scalar: REAL ← 1];
DrawPolygon: PROC [dc: Graphics.Context, poly: Polygon, origin: Point2d, scalar: REAL ← 1];
CrossHairs: PROC [dc: Graphics.Context, origin: Point2d];
DrawSquare: PROC [dc: Graphics.Context, side: REAL, center: Point2d, origin: Point2d];
MirrorDrawSquare: PROC [dc: Graphics.Context, side: REAL, center: Point2d, origin: Point2d];

Draw2dVector: PROC [dc: Graphics.Context, vec: Vector2d, at: Point2d, origin: Point2d];

END.