<> <> <> <> <<>> DIRECTORY GGInterfaceTypes, GGModelTypes; GGCaret: CEDAR DEFINITIONS = BEGIN Caret: TYPE = GGInterfaceTypes.Caret; GargoyleData: TYPE = GGInterfaceTypes.GargoyleData; Joint: TYPE = GGModelTypes.Joint; Point: TYPE = GGModelTypes.Point; Segment: TYPE = GGModelTypes.Segment; Sequence: TYPE = GGModelTypes.Sequence; Traj: TYPE = GGModelTypes.Traj; <> <> <> <> <> <> <> <<>> GetPoint: PROC [caret: Caret] RETURNS [point: Point]; Kill: PROC [caret: Caret]; Exists: PROC [caret: Caret] RETURNS [BOOL]; <> <<>> <> TellOnOverlay: PROC [caret: Caret, onOverlay: BOOL]; IsOnOverlay: PROC [caret: Caret] RETURNS [BOOL]; <> SitOnJoint: PROC [caret: Caret, chair: Traj, jointNum: NAT]; SitOnSegment: PROC [caret: Caret, chair: Traj, segNum: NAT]; DoNotSit: PROC [caret: Caret]; GetChair: PROC [caret: Caret] RETURNS [chair: Traj, isJoint: BOOL, joint: Joint, jointNum: NAT, seg: Segment]; <> Update: PROC [gargoyleData: GargoyleData, point: Point, attractor: Traj, onJoint: BOOL _ TRUE, attractorJointNum: NAT _ 999, attractorSegNum: NAT _ 999]; GetAttractor: PROC [caret: Caret] RETURNS [attractor: Traj, isJoint: BOOL, joint: Joint, jointNum: NAT, seg: Segment]; <> MakeChairTouchAttractor: PROC [caret: Caret, gargoyleData: GargoyleData]; MakeChairTouchTrajJoint: PROC [caret: Caret, gargoyleData: GargoyleData, traj: Traj, jointNum: NAT]; <> Copy: PROC [to, from: Caret]; <> GetSequence: PROC [caret: Caret] RETURNS [seq: Sequence]; <> SetSequence: PROC [caret: Caret, seq: Sequence]; <> <<>> END.