<> <> <> <> <> DIRECTORY GGBasicTypes, GGModelTypes, Interpress, ImagerTransformation, IO, Rope, ViewerClasses; GGUtility: CEDAR DEFINITIONS = BEGIN BitVector: TYPE = GGBasicTypes.BitVector; FeatureData: TYPE = GGModelTypes.FeatureData; Outline: TYPE = GGModelTypes.Outline; OutlineDescriptor: TYPE = GGModelTypes.OutlineDescriptor; Sequence: TYPE = GGModelTypes.Sequence; Slice: TYPE = GGModelTypes.Slice; SliceDescriptor: TYPE = GGModelTypes.SliceDescriptor; Traj: TYPE = GGModelTypes.Traj; Viewer: TYPE = ViewerClasses.Viewer; <> <<>> StartFeatureDataList: PROC [] RETURNS [entityList, ptr: LIST OF FeatureData]; AddFeatureData: PROC [entity: FeatureData, entityList, ptr: LIST OF FeatureData] RETURNS [newList, newPtr: LIST OF FeatureData]; <> <<>> DeleteSequenceFromList: PROC [seq: Sequence, seqList: LIST OF Sequence] RETURNS [smallerList: LIST OF Sequence]; AppendSequenceList: PROC [list1, list2: LIST OF Sequence] RETURNS [result: LIST OF Sequence]; StartSequenceList: PROC [] RETURNS [entityList, ptr: LIST OF Sequence]; AddSequence: PROC [entity: Sequence, entityList, ptr: LIST OF Sequence] RETURNS [newList, newPtr: LIST OF Sequence]; <<>> <> <<>> <> StartList: PROC [] RETURNS [entityList, ptr: LIST OF REF ANY]; AddEntity: PROC [entity: REF ANY, entityList, ptr: LIST OF REF ANY] RETURNS [newList, newPtr: LIST OF REF ANY]; <> <<>> SetOfRefAny: TYPE = REF SetOfRefAnyObj; SetOfRefAnyObj: TYPE = RECORD [ count: NAT, sorted: BOOL _ FALSE, refs: SEQUENCE maxCount: NAT OF REF ANY ]; EmptySet: PROC [] RETURNS [set: SetOfRefAny]; AddToSet: PROC [entity: REF ANY, set: SetOfRefAny]; SizeOfSet: PROC [set: SetOfRefAny] RETURNS [count: NAT]; FetchSetElement: PROC [set: SetOfRefAny, index: NAT] RETURNS [entity: REF ANY]; DeleteFromSet: PROC [index: NAT, set: SetOfRefAny]; SortSet: PROC [set: SetOfRefAny, orderProc: OrderProc]; OrderProc: TYPE = PROC [e1, e2: REF ANY] RETURNS [e1GoesBeforeE2: BOOL]; <<>> <> AppendNATs: PROC [list1, list2: LIST OF NAT] RETURNS [result: LIST OF NAT]; StartNATList: PROC [] RETURNS [entityList, ptr: LIST OF NAT]; StartTrajList: PROC [] RETURNS [entityList, ptr: LIST OF Traj]; StartSDList: PROC [] RETURNS [entityList, ptr: LIST OF SliceDescriptor]; StartOutlineList: PROC [] RETURNS [entityList, ptr: LIST OF Outline]; StartSliceList: PROC [] RETURNS [entityList, ptr: LIST OF Slice]; AddNAT: PROC [entity: NAT, entityList, ptr: LIST OF NAT] RETURNS [newList, newPtr: LIST OF NAT]; AddTraj: PROC [entity: Traj, entityList, ptr: LIST OF Traj] RETURNS [newList, newPtr: LIST OF Traj]; AddSD: PROC [entity: SliceDescriptor, entityList, ptr: LIST OF SliceDescriptor] RETURNS [newList, newPtr: LIST OF SliceDescriptor]; AddOutline: PROC [entity: Outline, entityList, ptr: LIST OF Outline] RETURNS [newList, newPtr: LIST OF Outline]; AddSlice: PROC [entity: Slice, entityList, ptr: LIST OF Slice] RETURNS [newList, newPtr: LIST OF Slice]; <> <<>> BreakIntervalMOD: PROC [start, end, mod: NAT] RETURNS [s1, e1, s2, e2: INT]; <> < [6, 6, 0, 2];>> < [2, 6, -1, -1];>> BreakIntervalMODLen: PROC [start, len, mod: NAT] RETURNS [s1, len1, s2, len2: INT]; <> InMODRegion: PROC [test: NAT, start, end, mod: NAT] RETURNS [BOOL]; <> <<>> <> <<>> <> AllFalse: PROC [bitvec: BitVector] RETURNS [BOOL]; AllTrue: PROC [bitvec: BitVector] RETURNS [BOOL]; <> <<>> <> plusInfinity: REAL = 1E16; minusInfinity: REAL = -1E16; <> epsilonInPoints: REAL = 7.2E-4; epsilonInInches: REAL = 1.0E-5; <> <<>> GetInterpressFileName: PROC [ipName: Rope.ROPE, currentWDir: Rope.ROPE, feedback: Viewer] RETURNS [fullName: Rope.ROPE _ NIL, success: BOOL _ TRUE]; OpenInterpressOrComplain: PROC [feedback: Viewer, fullName: Rope.ROPE] RETURNS [ipMaster: Interpress.Master, success: BOOL]; GetGargoyleFileName: PROC [ggName: Rope.ROPE, currentWDir: Rope.ROPE, feedback: Viewer, emergency: BOOL _ FALSE] RETURNS [fullName: Rope.ROPE _ NIL, success: BOOL _ TRUE, versionSpecified: BOOL _ FALSE]; <> ParseFontData: PROC [inStream: IO.STREAM, prefixP, familyP, faceP, transformP, sizeP: BOOL _ FALSE] RETURNS [fail: BOOL, prefix, family, face: Rope.ROPE, transform: ImagerTransformation.Transformation, size: REAL _ 0.0]; ParseLiteralFontData: PROC [inStream: IO.STREAM, nameP, transformP, sizeP: BOOL _ FALSE] RETURNS [fail: BOOL, fontName: Rope.ROPE, transform: ImagerTransformation.Transformation, size: REAL _ 0.0]; FontDataFromUserData: PROC [prefix, family, face: Rope.ROPE, size: REAL, preferredSize: REAL] RETURNS [fontName: Rope.ROPE, fontSize: REAL, fontPreferredSize: REAL, problem: Rope.ROPE]; UserDataFromFontData: PROC [fontName: Rope.ROPE, fontSize: REAL, fontPreferredSize: REAL] RETURNS [prefix, family, face: Rope.ROPE, size: REAL, preferredSize: REAL, problem: Rope.ROPE]; <<>> END.