<> <> <> <> <> <<>> DIRECTORY GGBasicTypes, GGInterfaceTypes, GGModelTypes, GGSegmentTypes, Imager, ImagerTransformation; GGOutline: CEDAR DEFINITIONS = BEGIN GGData: TYPE = GGInterfaceTypes.GGData; Joint: TYPE = GGSegmentTypes.Joint; Outline: TYPE = GGModelTypes.Outline; OutlineClass: TYPE = GGModelTypes.OutlineClass; OutlineDescriptor: TYPE = GGModelTypes.OutlineDescriptor; Point: TYPE = GGBasicTypes.Point; Scene: TYPE = GGModelTypes.Scene; Segment: TYPE = GGSegmentTypes.Segment; SelectionClass: TYPE = GGInterfaceTypes.SelectionClass; Sequence: TYPE = GGModelTypes.Sequence; SliceParts: TYPE = GGModelTypes.SliceParts; Slice: TYPE = GGModelTypes.Slice; SliceDescriptor: TYPE = GGModelTypes.SliceDescriptor; Traj: TYPE = GGModelTypes.Traj; TrajPartType: TYPE = GGModelTypes.TrajPartType; TrajEnd: TYPE = GGModelTypes.TrajEnd; TrajGenerator: TYPE = GGModelTypes.TrajGenerator; HitType: TYPE = GGModelTypes.TrajPartType; fillColor: Imager.Color; <> <<>> OutlineData: TYPE = REF OutlineDataObj; OutlineDataObj: TYPE = RECORD [ fillColor: Imager.Color, children: LIST OF Traj ]; OutlineParts: TYPE = REF OutlinePartsObj; OutlinePartsObj: TYPE = RECORD [ seqs: LIST OF Sequence ]; OutlineHitData: TYPE = REF OutlineHitDataObj; OutlineHitDataObj: TYPE = RECORD [ traj: Traj, hitType: HitType, segNum: INT, cpNum: INT, jointNum: INT, hitPoint: Point ]; <> BuildOutlineSliceClass: PROC [] RETURNS [class: OutlineClass]; <<>> CreateOutline: PROC [traj: Traj, fillColor: Imager.Color] RETURNS [outline: Slice]; <> AddHole: PROC [outline: Slice, hole: Traj] RETURNS [holier: Slice]; ReplaceFence: PROC [outline: Slice, newFence: Traj] RETURNS [newOutline: Slice]; ReplaceHole: PROC [outline: Slice, oldHole, newHole: Traj] RETURNS [newOutline: Slice]; PartsFromSequence: PROC [outline: Slice, seq: Sequence] RETURNS [sliceParts: SliceParts]; DescriptorFromSequence: PROC [outline: Slice, seq: Sequence] RETURNS [sliceD: SliceDescriptor]; <> CopyParts: PROC [outline: Slice, parts: SliceParts] RETURNS [copy: SliceParts]; FindTrajInDescriptor: PROC [outlineD: SliceDescriptor, traj: Traj] RETURNS [seq: Sequence]; <> SaveSelectionsInOutline: PROC [outline: Slice, scene: Scene]; RemakeSelectionsFromOutline: PROC [outline: Slice, scene: Scene]; SequencesOfOutline: PROC [outlineD: SliceDescriptor] RETURNS [seqList: LIST OF Sequence]; RemoveTraj: PROC [outlineD: SliceDescriptor, traj: Traj] RETURNS [newD: SliceDescriptor]; <> UnpackOnePointDescriptor: PROC [outlineD: SliceDescriptor] RETURNS [traj: Traj, isACP: BOOL, segNum, cpNum, jointNum: NAT]; <> UnpackOneSegmentDescriptor: PROC [outlineD: SliceDescriptor] RETURNS [traj: Traj, segNum: NAT]; <> UnpackSimpleDescriptor: PROC [outlineD: SliceDescriptor] RETURNS [success: BOOL, partType: TrajPartType, traj: Traj, joint: Joint _ NIL, jointNum: NAT _ 999, cp: Point, cpNum: NAT _ 999, seg: Segment _ NIL, segNum: NAT _ 999]; NearestJointToHitData: PROC [hitData: REF ANY] RETURNS [jointNum: NAT, traj: Traj]; UnpackHitData: PROC [hitData: REF ANY] RETURNS [traj: Traj, hitType: HitType, segNum, cpNum, jointNum: INT, hitPoint: Point]; <> <> <> <<>> <> UpdateBoundBox: PROC [slice: Slice]; <> <> TrajectoriesOfOutline: PROC [outline: Slice] RETURNS [children: LIST OF Traj]; OutlineOfTraj: PROC [traj: Traj] RETURNS [outline: Slice]; <<>> <> UniformFills: PROC [scene: Scene, selectClass: SelectionClass] RETURNS [color: Imager.Color]; <> HasHoles: PROC [outline: Slice] RETURNS [BOOL]; FenceOfOutline: PROC [outline: Slice] RETURNS [fence: Traj]; HolesOfOutline: PROC [outline: Slice] RETURNS [trajGen: TrajGenerator]; TrajsInOutline: PROC [outline: Slice] RETURNS [trajGen: TrajGenerator]; <> <<>> <<>> <> AppendTrajList: PROC [list1, list2: LIST OF Traj] RETURNS [result: LIST OF Traj]; SetSegmentField: PROC [seg: Segment, selected: BOOL, selectClass: SelectionClass]; SetControlPointField: PROC [seg: Segment, cpNum: NAT, selected: BOOL, selectClass: SelectionClass]; SetJointField: PROC [joint: Joint, selected: BOOL, selectClass: SelectionClass]; GetSegmentField: PROC [seg: Segment, selectClass: SelectionClass] RETURNS [selected: BOOL]; GetControlPointField: PROC [seg: Segment, cpNum: NAT, selectClass: SelectionClass] RETURNS [selected: BOOL]; GetJointField: PROC [joint: Joint, selectClass: SelectionClass] RETURNS [selected: BOOL]; <<>> END.