<> <> <> <> <> <<>> DIRECTORY GGModelTypes, CubicSplines; GGSegment: CEDAR DEFINITIONS = BEGIN Point: TYPE = GGModelTypes.Point; Segment: TYPE = GGModelTypes.Segment; SegmentClass: TYPE = GGModelTypes.SegmentClass; <> MakeLine: PROC [p0, p1: Point] RETURNS [seg: Segment]; <> MakeBezier: PROC [p0, p1, p2, p3: Point] RETURNS [seg: Segment]; <> MakeConic: PROC [p0, p1, p2: Point, r: REAL] RETURNS [seg: Segment]; <> <> <> <> <> MakeArc: PROC [p0, p1, p2: Point] RETURNS [seg: Segment]; <> MakeCubicSpline: PROC [cps: CubicSplines.KnotSequence, type: CubicSplines.SplineType] RETURNS[Segment]; <> <<>> CopySegment: PROC [seg: Segment] RETURNS [copy: Segment]; ReverseSegment: PROC [seg: Segment]; FetchSegmentClass: PROC [type: ATOM] RETURNS [class: SegmentClass]; <> <> NotFound: SIGNAL; END.