<> <> DIRECTORY CADTypes USING [Scad, VariableRec, VisibleMask], <> Rope USING [ROPE], ThreeDBasics USING [Context]; SurfaceViewer: CEDAR DEFINITIONS ~ BEGIN <<>> <> SurfaceRec: TYPE ~ RECORD [ scad: CADTypes.Scad, id: NAT, mask: REF CADTypes.VisibleMask]; SurfaceSeq: TYPE ~ RECORD [ surfaces: SEQUENCE length: NAT OF SurfaceRec]; SurfaceViewer: TYPE ~ RECORD [ context3d: REF ThreeDBasics.Context, surfaces: REF SurfaceSeq, numberOfSurfaces: NAT, nextID: NAT]; Error: ERROR[why: ATOM]; <> CreateSurfaceViewer: PROC[] RETURNS[sviewer: REF SurfaceViewer]; <> <<>> GetThreeDContext: PROC[sviewer: REF SurfaceViewer] RETURNS[context3d: REF ThreeDBasics.Context]; <> <<>> LoadSurface: PROC[surface: CADTypes.Scad, sviewer: REF SurfaceViewer] RETURNS[id: NAT]; <> <<>> MaskSurface: PROC[id: NAT, mask: REF CADTypes.VisibleMask, sviewer: REF SurfaceViewer]; <> <<>> HideSurface: PROC[id: NAT, sviewer: REF SurfaceViewer]; <> <<>> UnHideSurface: PROC[id: NAT, sviewer: REF SurfaceViewer]; <> <<>> DeleteSurface: PROC[id: NAT, sviewer: REF SurfaceViewer]; <> <<>> FlushSurfaces: PROC[sviewer: REF SurfaceViewer]; <> <<>> <> <> <<>> <> <> <<>> <> <> DrawFrame: PROC [sviewer: REF SurfaceViewer]; <> <<>> InvokeRayTracer: PROC[variables: CADTypes.VariableRec, filename: Rope.ROPE, pixelsU, pixelsV: NAT, sviewer: REF SurfaceViewer]; <> END.