DIRECTORY G3dBasic, G3dMatrix, G3dSpline; G3dPatch: CEDAR DEFINITIONS ~ BEGIN Triple: TYPE ~ G3dBasic.Triple; Matrix: TYPE ~ G3dMatrix.Matrix; Spline: TYPE ~ G3dSpline.Spline; MinMax: TYPE ~ RECORD [min, max: REAL]; ControlPoints: TYPE ~ REF ControlPointsRep; ControlPointsRep: TYPE ~ ARRAY [0..4) OF ARRAY [0..4) OF Triple; Patch: TYPE ~ REF PatchRep; PatchRep: TYPE ~ RECORD [ controlPoints: ControlPoints ¬ NIL, sCurves: ARRAY [0..4) OF Spline ¬ ALL[NIL], tCurves: ARRAY [0..4) OF Spline ¬ ALL[NIL] ]; FourPatches: TYPE ~ ARRAY [0..4) OF Patch; FromBezier: PROC [cp: ControlPoints, out: Patch ¬ NIL] RETURNS [Patch]; Position: PROC [patch: Patch, s, t: REAL] RETURNS [Triple]; Normal: PROC [patch: Patch, s, t: REAL, unitize: BOOL ¬ TRUE] RETURNS [Triple]; MinMaxCurvature: PROC [patch: Patch, s, t: REAL] RETURNS [MinMax]; SCurve: PROC [patch: Patch, s: REAL, out: Spline ¬ NIL] RETURNS [Spline]; TCurve: PROC [patch: Patch, t: REAL, out: Spline ¬ NIL] RETURNS [Spline]; Subdivide: PROC [patch: Patch, s, t: REAL ¬ 0.5] RETURNS [FourPatches]; END.  G3dPatch.mesa Copyright Σ 1985, 1992 by Xerox Corporation. All rights reserved. Bloomenthal, October 21, 1992 4:59 pm PDT Type Declarations Four sets in the t direction of four points in the s direction. Creation Create a representation for the Bezier curved surface, given a sequence of 16 control points. Use out if non-NIL. Evaluation Return the point of the surface at parametric coordinates (s, t). Return the normal of the surface at parametric coordinates (s, t). Return the minimum and maximum curvatures at parametric coordinates (s, t). Return the curve with constant s, evaluated t IN [0..1]. Return the curve with constant t, evaluated s IN [0..1]. Subdivision Return the four patches: [0..s][0..t] (p0), [s..1][0..t] (p1), [0..s][t..1] (p2), and [s..1][t..1] (p3). Κz•NewlineDelimiter –"cedarcode" style™™ Jšœ Οeœ6™BJ™)J˜—šΟk œ ˜)J˜—JšΠblœžœž ˜Jšœž˜headšΟl™Jšœ žœ˜"Jšœ žœ˜#šœ žœ˜#J˜—šœ žœžœ žœ˜*J˜—Jšœžœžœ˜,š œžœžœžœžœžœ˜@J™GJ˜—Jšœ žœžœ ˜šœ žœžœ˜Jšœ"žœ˜&Jš œ žœžœ žœžœ˜0Jš œ žœžœ žœžœ˜/J˜J˜—Jšœžœžœžœ˜,—š ™šΟn œžœ"žœžœ ˜GJ™6Jšœ7Οsœ™;——š  ™ š‘œžœžœžœ ˜;J™AJ™—š ‘œžœžœ žœžœžœ ˜OJ™BJ™—š‘œžœžœžœ ˜BJ™KJ™—š ‘œžœžœžœžœ ˜IJšœ.’œ™8J™—š ‘œžœžœžœžœ ˜IJšœ.’œ™8——š  ™ š‘ œžœžœžœ˜GJ™h——J™Jšžœ˜J˜—…—F ΰ