-- transformation package
--M. Stone October 23, 1979  4:04 PM

DIRECTORY
	PointDefs: FROM "PointDefs";

XFormDefs: DEFINITIONS =
BEGIN OPEN PointDefs;
Axis: TYPE = {x,y,z};
XFormMatrix: TYPE = ARRAY [1..3] OF ObjPt;
XFMDescriptor: TYPE = DESCRIPTOR FOR ARRAY [1..3] OF ObjPt;
ProblemWithXForms: SIGNAL[string: STRING];

--Exported by TransformFns

InitXForms: PROCEDURE[matrix: XFMDescriptor];
Rotate: PROCEDURE[ theta: REAL, axis: XFormDefs.Axis,matrix: XFMDescriptor];
Scale: PROCEDURE[ scale: ARRAY[X..Y] OF REAL,matrix: XFMDescriptor];
Translate: PROCEDURE[ dist: ARRAY[X..Y] OF REAL,matrix: XFMDescriptor];
XFormPt: PROCEDURE [pt: ObjPt,matrix: XFMDescriptor] RETURNS[ObjPt];
XForm4Pts:  PROCEDURE[ pts: DESCRIPTOR FOR ARRAY OF ObjPt,matrix: XFMDescriptor];
XForm6Pts: PUBLIC PROCEDURE[ pts: DESCRIPTOR FOR ARRAY OF ObjPt,matrix: XFMDescriptor];
GetInverseXForm: PROCEDURE RETURNS[matrix: XFMDescriptor];

END.