<> <> <> <> <> <> <> <> <> <<>> DIRECTORY CubicPaths, CubicSplines, GGBasicTypes, GGInterfaceTypes, GGModelTypes, GGSegmentTypes, Imager, ImagerPath, ImagerTransformation; GGSegment: CEDAR DEFINITIONS = BEGIN NotFound: SIGNAL; BitVector: TYPE = GGModelTypes.BitVector; Point: TYPE = GGBasicTypes.Point; Scene: TYPE = GGModelTypes.Scene; Segment: TYPE = GGSegmentTypes.Segment; SegmentClass: TYPE = GGSegmentTypes.SegmentClass; SelectionClass: TYPE = GGSegmentTypes.SelectionClass; DefaultData: TYPE = GGInterfaceTypes.DefaultData; Vector: TYPE = GGBasicTypes.Vector; ClassDef: TYPE = REF ClassDefRec; ClassDefRec: TYPE = RECORD[type: ATOM, class: SegmentClass]; <> MakeLine: PROC [p0, p1: Point, props: LIST OF REF ANY] RETURNS [seg: Segment]; <> MakeBezier: PROC [p0, p1, p2, p3: Point, props: LIST OF REF ANY] RETURNS [seg: Segment]; <> MakeConic: PROC [p0, p1, p2: Point, r: REAL, props: LIST OF REF ANY] RETURNS [seg: Segment]; <> <> <> <> <> MakeArc: PROC [p0, p1, p2: Point, props: LIST OF REF ANY] RETURNS [seg: Segment]; <> MakeCubicSpline: PROC [cps: CubicSplines.KnotSequence, type: CubicSplines.SplineType, props: LIST OF REF ANY] RETURNS [Segment]; <> <> BezierGetParams: PROC [seg: Segment] RETURNS [p0, p1, p2, p3: Point]; ConicGetParams: PROC [seg: Segment] RETURNS [p0, p1, p2: Point, r: REAL]; ConicSetRatio: PROC [seg: Segment, r: REAL]; ConicSetControlPoint: PROC [seg: Segment, p1: Point]; ArcGetParams: PROC [seg: Segment] RETURNS [p0, p1, p2: Point]; CubicSplineGetParams: PROC [seg: Segment] RETURNS [CubicPaths.Path]; <> SetDefaults: PROC [seg: Segment, defaults: DefaultData]; CopySegment: PROC [seg: Segment] RETURNS [copy: Segment]; CopyLooks: PROC [from: Segment, to: Segment]; SameLooks: PROC [seg1: Segment, seg2: Segment] RETURNS [BOOL]; SameShape: PROC [seg1: Segment, seg2: Segment] RETURNS [same: BOOL]; UniformLooks: PROC [scene: Scene, selectClass: SelectionClass] RETURNS [seg: Segment]; <> ReverseSegment: PROC [seg: Segment]; OpenUpSegment: PROC [seg: Segment]; FetchSegmentClass: PROC [type: ATOM] RETURNS [class: SegmentClass]; <> <> RegisterSegmentClass: PROC [classDef: ClassDef]; TransformSegment: PROC [seg: Segment, transform: ImagerTransformation.Transformation]; TranslateSegment: PROC [seg: Segment, vector: Vector]; MoveEndPointSegment: PROC [seg: Segment, lo: BOOL, newPoint: Point]; <> <> <> DrawLine: PROC [dc: Imager.Context, p1, p2: Point, seg: Segment]; <> CSControlPointAdd: PROC [seg: Segment, pos: Point] RETURNS [Segment]; <> CSControlPointDelete: PROC [seg: Segment, cpVec: BitVector] RETURNS [Segment]; <> <<>> BZSpecialTransformPath: PROC [seg: Segment, transform: ImagerTransformation.Transformation, lo, hi: BOOL, controlPoints: BitVector, loTransform, hiTransform: ImagerTransformation.Transformation, curveTo: ImagerPath.CurveToProc]; <> BZControlPointMovedTo: PUBLIC PROC [seg: Segment, newPos: Point, controlPointNum: NAT]; <<>> <> <<>> NoOpTightBoxProc: GGSegmentTypes.TightBoxProc; NoOpSameShapeProc: GGSegmentTypes.SameShapeProc; NoOpControlPointMoved: GGSegmentTypes.ControlPointMovedProc; NoOpControlPointGet: GGSegmentTypes.ControlPointGetProc; NoOpControlPointCount: GGSegmentTypes.ControlPointCountProc; NoOpControlPointFieldSet: GGSegmentTypes.ControlPointFieldSetProc; NoOpControlPointFieldGet: GGSegmentTypes.ControlPointFieldGetProc; NoOpClosestControlPoint: GGSegmentTypes.ClosestControlPointProc; NoOpClosestPointAndTangent: GGSegmentTypes.ClosestPointAndTangentProc; NoOpLineIntersection: GGSegmentTypes.LineIntersectionProc; NoOpCircleIntersection: GGSegmentTypes.CircleIntersectionProc; NoOpAsSimpleCurve: GGSegmentTypes.AsSimpleCurveProc; NoOpAsPolyline: GGSegmentTypes.AsPolylineProc; NoOpJointNormal: GGSegmentTypes.JointNormalProc; NoOpCPNormal: GGSegmentTypes.CPNormalProc; NoOpAddJoint: GGSegmentTypes.AddJointProc; NoOpFileOut: GGSegmentTypes.FileOutProc; <> END.