<> <> <> DIRECTORY Rope, G3dRender, ImagerPixel; G3dAnimationSupport: CEDAR DEFINITIONS ~ BEGIN <> ROPE: TYPE ~ Rope.ROPE; Context: TYPE ~ G3dRender.Context; Pair: TYPE ~ G3dRender.Pair; Triple: TYPE ~ G3dRender.Triple; -- RECORD [ x, y, z: REAL]; TripleSequence: TYPE ~ G3dRender.TripleSequence; Shape: TYPE ~ G3dRender.Shape; PixelMap: TYPE ~ ImagerPixel.PixelMap; ViewProc: TYPE ~ PROC[context: Context, lookingFrom, lookingAt: Triple, frameNo: NAT]; FrameSequence: TYPE ~ RECORD[ currentFrame: NAT _ 0, length: NAT, labels: BOOLEAN _ FALSE, frames: SEQUENCE maxLength: NAT OF PixelMap ]; <> ShowAISCacheFrame: PROC[context: Context, frames: REF FrameSequence]; <> PlayBackNumberedAISFiles: PROC[context: Context, fileRoot : 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>> <> CacheAISFiles: PROC[context: Context, fileOfNames: ROPE, labeled: BOOL _ FALSE] RETURNS[REF FrameSequence]; <> CacheNumberedAISFiles: PROC[context: Context, fileRoot: ROPE, numFiles: NAT, start: NAT _ 0, labeled: BOOL _ FALSE] RETURNS[REF FrameSequence]; <> PlayBackAISCache: PROC[context: Context, frames: REF FrameSequence, framesPerSec, secondsPlayingTime: NAT, bothWays: BOOLEAN _ FALSE, startNum: NAT _ 0]; <> ShowNextAISCacheFrame: PROC[context: Context, frames: REF FrameSequence, framesPerSec: INTEGER _ 0]; <> <<>> <> <> Orbit: PROC [context: Context, lookingFrom, lookingAt, axis, base: Triple, moveEPNotCI: BOOLEAN _ TRUE, framesPerRev: NAT _ 16, startAt: NAT _ 0, endAt: NAT _ 32767, filename: Rope.ROPE _ NIL ]; <> MakeFramesFromTo: PROC [context: Context, lookingFrom, lookingAt, toLookingFrom, toLookingAt: Triple, framesOnLine: NAT, startAt, endAt: NAT _ 0, filename: Rope.ROPE _ NIL ]; <> MakeFramesOnPath: PROC [context: Context, lookingFrom, lookingAt: LIST OF Triple, framesOnPath: NAT, startAt, endAt: NAT _ 0, filename: Rope.ROPE _ NIL, closed: BOOLEAN _ TRUE ]; <> <> <> MoveEyePointInOrbit: PROC[ context: Context, eyePt, lookingAt, axis, base: Triple, displayProc: ViewProc, framesPerRev: NAT, startAt, endAt: NAT _ 0 ]; MoveCtrOfInterestInOrbit: PROC[ context: Context, eyePt, lookingAt, axis, base: Triple, displayProc: ViewProc, framesPerRev: NAT, startAt, endAt: NAT _ 0 ]; MoveOnLine: PROC[ context: Context, eyePt, lookingAt, toEyePt, toLookingAt: Triple, displayProc: ViewProc, framesOnLine: NAT, startAt, endAt: NAT _ 0 ]; MoveOnOpenCurve: PROC[ context: Context, eyePts, lookingAts: TripleSequence, displayProc: ViewProc, framesOnCurve: NAT, startAt, endAt: NAT _ 0 ]; MoveOnClosedCurve: PROC[ context: Context, eyePts, lookingAts: TripleSequence, displayProc: ViewProc, framesOnCurve: NAT, startAt, endAt: NAT _ 0 ]; <> ShowOpenCurve: PROC[ context: Context, eyePts, lookingAts: TripleSequence, numFrames: NAT, startAt: NAT _ 0 ]; ShowClosedCurve: PROC[ context: Context, eyePts, lookingAts: TripleSequence, numFrames: NAT, startAt: NAT _ 0 ]; ShowOrbit: PROC[ context: Context, startPt, axis, base: Triple, framesPerRev: NAT ]; <> <> SetTxtrTranslation: PROC[ context: Context, shapeName: Rope.ROPE, translation: Pair, frames: NAT ]; <> <> SetShapeInterpolation: PUBLIC PROC[ context: Context, shapeName: Rope.ROPE, begin, end: REF Shape, frames: NAT ]; <> <> SetShapeManipulation: PUBLIC PROC[ context: Context, shapeName: Rope.ROPE, prop, propVal: REF ANY, proc: G3dRender.ShapeProc ]; <> AddShapeManipulation: PUBLIC PROC[ context: Context, shapeName: Rope.ROPE, prop, propVal: REF ANY, proc: G3dRender.ShapeProc ]; <> END.