<<>> <> <> <> DIRECTORY G3dBasic, G3dPlane, G3dSpline, G3dTube, ImplicitDefs, ImplicitTube; ImplicitWeb: CEDAR DEFINITIONS ~ BEGIN Pair: TYPE ~ G3dBasic.Pair; Triple: TYPE ~ G3dBasic.Triple; Plane: TYPE ~ G3dPlane.Plane; Spline: TYPE ~ G3dSpline.Spline; Tube: TYPE ~ G3dTube.Tube; DistanceMode: TYPE ~ ImplicitDefs.DistanceMode; Sample: TYPE ~ ImplicitDefs.Sample; <> Web: TYPE ~ REF WebRep; WebRep: TYPE ~ RECORD [ tube0, tube1: Tube ¬ NIL, taper: REAL ¬ 0.5, bow: REAL ¬ -1.0, plane: Plane ¬ [0.0, 0.0, 0.0, 0.0], helper: Spline ¬ NIL ]; WebValue: TYPE ~ RECORD [ a0, a1: REAL ¬ 0.0, -- relative weighting of tubes value: REAL ¬ 0.0, -- implicit value tube0, tube1: Tube ¬ NIL -- closest tubes ]; <> MakeWeb: PROC [tube0, tube1: Tube] RETURNS [Web]; <> <<>> PrepareWeb: PROC [tube: Tube, measureMode: ATOM, distanceMode: DistanceMode] RETURNS [web: Web]; <> <<>> PrepareWebs: PROC [tube: Tube, measureMode: ATOM, distanceMode: DistanceMode] RETURNS [web0, web1: Web]; <> <> ValueOfWeb: PROC [ q: Triple, tube: Tube, web: Web, distanceMode: DistanceMode, tolerance, spread: REAL ¬ 0.0] RETURNS [Sample]; <> <<>> ValueOfWebs: PROC [ q: Triple, tube: Tube, web0, web1: Web, distanceMode: DistanceMode, tolerance, spread: REAL ¬ 0.0] RETURNS [Sample]; <> <<>> TextureOfWeb: PROC [ q: Triple, tube: Tube, web: Web, distanceMode: DistanceMode, tolerance: REAL ¬ 0.0] RETURNS [Pair]; <> <> <> TextureOfWebs: PROC [ q: Triple, tube: Tube, web0, web1: Web, distanceMode: DistanceMode, tolerance: REAL ¬ 0.0] RETURNS [Pair]; <> END.