DIRECTORY CD, Imager; CDCurves: CEDAR DEFINITIONS = BEGIN CurvePtr: TYPE = REF CurveRec; CurveRec: TYPE = RECORD [points: LIST OF CD.Position, w: CD.Number_0, path: Imager.Trajectory]; splineClass: PRIVATE CD.ObjectClass; lineClass: PRIVATE CD.ObjectClass; polygonClass: PRIVATE CD.ObjectClass; filledCurveClass: PRIVATE CD.ObjectClass; IsLine: PROC [ob: CD.Object] RETURNS [BOOL] = INLINE { RETURN [ob.class = lineClass] }; IsSpline: PROC [ob: CD.Object] RETURNS [BOOL] = INLINE { RETURN [ob.class = splineClass] }; IsPolygon: PROC [ob: CD.Object] RETURNS [BOOL] = INLINE { RETURN [ob.class = polygonClass] }; IsFilledCurve: PROC [ob: CD.Object] RETURNS [BOOL] = INLINE { RETURN [ob.class = filledCurveClass] }; CreateLine: PROC [points: LIST OF CD.Position, w: CD.Number, layer: CD.Layer] RETURNS [ob: CD.Object, offset: CD.Position]; CreateSpline: PROC [points: LIST OF CD.Position, w: CD.Number, layer: CD.Layer] RETURNS [ob: CD.Object, offset: CD.Position]; CreatePolygon: PROC [points: LIST OF CD.Position, layer: CD.Layer] RETURNS [ob: CD.Object, offset: CD.Position]; CreateFilledCurve: PROC [points: LIST OF CD.Position, layer: CD.Layer] RETURNS [ob: CD.Object, offset: CD.Position]; END. °CDCurves.mesa Copyright c 1986 by Xerox Corporation. All rights reserved. by Christian Jacobi, June 18, 1986 3:52:20 pm PDT Last Edited by: Jacobi June 19, 1986 3:35:56 pm PDT Curve objects are lines, splines, polygons or filled curves. The points in the CurveRec describe the center line of line or spline objects or the border points of polygons or filled curves. Uses Bezier splines for filled curves and splines. Restrictions: The width w is supposed to be even. The objects must be treated readonly. The object size must not exceed LAST[NAT]. Usage must not depend on how clipping on edges is performed. --Creates a line object of width "w" (even) connecting the points "points". --Creates a spline object of width "w" (even) connecting the points "points". --Creates a polygon object using the "points" as border line. --Creates a filled curve object using the "points" as border line. --All the create procs may return NIL or call CD.Error if restrictions are violated. --offset: If applied as position to the curve object, it would go through its defining "points". --[the coordinates of the points in the CurveRec are the original coordinates minus "offset"] Κγ˜codešœ ™ Kšœ Οmœ1™™>Kšœ‚™‚Kšœ2™2K™šœ ™ Kšœ#™#Kšœ'™'Kšœ,™,Kšœ@™@—K˜K˜Kšœ žœžœ ˜Kš œ žœžœ žœžœžœžœ$˜_K˜Kšœ žœžœ ˜$Kšœ žœžœ ˜"Kšœžœžœ ˜%Kšœžœžœ ˜)K˜š Οnœžœžœ žœžœžœ˜6Kšžœ˜K˜—K˜š  œžœžœ žœžœžœ˜8Kšžœ˜K˜—K˜š   œžœžœ žœžœžœ˜9Kšžœ˜ K˜—K˜š   œžœžœ žœžœžœ˜=Kšžœ˜$K˜—K˜K˜š  œžœ žœžœžœžœžœžœžœžœ ˜{KšœM™M—K˜š  œžœ žœžœžœžœžœžœžœžœ ˜}KšœO™O—K˜š  œžœ žœžœžœžœžœžœžœ ˜pKšœ?™?—K˜š œžœ žœžœžœžœžœžœžœ ˜tKšœD™D—K˜KšœT™TKšœ`™`Kšœ]™]K™Kšžœ˜K˜K˜—…—Β U