<> <> <> <> <<>> DIRECTORY AtomButtonsTypes, Feedback, GGBasicTypes, GGBoundBox, GGInterfaceTypes, GGModelTypes, GGScene, GGOutline, GGParseIn, GGParseOut, GGSegmentTypes, GGSelect, GGSequence, GGShapes, GGSlice, GGTraj, GGUtility, Imager, ImagerColor, ImagerPath, ImagerTransformation, IO, Rope, Vectors2d, ViewerClasses; GGOutlineImplA: CEDAR PROGRAM IMPORTS Feedback, GGBoundBox, GGScene, GGOutline, GGParseIn, GGParseOut, GGSequence, GGShapes, GGSlice, GGTraj, GGUtility, Imager, ImagerColor, ImagerPath, ImagerTransformation, IO, Vectors2d EXPORTS GGOutline = BEGIN <> BitVector: TYPE = GGBasicTypes.BitVector; BoundBox: TYPE = GGBasicTypes.BoundBox; CameraData: TYPE = GGModelTypes.CameraData; Circle: TYPE = GGBasicTypes.Circle; Color: TYPE = Imager.Color; DefaultData: TYPE = GGModelTypes.DefaultData; FeedbackData: TYPE = AtomButtonsTypes.FeedbackData; StrokeJoint: TYPE = Imager.StrokeJoint; StrokeEnd: TYPE = Imager.StrokeEnd; ControlPointGenerator: TYPE = GGModelTypes.ControlPointGenerator; FeatureData: TYPE = GGInterfaceTypes.FeatureData; GGData: TYPE = GGInterfaceTypes.GGData; Joint: TYPE = GGSegmentTypes.Joint; JointGenerator: TYPE = GGModelTypes.JointGenerator; Line: TYPE = GGBasicTypes.Line; AlignBag: TYPE = GGInterfaceTypes.AlignBag; Outline: TYPE = REF OutlineObj; OutlineObj: TYPE = GGModelTypes.OutlineObj; OutlineData: TYPE = REF OutlineDataObj; OutlineDataObj: TYPE = GGOutline.OutlineDataObj; OutlineClass: TYPE = REF OutlineClassObj; OutlineClassObj: TYPE = GGModelTypes.OutlineClassObj; OutlineDescriptor: TYPE = GGModelTypes.OutlineDescriptor; OutlineHitData: TYPE = REF OutlineHitDataObj; OutlineHitDataObj: TYPE = GGOutline.OutlineHitDataObj; OutlineParts: TYPE = REF OutlinePartsObj; OutlinePartsObj: TYPE = GGOutline.OutlinePartsObj; OutlineSequence: TYPE = GGSelect.OutlineSequence; OutlineSequenceGenerator: TYPE = GGSelect.OutlineSequenceGenerator; Point: TYPE = GGBasicTypes.Point; PointGenerator: TYPE = GGModelTypes.PointGenerator; PointPairGenerator: TYPE = GGModelTypes.PointPairGenerator; Scene: TYPE = GGModelTypes.Scene; Segment: TYPE = GGSegmentTypes.Segment; SegmentGenerator: TYPE = GGModelTypes.SegmentGenerator; SegmentGeneratorObj: TYPE = GGModelTypes.SegmentGeneratorObj; SelectMode: TYPE = GGModelTypes.SelectMode; SelectionClass: TYPE = GGSegmentTypes.SelectionClass; Sequence: TYPE = GGModelTypes.Sequence; SequenceOfReal: TYPE = GGBasicTypes.SequenceOfReal; Slice: TYPE = GGModelTypes.Slice; SliceClass: TYPE = REF SliceClassObj; SliceClassObj: TYPE = GGModelTypes.SliceClassObj; SliceDescriptor: TYPE = GGModelTypes.SliceDescriptor; SliceDescriptorObj: TYPE = GGModelTypes.SliceDescriptorObj; SliceParts: TYPE = GGModelTypes.SliceParts; Traj: TYPE = REF TrajObj; TrajEnd: TYPE = GGModelTypes.TrajEnd; TrajGenerator: TYPE = REF TrajGeneratorObj; TrajGeneratorObj: TYPE = GGModelTypes.TrajGeneratorObj; TrajObj: TYPE = GGModelTypes.TrajObj; TrajPartType: TYPE = GGModelTypes.TrajPartType; TriggerBag: TYPE = GGInterfaceTypes.TriggerBag; Vector: TYPE = GGBasicTypes.Vector; Viewer: TYPE = ViewerClasses.Viewer; WalkProc: TYPE = GGModelTypes.WalkProc; <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> Problem: PUBLIC SIGNAL [msg: Rope.ROPE] = Feedback.Problem; fillColor: PUBLIC Imager.Color _ Imager.MakeGray[0.5]; <<>> <> <<>> BuildOutlineSliceClass: PUBLIC PROC [] RETURNS [class: OutlineClass] = { class _ NEW[OutlineClassObj _ [ type: $Outline, <> getBoundBox: OutlineBoundBox, getTightBox: OutlineTightBox, copy: OutlineCopy, <> drawParts: OutlineDrawParts, drawTransform: OutlineDrawTransform, drawSelectionFeedback: OutlineDrawSelectionFeedback, drawAttractorFeedback: OutlineDrawAttractorFeedback, <> transform: OutlineTransform, <> describe: OutlineDescribe, describeHit: OutlineDescribeHit, fileout: OutlineFileout, filein: OutlineFilein, <> isEmptyParts: OutlineIsEmptyParts, isCompleteParts: OutlineIsCompleteParts, newParts: OutlineNewParts, unionParts: OutlineUnionParts, differenceParts: OutlineDifferenceParts, movingParts: OutlineMovingParts, augmentParts: OutlineAugmentParts, setSelectedFields: OutlineSetSelectedFields, <> pointsInDescriptor: OutlinePointsInDescriptor, pointPairsInDescriptor: OutlinePointPairsInDescriptor, segmentsInDescriptor: OutlineSegmentsInDescriptor, walkSegments: OutlineWalkSegmentsProc, nextPoint: OutlineNextPoint, nextPointPair: OutlineNextPointPair, nextSegment: OutlineNextSegment, <> closestPoint: OutlineClosestPoint, closestJointToHitData: OutlineClosestJointToHitData, closestPointAndTangent: GGSlice.NoOpClosestPointAndTangent, closestSegment: OutlineClosestSegment, lineIntersection: OutlineLineIntersection, circleIntersection: OutlineCircleIntersection, hitDataAsSimpleCurve: OutlineHitDataAsSimpleCurve, <