<> <> <> DIRECTORY G3dRender; G3dShadeClipXfm: CEDAR DEFINITIONS ~ BEGIN <> Pixel: TYPE ~ G3dRender.Pixel; -- [ r, g, b, a, z: CARDINAL] Triple: TYPE ~ G3dRender.Triple; -- [ x, y, z: REAL]; RGB: TYPE ~ G3dRender.RGB; Matrix: TYPE ~ G3dRender.Matrix; OutCode: TYPE ~ G3dRender.OutCode; ClipState: TYPE ~ G3dRender.ClipState; Context: TYPE ~ G3dRender.Context; CtlPointSequence: TYPE ~ G3dRender.CtlPointSequence; Shape: TYPE ~ G3dRender.Shape; ShadingSequence: TYPE ~ G3dRender.ShadingSequence; <> FacingDir: TYPE ~ G3dRender.FacingDir; CtlPtInfo: TYPE ~ G3dRender.CtlPtInfo; Patch: TYPE ~ G3dRender.Patch; << RECORD [>> << type: ATOM _ NIL, >> << oneSided: BOOL _ TRUE, >> << nVtces: NAT _ 0, >> << clipState: ClipState _ unknown, >> << dir: FacingDir _ unknown,>> << props: PropList _ NIL, >> << ctlPt: SEQUENCE maxLength: NAT OF CtlPtInfo>> << ];>> <<>> PatchSequence: TYPE ~ G3dRender.PatchSequence; << RECORD [SEQUENCE length: CARDINAL OF REF Patch]; >> <> GetCtlPtInfo: PROC RETURNS [REF CtlPtInfo]; <> ReleaseCtlPtInfo: PROC [vtx: REF CtlPtInfo]; <> GetPatch: PROC [size: NAT] RETURNS [REF Patch]; <> ReleasePatch: PROC [p: REF Patch]; <> <> GetPolyNmls: PUBLIC PROC[context: Context, shape: Shape]; <> GetVtxNmls: PROC [context: Context, shape: Shape]; <> <> ClipBoundingSphere: PROC[context: Context, shape: Shape, xfm: Matrix] RETURNS[G3dRender.ClipState]; ClipPoly: PROC [context: Context, poly: REF Patch] RETURNS [REF Patch]; <> GetPatchClipState: PROC[ patch: REF Patch]; <> GetClipCodeForPt: PROC [context: Context, pt: Triple] RETURNS [clip: OutCode]; <> XfmPtToEyeSpace: PROC [context: Context, pt: Triple, xfm: Matrix _ NIL] RETURNS [Triple, OutCode]; <> XfmPtToDisplay: PROC [context: Context, pt: Triple, shape: Shape _ NIL] RETURNS [Triple]; <> <> RegisterStandardSurface: PROC [context: Context, type: ATOM]; <> BackFacing: PROC [context: Context, poly: REF Patch, useEyeSpace: BOOL _ FALSE] RETURNS [FacingDir]; <> ShadePoly: PROC [context: Context, poly: REF Patch]; END.