<> <> <> <> DIRECTORY ScanConvert USING [Spot], ThreeDBasics USING [Context, VertexInfo, RealSequence], ThreeDSurfaces USING [Patch]; Tilers: CEDAR DEFINITIONS ~ BEGIN <> TilersError: SIGNAL [reason: ATOM]; VertexInfo: TYPE ~ ThreeDBasics.VertexInfo; Patch: TYPE ~ ThreeDSurfaces.Patch; LerpVtx: TYPE = RECORD [ x, y: REAL, val: REF ThreeDBasics.RealSequence ]; LerpVtxSequence: TYPE ~ RECORD [ length: NAT, s: SEQUENCE maxLength: NAT OF REF LerpVtx ]; FancyPatch: TYPE = RECORD [ recurseLevel: NAT _ 0, spot: ScanConvert.Spot, -- [x, y, coverage, mask, val, yIncr, xIncr, props, proc], vtx: SEQUENCE length: NAT OF LerpVtx ]; <> AddHighlight: PROC[spot: ScanConvert.Spot] RETURNS[ScanConvert.Spot]; <> << Call point for discriminating among tilers>> PolygonTiler: PROC[context: REF ThreeDBasics.Context, poly: REF Patch]; <> ConstantTiler: PROC[context: REF ThreeDBasics.Context, poly: REF Patch]; <> SmoothTiler: PROC[context: REF ThreeDBasics.Context, poly: REF Patch]; <> ShinyTiler: PROC[context: REF ThreeDBasics.Context, poly: REF Patch]; PhongShadeAllPolygons: PROC; <> <<>> PhongShadeOnlyHighLightedPolygons: PROC; <> <> << for Anti-aliasing, texture, etc.>> FancyTiler: PROC[context: REF ThreeDBasics.Context, poly: REF Patch]; <> RealFancyTiler: PUBLIC PROC[context: REF ThreeDBasics.Context, poly: REF FancyPatch]; END.