(******************************************************************************
*                                TRAN3D1 .DEF                                 *
*                              ABO Software Dep.                              *
*                                                                             *
* Purpose : To provide routines for manipulating points and to generate       *
*         matrixes.                                                           *
*                                                                             *
*   Notes : This module provides the routines that use both matixes and points*
*                                                                             *
*         Version Date : 12/6/91                                              *
******************************************************************************)
DEFINITION MODULE TRAN3D1;

FROM MTRX3D1 IMPORT Matrix3D;
FROM PNT3D1  IMPORT Point3D;

PROCEDURE transform(m1   : Matrix3D;p1   : Point3D): Point3D;

PROCEDURE viewtrans(m1   : Matrix3D;p1   : Point3D): Point3D;

PROCEDURE vecttrans(m1   : Matrix3D;p1   : Point3D): Point3D;

PROCEDURE shift(p1          : Point3D) : Matrix3D;

PROCEDURE scale(po,p1       : Point3D) : Matrix3D;

PROCEDURE shear(po,px,py,pz : Point3D) : Matrix3D;

PROCEDURE roll (po,pm       : Point3D) : Matrix3D;

PROCEDURE view (po,pz,py    : Point3D) : Matrix3D;

PROCEDURE place(po,pz,py    : Point3D) : Matrix3D;

PROCEDURE perspective(pv           :Point3D;
                      wmin,wmax    :Point3D;
                      vmin,vmax    :Point3D):Matrix3D;

PROCEDURE invperspect(pv           :Point3D;
                      wmin,wmax    :Point3D;
                      vmin,vmax    :Point3D):Matrix3D;

END TRAN3D1.
