Copyright (C) 1994, Digital Equipment Corp.
by Steve Glassman and Stephen Harrison
This interface provides operations on objects of type Path.T and of type R2Path.T. A Path.T is the path represented on an integer grid, a R2Path.T is a path represented by coordinates which are reals.
INTERFACER2PathExtra ; IMPORT Point, MG, Path, R2Path, Rect, Matrix2D; PROCEDURE TranslatePath (READONLY path: Path.T; READONLY delta: Point.T): Path.T;
Returnpathtranslated bydelta.
PROCEDURE R2PathToPath ( v : MG.V;
READONLY R2Path: R2Path.T;
READONLY matrix := Matrix2D.Identity): Path.T;
ConvertR2Pathto the equivalentPath.Ton an integer grid transformed bymatrix.
TYPE
Element = RECORD
pt: Point.T;
steps: INTEGER;
END;
SubPath = RECORD
start: Point.T;
elems: REF ARRAY OF Element := NIL;
closed: BOOLEAN;
END;
Segments <: PublicSegments;
PublicSegments = OBJECT subPaths: REF ARRAY OF SubPath := NIL; END;
PROCEDURE PathToSegments (v: MG.V; READONLY path: Path.T): Segments;
Convertpathto the correspondingSegmentstructure.
PROCEDURE PathBounds (READONLY path: Path.T): Rect.T;
Return the integer bounds of path. END R2PathExtra.