-- File: Draw3d.mesa
-- Last edited by Bier on December 18, 1982 1:19 am
-- Author: Eric Bier on June 10, 1982 4:43 pm
-- Contents: Some useful combinations of Graphics operations

DIRECTORY
 CoordSys,
 CSG,
 CSGGraphics,
 Graphics,
 Matrix3d,
 SV2d,
 SVVector3d;

Draw3d: DEFINITIONS =
BEGIN

Camera: TYPE = CSGGraphics.Camera;
CoordSystem: TYPE = REF CoordSysObj;
CoordSysObj: TYPE = CoordSys.CoordSysObj;
CSGTree: TYPE = CSG.CSGTree;
Matrix4by4: TYPE = Matrix3d.Matrix4by4;
Point2d: TYPE = SV2d.Point2d;
Point3d: TYPE = Matrix3d.Point3d;
Vector: TYPE = SVVector3d.Vector;

DrawCoordSys: PROC [dc: Graphics.Context, mat: Matrix4by4, camera: Camera];
DrawVector: PROC [dc: Graphics.Context, v: Vector, origin: Point3d, camera: Camera]; -- assumes v is in camera coords.
DrawLocalVector: PROC [dc: Graphics.Context, v: Vector, origin: Point3d, camera: Camera, localCS: CoordSystem]; -- assumes v and origin are in localCS coords.

Draw2dCoordSys: PROC [dc: Graphics.Context, origin: Point2d, camera: Camera];
DrawX: PROC [dc: Graphics.Context, point: Point2d, camera: Camera];

DrawBoundBoxes: PROC [dc: Graphics.Context, tree: CSGTree, camera: Camera];

END.