DIRECTORY ThreeDScenes USING [Context], Pixels USING [PixelBuffer], Rope USING [ROPE]; AISAnimation: CEDAR DEFINITIONS ~ BEGIN FrameSequence: TYPE ~ RECORD[ currentFrame: NAT _ 0, length: NAT, frames: SEQUENCE maxLength: NAT OF Pixels.PixelBuffer ]; PlayBackNumberedAISFiles: PROC[context: REF ThreeDScenes.Context, fileRoot : Rope.ROPE, startNum, numFiles, framesPerSec, secondsPlayingTime : NAT]; StoreFiles: PROC[context: REF ThreeDScenes.Context, fileRoot: Rope.ROPE, number: NAT]; CacheAISFiles: PROC[context: REF ThreeDScenes.Context, fileOfNames: Rope.ROPE, frames: REF FrameSequence _ NIL] RETURNS[REF FrameSequence]; CacheNumberedAISFiles: PROC[context: REF ThreeDScenes.Context, fileRoot: Rope.ROPE, numFiles: NAT, start: NAT _ 0] RETURNS[REF FrameSequence]; PlayBackAISCache: PROC[context: REF ThreeDScenes.Context, frames: REF FrameSequence, framesPerSec, secondsPlayingTime: NAT, bothWays: BOOLEAN _ FALSE, startNum: NAT _ 0]; ShowNextAISCacheFrame: PROC[context: REF ThreeDScenes.Context, frames: REF FrameSequence, framesPerSec: INTEGER _ 0]; PasteInSequenceNo: PROC[fileRoot: Rope.ROPE, number: NAT] RETURNS[Rope.ROPE]; ShowAISCacheFrame: PROC[context: REF ThreeDScenes.Context, frames: REF FrameSequence]; GetAIS: PROC[context: REF ThreeDScenes.Context, fileRoot: Rope.ROPE, xOffset, yOffset: INTEGER _ 0, center: BOOLEAN _ TRUE] RETURNS[ xSize, ySize: INTEGER]; PutAIS: PROC[context: REF ThreeDScenes.Context, fileRoot: Rope.ROPE]; GetInterpress: PROC[context: REF ThreeDScenes.Context, fileRoot: Rope.ROPE, xOffset, yOffset: INTEGER _ 0, center: BOOLEAN _ TRUE] RETURNS[ xSize, ySize: INTEGER]; PutInterpress: PROC[context: REF ThreeDScenes.Context, fileRoot: Rope.ROPE]; END. ΦAISAnimation.mesa Copyright c 1984 by Xerox Corporation. All rights reserved. Last Edited by: May 4, 1985 9:42:42 am PDT Crow, October 4, 1986 3:02:39 pm 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 BLT speed) - secondsPlayingTime limits the running time Stores image on display in named file, sequence number is added to file name These store a cache of images in memory for flexible playback, return a handle to the cache 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 Shuts down playback from another process Adds number to the file name, sticking it in just before the extension, for sequencing Shows the specified frame 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 Κβ˜Iheadšœ™šœ Οmœ1™——Nš‘œžœ žœ&žœ˜EJš œžœžœžœžœžœ ˜pOš‘œžœ žœ&žœ˜ENš‘ œžœ žœ&žœ˜LJš œžœžœžœžœžœ ˜pOš‘ œžœ žœ&žœ˜LO˜—Ošžœ˜J˜—…—@ψ