<> <> <> <> <> <<>> DIRECTORY GGBasicTypes, GGInterfaceTypes, GGModelTypes, Imager, ImagerFont, ImagerTransformation, Interpress, NodeStyle, Rope, ViewerClasses; GGSlice: CEDAR DEFINITIONS IMPORTS Imager = BEGIN EntityGenerator: TYPE = GGModelTypes.EntityGenerator; BoundBox: TYPE = GGModelTypes.BoundBox; Color: TYPE = Imager.Color; DisplayStyle: TYPE = GGInterfaceTypes.DisplayStyle; Point: TYPE = GGBasicTypes.Point; PointGenerator: TYPE = GGModelTypes.PointGenerator; PointPairGenerator: TYPE = GGModelTypes.PointPairGenerator; Scene: TYPE = GGModelTypes.Scene; Slice: TYPE = GGModelTypes.Slice; SliceClass: TYPE = GGModelTypes.SliceClass; SliceDescriptor: TYPE = GGModelTypes.SliceDescriptor; Vector: TYPE = GGBasicTypes.Vector; Viewer: TYPE = ViewerClasses.Viewer; SliceBoundBoxProc: TYPE = GGModelTypes.SliceBoundBoxProc; SliceCopyProc: TYPE = GGModelTypes.SliceCopyProc; SliceDrawPartsProc: TYPE = GGModelTypes.SliceDrawPartsProc; SliceDrawTransformProc: TYPE = GGModelTypes.SliceDrawTransformProc; SliceDrawSelectionFeedbackProc: TYPE = GGModelTypes.SliceDrawSelectionFeedbackProc; SliceDrawAttractorFeedbackProc: TYPE = GGModelTypes.SliceDrawAttractorFeedbackProc; SliceTransformProc: TYPE = GGModelTypes.SliceTransformProc; SliceDescribeProc: TYPE = GGModelTypes.SliceDescribeProc; SliceFileoutProc: TYPE = GGModelTypes.SliceFileoutProc; SliceFileinProc: TYPE = GGModelTypes.SliceFileinProc; SliceEmptyPartsProc: TYPE = GGModelTypes.SliceEmptyPartsProc; SliceNewPartsProc: TYPE = GGModelTypes.SliceNewPartsProc; SliceUnionPartsProc: TYPE = GGModelTypes.SliceUnionPartsProc; SliceDifferencePartsProc: TYPE = GGModelTypes.SliceDifferencePartsProc; SliceMovingPartsProc: TYPE = GGModelTypes.SliceMovingPartsProc; SliceFixedPartsProc: TYPE = GGModelTypes.SliceFixedPartsProc; SliceAugmentPartsProc: TYPE = GGModelTypes.SliceAugmentPartsProc; SlicePointsInDescriptorProc: TYPE = GGModelTypes.SlicePointsInDescriptorProc; SlicePointPairsInDescriptorProc: TYPE = GGModelTypes.SlicePointPairsInDescriptorProc; SliceNextPointProc: TYPE = GGModelTypes.SliceNextPointProc; SliceNextPointPairProc: TYPE = GGModelTypes.SliceNextPointPairProc; SliceClosestPointProc: TYPE = GGModelTypes.SliceClosestPointProc; SliceClosestPointAndTangentProc: TYPE = GGModelTypes.SliceClosestPointAndTangentProc; SliceClosestSegmentProc: TYPE = GGModelTypes.SliceClosestSegmentProc; SliceLineIntersectionProc: TYPE = GGModelTypes.SliceLineIntersectionProc; SliceCircleIntersectionProc: TYPE = GGModelTypes.SliceCircleIntersectionProc; SliceHitDataAsSimpleCurveProc: TYPE = GGModelTypes.SliceHitDataAsSimpleCurveProc; SliceSetStrokeWidthProc: TYPE = GGModelTypes.SliceSetStrokeWidthProc; SliceGetStrokeWidthProc: TYPE = GGModelTypes.SliceGetStrokeWidthProc; SliceSetStrokeColorProc: TYPE = GGModelTypes.SliceSetStrokeColorProc; SliceGetStrokeColorProc: TYPE = GGModelTypes.SliceGetStrokeColorProc; SliceSetFillColorProc: TYPE = GGModelTypes.SliceSetFillColorProc; SliceGetFillColorProc: TYPE = GGModelTypes.SliceGetFillColorProc; SliceSetArrowsProc: TYPE = GGModelTypes.SliceSetArrowsProc; SliceGetArrowsProc: TYPE = GGModelTypes.SliceGetArrowsProc; NotFound: SIGNAL; FontNameError: SIGNAL; <> RegisterSliceClass: PROC [class: SliceClass]; FetchSliceClass: PROC [name: ATOM] RETURNS [class: SliceClass]; <> CopySlice: PROC [slice: Slice] RETURNS [copy: Slice]; DeleteSlice: PROC [scene: Scene, slice: Slice]; EntitiesInSlice: PROC [slice: Slice] RETURNS [entityGenerator: EntityGenerator]; <> <<>> BuildTextSliceClass: PROC [] RETURNS [class: SliceClass]; MakeTextSlice: PROC [text: Rope.ROPE, color: Imager.Color _ Imager.black, amplifySpace: REAL _ 1.0, dropShadowsOn: BOOL _ FALSE, dropShadowOffset: Vector _ [0.0, 0.0], shadowColor: Imager.Color _ Imager.black] RETURNS [slice: Slice]; <> SetTextFont: PROC [slice: Slice, prefix: Rope.ROPE, family: Rope.ROPE, face: Rope.ROPE, fontName: Rope.ROPE, scale: REAL _ 1.0, fontScale: REAL _ 1.0, transform: ImagerTransformation.Transformation, feedback: ViewerClasses.Viewer] RETURNS [ success: BOOL _ TRUE]; <> GetFontValues: PROC [slice: Slice] RETURNS [prefix, family, face: Rope.ROPE, transform: ImagerTransformation.Transformation, preferredSize: REAL]; GetFontValuesRope: PROC [slice: Slice] RETURNS [values: Rope.ROPE]; GetText: PROC [slice: Slice] RETURNS [text: Rope.ROPE]; AppendText: PROC [slice: Slice, text: Rope.ROPE]; BackspaceText: PROC [slice: Slice]; SetTextAmplifySpace: PROC [slice: Slice, amplifySpace: REAL, feedback: ViewerClasses.Viewer]; GetTextAmplifySpace: PROC [slice: Slice] RETURNS [amplifySpace: REAL]; SetTextColor: PROC [slice: Slice, color: Imager.Color, colorName: Rope.ROPE]; GetTextColor: PROC [slice: Slice] RETURNS [color: Imager.Color, colorName: Rope.ROPE]; FontParamsFromFontName: PROC [fontName: Rope.ROPE] RETURNS [fontFamily: ATOM, fontFace: NodeStyle.FontFace, fontSize: REAL]; DropShadowOn: PROC [slice: Slice, offset: Vector]; DropShadowOff: PROC [slice: Slice]; <> <> <> <<>> <> <<>> Corner: TYPE = {none, ll, ul, ur, lr}; -- lower left, upper left, upper right, lower right Edge: TYPE = {none, left, right, top, bottom}; BuildBoxSliceClass: PROC [] RETURNS [class: SliceClass]; <> MakeBoxSlice: PROC [box: BoundBox, corner: Corner, transform: ImagerTransformation.Transformation, strokeWidth: REAL _ 2.0] RETURNS [sliceD: SliceDescriptor]; <> BuildCircleSliceClass: PROC [] RETURNS [class: SliceClass]; MakeCircleSlice: PROC [origin: Point, outerPoint: Point, strokeWidth: REAL _ 2.0, strokeColor: Imager.Color _ Imager.black, fillColor: Imager.Color _ NIL] RETURNS [sliceD: SliceDescriptor]; <> <<>> BuildIPSliceClass: PROC [] RETURNS [class: SliceClass]; MakeIPSliceFromMaster: PROC [ipMaster: Interpress.Master, pixelsPerUnit: REAL _ 2834.646, fullName: Rope.ROPE _ NIL, feedback: Viewer, transform: ImagerTransformation.Transformation _ NIL, localBox: BoundBox _ NIL, includeByValue: BOOL] RETURNS [slice: Slice]; <> MakeIPSliceFromMaskPixel: PROC [pa: Imager.PixelArray, color: Color, feedback: Viewer, transform: ImagerTransformation.Transformation _ NIL] RETURNS [slice: Slice]; MakeIPSliceFromMaskBits: PROC [base: LONG POINTER, wordsPerLine: NAT, sMin, fMin, sSize, fSize: NAT, tx, ty: INTEGER _ 0, color: Color, feedback: Viewer, transform: ImagerTransformation.Transformation _ NIL] RETURNS [slice: Slice]; SetIncludeByValue: PROC [slice: Slice, includeByValue: BOOL]; GetIncludeByValue: PROC [slice: Slice] RETURNS [includeByValue: BOOL]; <> <> <<>> NoOpBoundBox: SliceBoundBoxProc; NoOpCopy: SliceCopyProc; <> NoOpDrawParts: SliceDrawPartsProc; NoOpDrawTransform: SliceDrawTransformProc; NoOpDrawSelectionFeedback: SliceDrawSelectionFeedbackProc; NoOpDrawAttractorFeedback: SliceDrawAttractorFeedbackProc; <> NoOpTransform: SliceTransformProc; <> NoOpDescribe: SliceDescribeProc; NoOpFileout: SliceFileoutProc; NoOpFilein: SliceFileinProc; <> NoOpEmptyParts: SliceEmptyPartsProc; NoOpNewParts: SliceNewPartsProc; NoOpUnionParts: SliceUnionPartsProc; NoOpDifferenceParts: SliceDifferencePartsProc; NoOpMovingParts: SliceMovingPartsProc; NoOpFixedParts: SliceFixedPartsProc; NoOpAugmentParts: SliceAugmentPartsProc; NoOpPointsInDescriptor: SlicePointsInDescriptorProc; NoOpPointPairsInDescriptor: SlicePointPairsInDescriptorProc; NoOpNextPoint: SliceNextPointProc; NoOpNextPointPair: SliceNextPointPairProc; NoOpClosestPoint: SliceClosestPointProc; NoOpClosestPointAndTangent: SliceClosestPointAndTangentProc; NoOpClosestSegment: SliceClosestSegmentProc; NoOpLineIntersection: SliceLineIntersectionProc; NoOpCircleIntersection: SliceCircleIntersectionProc; NoOpHitDataAsSimpleCurve: SliceHitDataAsSimpleCurveProc; <