<> <> <> <> <<>> DIRECTORY GGInterfaceTypes, GGModelTypes, GGObjects, Imager, ImagerTransformation; GGTouch: CEDAR DEFINITIONS = BEGIN Cluster: TYPE = GGModelTypes.Cluster; GargoyleData: TYPE = GGInterfaceTypes.GargoyleData; Joint: TYPE = GGModelTypes.Joint; Outline: TYPE = GGModelTypes.Outline; Point: TYPE = GGModelTypes.Point; Segment: TYPE = GGModelTypes.Segment; Sequence: TYPE = GGModelTypes.Sequence; Traj: TYPE = GGModelTypes.Traj; TrajGenerator: TYPE = GGObjects.TrajGenerator; TouchGroup: TYPE = GGModelTypes.TouchGroup; TouchingPartType: TYPE = GGModelTypes.TouchingPartType; TouchItem: TYPE = GGModelTypes.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]; ClusterDeleted: PROC [cluster: Cluster, 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.