DIRECTORY Vector2 USING [VEC]; Linear3d: CEDAR DEFINITIONS ~ BEGIN Linear3dError: SIGNAL [reason: ATOM]; Pair: TYPE ~ Vector2.VEC; -- RECORD [ x, y: REAL]; Triple: TYPE ~ RECORD [ x, y, z: REAL]; Quad: TYPE ~ RECORD [ x, y, z, w: REAL]; Xfm3d: TYPE ~ RECORD [ a, b, c, d: Quad]; IntTriple: TYPE ~ RECORD [ x, y, z: INT]; SumTriple: PROCEDURE [t1, t2: Triple] RETURNS [Triple]; DiffTriple: PROCEDURE [t1, t2: Triple] RETURNS [Triple]; ScaleTriple: PROCEDURE [t: Triple, s: REAL] RETURNS [Triple]; Magnitude: PROC[v: Triple] RETURNS[REAL]; Normalize: PROC[v: Triple] RETURNS[Triple]; DotProd: PROC[v1, v2: Triple] RETURNS [REAL]; CrossProd: PROC[v1, v2: Triple] RETURNS [vOut: Triple]; EvalPlane: PROC[plane: Quad, point: Triple] RETURNS [distance: REAL]; Transform3d: PROC[ vtx: Triple, xfm: Xfm3d] RETURNS [Triple]; TransformVec3d: PROC[ vtx: Triple, xfm: Xfm3d] RETURNS [Triple]; ConcatT: PROC[xfm1, xfm2: Xfm3d] RETURNS[xfmOut: Xfm3d]; Translate3d: PROC[ delta: Triple] RETURNS [Xfm3d]; Rotate3d: PROC[base, axis: Triple, theta: REAL] RETURNS[Xfm3d]; END. ώLinear3d.mesa Copyright c 1984 by Xerox Corporation. All rights reserved. Last Edited by: Crow, February 4, 1986 10:16:33 am PST Basic Types Procedures for Operations on Triples (3d vectors, or points) Procedures for Operations on Transformations Κ˜Iheadšœ ™ šœ Οmœ1™