<> <> <> DIRECTORY Rope, Vector2; Vector3d: CEDAR DEFINITIONS ~ BEGIN Pair: TYPE ~ Vector2.VEC; Triple: TYPE ~ RECORD [x, y, z: REAL]; Quad: TYPE ~ RECORD [x, y, z, w: REAL]; Line: TYPE ~ RECORD [base, axis: Triple]; nullTriple: Triple ~ [0.0, 0.0, 0.0]; <> Null: PROC [v: Triple] RETURNS [BOOL]; <> Equal: PROC [v1, v2: Triple, tol: REAL _ 0.001] RETURNS [BOOL]; <> Add: PROC [v1, v2: Triple] RETURNS [Triple]; <> Sub: PROC [v1, v2: Triple] RETURNS [Triple]; <> Neg: PROC [v: Triple] RETURNS [Triple]; <> Dot: PROC [v1, v2: Triple] RETURNS [REAL]; <> Cross: PROC [v1, v2: Triple] RETURNS [Triple]; <> Combine: PROC [v1: Triple, s1: REAL, v2: Triple, s2: REAL] RETURNS [Triple]; <> Mag: PROC [v: Triple] RETURNS [REAL]; <> SameMag: PROC [v1, v2: Triple] RETURNS [Triple]; <> Square: PROC [v: Triple] RETURNS [REAL]; <> Distance: PROC [p1, p2: Triple] RETURNS [REAL]; <> LinePoint: PROC [p: Triple, l: Line] RETURNS [Triple]; <> Normalize: PROC [v: Triple] RETURNS [Triple]; <> Ray: PROC [l: Line, d: REAL] RETURNS [Triple]; <> Project: PROC [v1, v2: Triple] RETURNS [Triple]; <> V90: PROC [v0, v1: Triple] RETURNS [Triple]; <> <<>> Ortho: PROC [v: Triple, crosser: Triple _ [0.0, 0.0, 1.0]] RETURNS [Triple]; <> RotateAbout: PROC [v, axis: Triple, a: REAL, degrees: BOOL _ TRUE] RETURNS [Triple]; <> Collinear: PROC [p1, p2, p3: Triple, tol: REAL _ 0.01] RETURNS [BOOL]; <> VecsCoplanar: PROC [v1, v2, v3: Triple, tol: REAL _ 0.005] RETURNS [BOOL]; <> PsCoplanar: PROC [p1, p2, p3, p4: Triple, tol: REAL _ 0.005] RETURNS [BOOL]; <> <<>> Parallel: PROC [v1, v2: Triple, tol: REAL _ 0.005] RETURNS [BOOL]; <> Perp: PROC [v1, v2: Triple, tol: REAL _ 0.005] RETURNS [BOOL]; <> PtOnLine: PROC [p: Triple, l: Line, tol: REAL _ 0.005] RETURNS [BOOL]; <> <> Mul: PROC [v: Triple, s: REAL] RETURNS [Triple]; <> Div: PROC [v: Triple, s: REAL] RETURNS [Triple]; <> <> MulC: PROC [v1, v2: Triple] RETURNS [Triple]; <> DivC: PROC [v1, v2: Triple] RETURNS [Triple]; <> <> PolarFromCartesian: PROC [cartesian: Triple] RETURNS [Triple]; <> <<>> CartesianFromPolar: PROC [polar: Triple] RETURNS [Triple]; <> <<>> END.