<> <> <> <> DIRECTORY Rope USING [ ROPE ], IO USING [ STREAM ], Imager USING [ Rectangle ], ThreeDBasics USING [ Context, NatTable, PairSequence, Patch, RealSequence, RGB, RGBSequence, ShapeInstance, ShapeSequence, Triple, TripleSequence ]; SceneUtilities: CEDAR DEFINITIONS ~ BEGIN <> RGB: TYPE ~ ThreeDBasics.RGB; RGBSequence: TYPE ~ ThreeDBasics.RGBSequence; RealSequence: TYPE ~ ThreeDBasics.RealSequence; PairSequence: TYPE ~ ThreeDBasics.PairSequence; TripleSequence: TYPE ~ ThreeDBasics.TripleSequence; Triple: TYPE ~ ThreeDBasics.Triple; -- RECORD [ x, y, z: REAL]; NatTable: TYPE ~ ThreeDBasics.NatTable; Patch: TYPE ~ ThreeDBasics.Patch; ShapeInstance: TYPE ~ ThreeDBasics.ShapeInstance; ShapeSequence: TYPE ~ ThreeDBasics.ShapeSequence; Context: TYPE ~ ThreeDBasics.Context; <> GetRope: PROC[input: IO.STREAM] RETURNS[Rope.ROPE]; <> CreateDefaultContext: PROC[] RETURNS [REF Context]; <> PrependWorkingDirectory: PROC[context: REF Context, file: Rope.ROPE] RETURNS[Rope.ROPE]; <> TackOnExtension: PUBLIC PROC[file, extension: Rope.ROPE] RETURNS[Rope.ROPE]; <> GetTmpContext: PROC [srcCtx: REF Context] RETURNS[dstCtx: REF Context]; <> CopyContextData: PROC [dstCtx, srcCtx: REF Context]; <> CopyContextShapes: PROC [dstCtx, srcCtx: REF Context]; <> StartLog: PROC [context: REF Context] RETURNS[IO.STREAM]; <> FlushLog: PROC [context: REF Context]; <> CloseLog: PROC [context: REF Context]; <> <> ForcePrioritySort: PROC[context: REF Context, on: BOOLEAN _ TRUE]; <> SetWindow: PROC[context: REF Context, size: Imager.Rectangle]; <> SetViewPort: PROC[context: REF Context, size: Imager.Rectangle]; <> <> SetAmbientLight: PROC [context: REF Context, color: Rope.ROPE]; <> SetBackgroundColor: PROC [context: REF Context, color: RGB]; <> GetBackgroundColor: PROC [context: REF Context] RETURNS [color: RGB]; NameBackgroundColor: PROC [context: REF Context, color: Rope.ROPE]; SetBackgroundImage: PROC [context: REF Context, aisFile: Rope.ROPE]; SetBackgroundContext: PROC [context, bkGrdCtx: REF Context ]; SetLight: PROC[context: REF Context, name: Rope.ROPE, position: Triple, color: RGB _ [1, 1, 1] ]; <> DeleteLight: PROC[context: REF Context, name: Rope.ROPE]; <> <> SaveOnFile: PROC[context: REF Context, fileName: Rope.ROPE]; <> RestoreFromFile: PROC[context: REF Context, fileName: Rope.ROPE]; <> MakeFrameFromFile: PROC[context: REF Context, fileName: Rope.ROPE]; <> ReadScene: PROC[context: REF Context, input: IO.STREAM]; <> WriteScene: PROC[context: REF Context, output: IO.STREAM]; <> <<>> <> SetTexture: PROC [shape: REF ShapeInstance, textures: REF PairSequence]; <> <<>> SetVertexProps: PROC [ shape: REF ShapeInstance, normals, colors, textures, transmittance: BOOL]; <> ReadShape: PROC[shape: REF ShapeInstance, fileName: Rope.ROPE]; <> CloneShape: PROC[newshape, oldShape: REF ShapeInstance]; <> AddShapeAt: PROC[ context: REF Context, shapeName: Rope.ROPE, fileName: Rope.ROPE, position: Triple _ [0.,0.,0.] ]; <> WriteShape: PROC[context: REF Context, shapeName: Rope.ROPE, fileName: Rope.ROPE, transformed: BOOL _ FALSE, xyz: BOOL _ TRUE, normal, color, trans, texture, polyClr: BOOL _ FALSE]; <> <> NewShape: PROC[ name: Rope.ROPE, type: ATOM _ $ConvexPolygon ] RETURNS[REF ShapeInstance]; <> ShapeFromData: PROC[ name: Rope.ROPE _ NIL, surface: REF NatTable, vertices, normals: REF TripleSequence _ NIL, colors: REF RGBSequence _ NIL, trnsmttnce: REF RealSequence _ NIL, txtrCoord: REF PairSequence _ NIL, insideVisible, faceted: BOOL _ FALSE, type: ATOM _ $ConvexPolygon ] RETURNS[REF ShapeInstance]; <> ShapeFromRope: PROC[ name: Rope.ROPE _ NIL, message: Rope.ROPE, color: Rope.ROPE _ NIL, size: REAL _ 0.5, font: Rope.ROPE _ NIL ] RETURNS[REF ShapeInstance]; <> ChangeRopeMessage: PUBLIC PROC[ context: REF Context, shapeName: Rope.ROPE, newMessage: Rope.ROPE ]; <> FindShape: PROC[ context: REF Context, shapeName: Rope.ROPE ] RETURNS[REF ShapeInstance]; <> AddShape: PROC[ context: REF Context, shape: REF ShapeInstance ]; <> DeleteShape: PROC[ context: REF Context, shapeName: Rope.ROPE ]; <> CopyShape: PROC[ context: REF Context, shapeName, newName: Rope.ROPE _ NIL ] RETURNS[REF ShapeInstance]; <> CopyShapeDirect: PROC[ shape: REF ShapeInstance, newName: Rope.ROPE _ NIL ] RETURNS[REF ShapeInstance]; <> PlaceShape: PROC[ context: REF Context, shapeName: Rope.ROPE, location: Triple]; <> MoveShape: PROC[ context: REF Context, shapeName: Rope.ROPE, delta: Triple]; <> RotateShapeLocal: PROC[ context: REF Context, shapeName: Rope.ROPE, theta: REAL]; <> RotateShape: PROC[ context: REF Context, shapeName: Rope.ROPE, axisBase, axisEnd: Triple, theta: REAL ]; <> OrientShape: PROC[ context: REF Context, shapeName: Rope.ROPE, axis: Triple]; <> Hide: PROC[context: REF Context, shapeName: Rope.ROPE]; <> Reveal: PROC[context: REF Context, shapeName: Rope.ROPE]; <> <> SetColor: PROC[context: REF Context, shapeName: Rope.ROPE, color: RGB]; SetFaceted: PROC[context: REF Context, shapeName: Rope.ROPE]; <> SetSmooth: PROC[context: REF Context, shapeName: Rope.ROPE]; <> SetHiddenLines: PROC[context: REF Context, shapeName: Rope.ROPE]; <