DIRECTORY Matrix3d, SV3d, SVMatrixOps; SVMatrixOpsImpl: CEDAR PROGRAM IMPORTS Matrix3d EXPORTS SVMatrixOps = BEGIN Matrix4by4: TYPE = SV3d.Matrix4by4; IncTransf: PUBLIC PROC [CWORLD, PWORLD, DWORLD, M: Matrix4by4] RETURNS [newCP: Matrix4by4] = { OPEN Matrix3d; CD, WORLDP: Matrix4by4; WORLDP _ Matrix3d.Inverse[PWORLD]; CD _ Matrix3d.AInTermsOfB[CWORLD, DWORLD]; newCP _ Mult[CD, Mult[M, Mult[DWORLD, WORLDP]]]; }; AbsTransf: PUBLIC PROC [PWORLD, DWORLD, N: Matrix4by4] RETURNS [newCP: Matrix4by4] = { WORLDP: Matrix4by4; WORLDP _ Matrix3d.Inverse[PWORLD]; newCP _ Matrix3d.Mult[N, Matrix3d.Mult[DWORLD, WORLDP]]; }; END. SVMatrixOpsImpl.mesa Copyright c 1986 by Xerox Corporation. All rights reserved. Last edited by Bier on February 17, 1987 2:14:04 pm PST Contents: Some of the transform operations from the latest copy of my unpublished transform tutorial. Notes: If D = WORLD, DWORLD = I. Κ ˜J˜Icodešœ™Kšœ Οmœ1™