<> <> <> <> <> <<>> DIRECTORY GGBasicTypes, GGInterfaceTypes, GGModelTypes, GGObjects, GGSegmentTypes, Imager, ImagerTransformation; GGTouch: CEDAR DEFINITIONS = BEGIN Slice: TYPE = GGModelTypes.Slice; GargoyleData: TYPE = GGInterfaceTypes.GargoyleData; Joint: TYPE = GGModelTypes.Joint; Outline: TYPE = GGModelTypes.Outline; Point: TYPE = GGBasicTypes.Point; Segment: TYPE = GGSegmentTypes.Segment; Sequence: TYPE = GGModelTypes.Sequence; Traj: TYPE = GGModelTypes.Traj; TrajGenerator: TYPE = GGObjects.TrajGenerator; TouchGroup: TYPE = GGSegmentTypes.TouchGroup; TouchingPartType: TYPE = GGSegmentTypes.TouchingPartType; TouchItem: TYPE = GGSegmentTypes.TouchItem; TouchItemGenerator: TYPE = REF TouchItemGeneratorObj; TouchItemGeneratorObj: TYPE = RECORD [ list: LIST OF TouchItem ]; <> <> <> <> <> <> <> CreateTouchGroup: PROC [gargoyleData: GargoyleData, point: Point] RETURNS [empty: TouchGroup]; AddJoint: PROC [traj: Traj, joint: Joint, touchGroup: TouchGroup] RETURNS [item: TouchItem]; AddSegment: PROC [traj: Traj, seg: Segment, segPoint: Point, touchGroup: TouchGroup] RETURNS [item: TouchItem]; MergeGroups: PROC [group1, group2: TouchGroup, gargoyleData: GargoyleData]; <> InitializeTouching: PROC [gargoyleData: GargoyleData]; UpdateTouchGroup: PROC [item: TouchItem, point: Point, gargoyleData: GargoyleData]; <> SequenceMoved: PROC [seq: Sequence, gargoyleData: GargoyleData, transform: ImagerTransformation.Transformation _ NIL]; TrajMoved: PROC [traj: Traj, gargoyleData: GargoyleData, transform: ImagerTransformation.Transformation _ NIL]; <<>> <> DeleteTouchItem: PROC [touchItem: TouchItem, gargoyleData: GargoyleData]; <> SequenceDeleted: PROC [seq: Sequence, gargoyleData: GargoyleData]; OutlineDeleted: PROC [outline: Outline, gargoyleData: GargoyleData]; SliceDeleted: PROC [slice: Slice, gargoyleData: GargoyleData]; <> TouchGroupOfItem: PROC [item: TouchItem] RETURNS [touchGroup: TouchGroup]; AllTouchItems: PROC [touchGroup: TouchGroup] RETURNS [touchItemGen: TouchItemGenerator]; NextTouchItem: PROC [touchItemGen: TouchItemGenerator] RETURNS [item: TouchItem]; <> DrawAllTouchPoints: PROC [dc: Imager.Context, gargoyleData: GargoyleData]; DescribeAllTouchPoints: PROC [gargoyleData: GargoyleData]; END.