<> <> <> <> 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]; <> <<- 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>> 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]; <> <<>> <> <<- 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 >> 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.