<> <> <> DIRECTORY Matrix3d, Spline3d, ThreeDBasics, Vector3d; Misc3d: CEDAR DEFINITIONS ~ BEGIN <> Pair: TYPE ~ Vector3d.Pair; Quad: TYPE ~ Vector3d.Quad; Triple: TYPE ~ Vector3d.Triple; TripleSequence: TYPE ~ Vector3d.TripleSequence; TripleSequenceRep: TYPE ~ Vector3d.TripleSequenceRep; Matrix: TYPE ~ Matrix3d.Matrix; Coeffs: TYPE ~ Spline3d.Coeffs; NearPair: TYPE ~ RECORD [point: Pair, alpha: REAL]; NearTriple: TYPE ~ RECORD [point: Triple, alpha: REAL]; PlaneIntersection: TYPE ~ RECORD [nRoots: NAT _ 0, roots: ARRAY [0..3) OF REAL]; <> FrontFacing: PROC [vector: Triple, view: Matrix] RETURNS [BOOL]; <> <> <<>> NearestPair: PROC [p0, p1, q: Pair] RETURNS [NearPair]; <> <<>> NearestTriple: PROC [p0, p1, q: Triple] RETURNS [NearTriple]; <> <<>> IntersectSplineWithPlane: PROC [coeffs: Coeffs, plane: Quad] RETURNS [PlaneIntersection]; <> <<>> END.