DIRECTORY FeedbackTypes, GGModelTypes, IO; GGSliceOps: CEDAR DEFINITIONS = BEGIN OPEN GGModelTypes; noteNoMore: BOOL; debugHalt: BOOL; GetType: PROC [slice: Slice] RETURNS [type: ATOM]; GetBoundBox: SliceBoundBoxProc; GetTransformedBoundBox: SliceTransformedBoundBoxProc; GetTightBox: SliceTightBoxProc; Copy: SliceCopyProc; Restore: SliceRestoreProc; Unlink: SliceUnlinkProc; BuildPath: SliceBuildPathProc; DrawBorder: SliceDrawBorderProc; DrawParts: SliceDrawPartsProc; DrawTransform: SliceDrawTransformProc; DrawSelectionFeedback: SliceDrawSelectionFeedbackProc; DrawAttractorFeedback: SliceDrawAttractorFeedbackProc; AttractorFeedbackBoundBox: SliceAttractorFeedbackBoundBoxProc; SaveSelections: SliceSaveSelectionsProc; RemakeSelections: SliceRemakeSelectionsProc; Transform: SliceTransformProc; Describe: SliceDescribeProc; DescribeHit: SliceDescribeHitProc; Fileout: SliceFileoutProc; Filein: SliceFileinProc; IsEmptyParts: SliceIsEmptyPartsProc; IsCompleteParts: SliceIsCompletePartsProc; NewParts: SliceNewPartsProc; UnionParts: SliceUnionPartsProc; DifferenceParts: SliceDifferencePartsProc; MovingParts: SliceMovingPartsProc; AugmentParts: SliceAugmentPartsProc; AlterParts: SliceAlterPartsProc; SetSelectedFields: SliceSetSelectedFieldsProc; PointsInDescriptor: SlicePointsInDescriptorProc; WalkPointsInDescriptor: SliceWalkPointsInDescriptorProc; PointPairsInDescriptor: SlicePointPairsInDescriptorProc; SegmentsInDescriptor: SliceSegmentsInDescriptorProc; WalkSegments: SliceWalkSegmentsProc; NextPoint: SliceNextPointProc; NextPointPair: SliceNextPointPairProc; NextSegment: SliceNextSegmentProc; ClosestPoint: SliceClosestPointProc; ClosestJointToHitData: SliceClosestJointToHitDataProc; ClosestPointAndTangent: SliceClosestPointAndTangentProc; ClosestSegment: SliceClosestSegmentProc; FilledPathsUnderPoint: SliceFilledPathsUnderPointProc; LineIntersection: SliceLineIntersectionProc; CircleIntersection: SliceCircleIntersectionProc; HitDataAsSimpleCurve: SliceHitDataAsSimpleCurveProc; SetDefaults: SliceSetDefaultsProc; SetStrokeWidth: SliceSetStrokeWidthProc; GetStrokeWidth: SliceGetStrokeWidthProc; SetStrokeEnd: SliceSetStrokeEndProc; GetStrokeEnd: SliceGetStrokeEndProc; SetStrokeJoint: SliceSetStrokeJointProc; GetStrokeJoint: SliceGetStrokeJointProc; SetStrokeColor: SliceSetStrokeColorProc; GetStrokeColor: SliceGetStrokeColorProc; SetFillColor: SliceSetFillColorProc; GetFillColor: SliceGetFillColorProc; SetArrows: SliceSetArrowsProc; GetArrows: SliceGetArrowsProc; SetDashed: SliceSetDashedProc; GetDashed: SliceGetDashedProc; SetOrientation: SliceSetOrientationProc; GetOrientation: SliceGetOrientationProc; FileoutSlice: PROC [f: IO.STREAM, slice: Slice]; FileinSlice: PROC [f: IO.STREAM, version: REAL, router: FeedbackTypes.MsgRouter, camera: Camera, class: SliceClass _ NIL] RETURNS [slice: Slice]; PartsInBoundBox: PROC [slice: Slice, box: BoundBox] RETURNS [inParts: SliceDescriptor]; WithinBoundBox: PROC [slice: Slice, box: BoundBox] RETURNS [in: BOOL]; IsOpen: PROC [slice: Slice] RETURNS [isOpen: BOOL _ FALSE]; IsDescriptorOfEnd: PROC [sliceD: SliceDescriptor] RETURNS [BOOL]; UnpackJoint: PROC [sliceD: SliceDescriptor] RETURNS [success: BOOL, trajD: SliceDescriptor, jointNum: INT]; UnpackSegment: PROC [sliceD: SliceDescriptor] RETURNS [success: BOOL, hitType: TrajPartType, traj: Slice, seg: Segment, segNum: NAT _ 999]; END. hGGSliceOps.mesa Copyright Ó 1987, 1988 by Xerox Corporation. All rights reserved. Created by: Ken Pier, November 25, 1987 10:45:05 am PST Last Edited by: Ken Pier, July 16, 1991 5:06 pm PDT Bier, December 2, 1991 11:05 am PST This module is the outer interface to slice class procs One-to-one correspondence between procs here and SliceClass procs. Clients should call through this interface instead of directly through class record. Fundamentals Drawing Transforming Textual Description Parts Part Generators Hit Testing Style Procedures implemented as a thin veneer on top of the basic class procs Returns a descriptor of those parts of slice that are within box. Returns TRUE if all parts of slice are within box. Returns TRUE if slice is an open trajectory Describes those paths of slice, with non-NIL fill color, that contain point. Used by GGMultiGravityImpl for faces-preferred gravit, which is used for selections. Paths are listed near to far in overlap order. Routines that operate on several classes, but aren't class procs Used by GGEventImplB.DeleteCaretSegment. Used by GGEventImplC.AddControlPoint. Ê*˜™Icode™BKšœ4Ïk™7Kšœ3™3K™#K™7—K™š ˜ Jšœ ˜ —K˜KšÏn œœ œ˜%K˜KšÐbkÏb˜K™K™˜K˜Kšœ œ˜Kšœ œ˜K˜Kšžœœœœ˜2Kšœ ™ Kšž œ˜Kš œ˜5Kšž œ˜Kšžœ˜Kšžœ˜Kšžœ˜Kšœ™Kšž œ˜Kšž œ˜ Kšž œ˜Kšž œ˜&Kšžœ!˜6Kšžœ!˜6Kšžœ%˜>Kšžœ˜(Kšžœ˜,Kšœ ™ Kšž œ˜Kšœ™Kšžœ˜Kšž œ˜"Kšžœ˜Kšžœ˜Kšœ™Kšž œ˜$Kšžœ˜*Kšžœ˜Kšž œ˜ Kšžœ˜*Kšž œ˜"Kšž œ˜$Kšž œ˜ Kšžœ˜.Kšœ™Kšžœ˜0Kšžœ"˜8Kšžœ"˜8Kšžœ ˜4Kšž œ˜$Kšž œ˜Kšž œ˜&Kšž œ˜"Kšœ ™ Kšž œ˜$Kšžœ!˜6Kšžœ"˜8Kšžœ˜(Kšžœ!˜6Kš œ˜,Kšžœ˜0Kšžœ ˜4Kšœ™Kšž œ˜"Kšžœ˜(Kšžœ˜(Kšž œ˜$Kšž œ˜$Kšžœ˜(Kšžœ˜(Kšžœ˜(Kšžœ˜(Kšž œ˜$Kšž œ˜$Kšž œ˜Kšž œ˜Kšž œ˜Kšž œ˜Kšžœ˜(Kšžœ˜(K˜™GK™—Iprocšž œœœœ˜0Lšž œœœœ œGœœ˜‘šžœœœ˜WK™A—šžœœœœ˜FKšœœ&™2—š žœœœ œœ˜;Kšœœ™+KšœÒ™Ò—K˜™@K™—Kšžœœœœ˜Aš ž œœœ œ$œ˜kKšœ(™(—š ž œœœ œ<œ˜‹Kšœ%™%—K˜Kšœ˜—…— 4Æ