DIRECTORY ThreeDBasics USING [Context], ImagerPixel USING [PixelMap], Rope USING [ROPE]; RESandPixelMap: CEDAR DEFINITIONS ~ BEGIN FrameSequence: TYPE ~ RECORD[ currentFrame: NAT _ 0, length: NAT, frames: SEQUENCE maxLength: NAT OF ImagerPixel.PixelMap ]; PlayBackNumberedRESFiles: PROC[context: REF ThreeDBasics.Context, fileRoot : Rope.ROPE, startNum, numFiles, framesPerSec, secondsPlayingTime : NAT]; StoreFiles: PROC[context: REF ThreeDBasics.Context, fileRoot: Rope.ROPE, number: NAT]; CacheRESFiles: PROC[context: REF ThreeDBasics.Context, fileOfNames: Rope.ROPE, frames: REF FrameSequence _ NIL] RETURNS[REF FrameSequence]; CacheNumberedRESFiles: PROC[context: REF ThreeDBasics.Context, fileRoot: Rope.ROPE, numFiles: NAT, start: NAT _ 0] RETURNS[REF FrameSequence]; PlayBackFrameCache: PROC[context: REF ThreeDBasics.Context, frames: REF FrameSequence, framesPerSec, secondsPlayingTime: NAT, bothWays: BOOLEAN _ FALSE, startNum: NAT _ 0]; ShowNextCachedFrame: PROC[context: REF ThreeDBasics.Context, frames: REF FrameSequence, framesPerSec: INTEGER _ 0]; PasteInSequenceNo: PROC[fileRoot: Rope.ROPE, number: NAT] RETURNS[Rope.ROPE]; ShowCachedFrame: PROC[context: REF ThreeDBasics.Context, frames: REF FrameSequence]; GetRES: PROC[ context: REF ThreeDBasics.Context, fileRoot: Rope.ROPE, xOffset, yOffset: INTEGER _ 0, center: BOOLEAN _ TRUE ] RETURNS[ xSize, ySize: INTEGER]; PutRES: PROC[ context: REF ThreeDBasics.Context, fileRoot: Rope.ROPE, doEverything: BOOLEAN _ FALSE ]; GetInterpress: PROC[ context: REF ThreeDBasics.Context, fileRoot: Rope.ROPE, xOffset, yOffset: INTEGER _ 0, center: BOOLEAN _ TRUE ] RETURNS[ xSize, ySize: INTEGER]; PutInterpress: PROC[ context: REF ThreeDBasics.Context, fileRoot: Rope.ROPE ]; END. ΜRESandPixelMap.mesa Copyright c 1984 by Xerox Corporation. All rights reserved. Last Edited by: May 4, 1985 9:42:42 am PDT Crow, August 17, 1987 10:35:51 am PDT Basic Types Procedures for Animation - These build sequences of AIS files and play them back Plays back a sequenced set of AIS files, cycling through the files ad nauseum - startNum specifies the first image in the sequence to display - numFiles specifies the number of different images to be displayed - framesPerSec ranges from 1 up to 30 (performance is limited by bitblt speed) - secondsPlayingTime limits the running time Stores image on display in named file(s), sequence number is added to file name Stores a cache of images, named in a file of ROPEs, in memory for playback. Returns a handle to the cache Stores a cache of images, with sequentially numbered file names, in memory for flexible playback. Returns a handle to the cache. File names of the form: name0.ais, name1.ais, name64.ais, etc. Start indicates file name to begin sequence with. Plays back a cached set of images as above, will cycle through the sequence or run back and forth over the sequence if bothWays is set TRUE, the playback may be started in midsequence if startNum is nonzero Shows next frame in sequence, delaying enough time to ensure framesPerSec not exceeded, handy for interactive control of frame rate, negative framesPerSec shows previous frame Support Procedures Adds number to the file name, sticking it in just before the extension, for sequencing Shows the specified frame from a frame sequence cached in VM The following loadAIS files into a displayed context without resampling. - If the stored image has more pixels than the display, part will be clipped. - If the stored image has fewer pixels than the display, an unwritten border will be left around the displayed image. - xOffset moves the displayed to the right if positive, otherwise left (units are pixels) - yOffset moves the displayed up if positive, otherwise down Reads AIS file(s) to match context.display. Searches for appropriate file names, eg. file-red.ais, file-grn.ais, file-alpha.ais, file-depth.ais, etc. See AISAnimationImpl.standardNames. Writes current image in context.display out to ais file(s). IF doEverything THEN alpha and depth channels will be written out if they exist . Read image directly from interpress file(s). Unimplemented. Write directly to interpress file alpha and depth channels ignored. Unimpelmented Κ˜Iheadšœ™šœ Οmœ1™žœžœžœ žœ˜ΔOšœ‡žœE™ΠO˜—š ‘œžœ žœ*žœžœ˜€Ošœ―™―——šœ™O™š ‘œžœžœ žœžœžœ˜MOšœX™X—š‘œžœ žœžœ˜TOšœ=™=O™šœK™KNšœO™ONšœu™uN™YN™>——Nš‘œžœ žœ&žœ˜Fš œžœžœžœž œžœ˜cJšœΗ™Η—š ‘œžœ žœ&žœžœžœ˜mOšœ™—Nš‘ œžœ žœ&žœ˜Mš œžœžœžœ žœžœ˜iJ™=—š‘ œžœ žœ&žœ˜NJšœW™W—O˜—Ošžœ˜J˜—…—`?