<> <> <> <> DIRECTORY G3dBasic, G3dLight, G3dRender, G3dShape; G3dShade: CEDAR DEFINITIONS ~ BEGIN <> RGB: TYPE ~ G3dRender.RGB; Pair: TYPE ~ G3dBasic.Pair; Triple: TYPE ~ G3dBasic.Triple; Light: TYPE ~ G3dLight.Light; LightSequence: TYPE ~ G3dLight.LightSequence; CtlPtToRealSeqProc: TYPE ~ G3dRender.CtlPtToRealSeqProc; CtlPtInfoProc: TYPE ~ G3dRender.CtlPtInfoProc; SpotProc: TYPE ~ G3dRender.SpotProc; Context: TYPE ~ G3dRender.Context; ShadingClass: TYPE ~ G3dRender.ShadingClass; Shape: TYPE ~ G3dShape.Shape; <> RegisterShadingClass: PROC [class: ShadingClass, type: ATOM]; <> GetShadingClass: PROC [type: ATOM] RETURNS [class: ShadingClass]; <> LoadShadingClass: PUBLIC PROC [shape: Shape, type: ATOM _ $Default]; <> <> Ambient: PROC [normal: Triple, data: REF _ NIL] RETURNS [ambient: RGB]; <> <> TotalSurfaceIntensity: PROC [ normal, eyeView: Triple, lights: LightSequence, portionSpecular: REAL] RETURNS [REAL]; <> <> SurfaceIntensity: PUBLIC PROC [light: Light, normal, eyeView: Triple, portionSpecular: REAL] RETURNS [REAL]; <> SpecularIntensity: PROC [light: Light, normal, eyeView: Triple] RETURNS [REAL]; <> DiffuseIntensity: PROC [light: Light, normal: Triple] RETURNS [REAL]; <> <> ShadeVtx: G3dRender.CtlPtInfoProc; <> NoShadeVtx: G3dRender.CtlPtInfoProc; <> <> END.