DIRECTORY Imager, ImagerPixelMap, ViewerClasses; ViewerBlast: CEDAR DEFINITIONS = BEGIN Viewer: TYPE = ViewerClasses.Viewer; PixelMap: TYPE = ImagerPixelMap.PixelMap; Context: TYPE = Imager.Context; IntPt: TYPE = RECORD [x, y: INTEGER _ 0]; IntBox: TYPE = RECORD [xmin, ymin, dx, dy: INTEGER _ 0]; Blast: PROC [ pm: PixelMap, --windowed area is source of blasted image lowerLeft: IntPt, --of where initial bitmap appears on screen convergeOn: IntPt _ [], --screen point for all centers to emanate from preSteps: INTEGER _ 3, --how many steps took from converge speedChooser: SpeedChooser _ NIL, --NIL => emanation initial: BOOLEAN _ TRUE, --xor coherent version? backwards: BOOLEAN _ FALSE]; SpeedChooser: TYPE = PROC [row, col: INTEGER] RETURNS [speed: IntPt]; RandomSpeed: SpeedChooser; ScreenPixelMap: PROC RETURNS [PixelMap]; CopyViewer: PROC [v: Viewer, window: IntBox _ [], windowed: BOOLEAN _ FALSE] RETURNS [pm: PixelMap, lowerLeft: IntPt]; PixelMapContext: PROC [pm: PixelMap] RETURNS [context: Context]; DrawPixelMap: PROC [context: Context, pm: PixelMap, tx, ty: INTEGER]; DrawBitmap: PROC [context: Context, bitmap: PixelMap, fOrigin, sOrigin: INTEGER]; MaskPixelMap: PROC [context: Context, pm: PixelMap, deviceOrgS, deviceOrgF: INTEGER]; END. 8ViewerBlast.Mesa Last Edited by: Spreitzer, June 18, 1985 1:45:16 pm PDT Slow = -y, fast = +x. lowerLeft in screen coords. With dx = fast, dy = -slow, (0, 0) at begin of last scan line of pm's buffer. Slow = -y, fast = +x. Begin of first scan line of pm's window appears at (tx, ty). Context's origin appears at [s: sOrigin, f: fOrigin] relative to bitmap's window. slow = -dy, fast = dx, 1 pixel = 1 context unit. [f: deviceOrgF, s: deviceOrgS] in pm's device (NOT window) coords aligns with context's origin. slow = -dy, fast = dx, 1 pixel = 1 context unit. Κϊ– "cedar" style˜J™J™7J˜IcodešΟk œ'˜0K˜KšΠbx œœ œ˜ K˜Kš˜K˜Kšœœ˜$Kšœ œ˜)Kšœ œ˜K˜Kšœœœœ˜)Kšœœœœ˜8K˜šΟnœ˜ šœ˜KšœΟc*˜8Kšœ +˜=Kšœ .˜FKšœ œ #˜:Kšœœ ˜4Kšœ œœ ˜0Kšœ œœ˜——K˜Kš Ÿ œœœ œœ˜EK˜KšŸ œ˜K˜KšŸœœœ ˜(K˜š Ÿ œœ,œœœ"˜vKšœ2™2—K˜šŸœœœ˜@K™M—K˜šŸ œœ*œ˜EKšœS™S—K˜šŸ œœ8œ˜QKšœQ™QK™0—K˜šŸ œœ:œ˜UKšœ_™_K™0—K˜Kšœ˜—…—ϊ ,