sys7.1-doc-wip/Interfaces/PInterfaces/Graf3D.p
2019-07-27 22:37:48 +08:00

115 lines
2.5 KiB
OpenEdge ABL

{
Created: Saturday, July 27, 1991 at 9:26 PM
Graf3D.p
Pascal Interface to the Macintosh Libraries
Copyright Apple Computer, Inc. 1985-1991
All rights reserved
This file is used in these builds: Mac32 BigBang Sys606
Change History (most recent first):
<3> 7/30/91 JL Updated Copyright.
<2> 1/27/91 LN Checked in Database generate file from DSG.
To Do:
}
{$IFC UNDEFINED UsingIncludes}
{$SETC UsingIncludes := 0}
{$ENDC}
{$IFC NOT UsingIncludes}
UNIT Graf3D;
INTERFACE
{$ENDC}
{$IFC UNDEFINED UsingGraf3D}
{$SETC UsingGraf3D := 1}
{$I+}
{$SETC Graf3DIncludes := UsingIncludes}
{$SETC UsingIncludes := 1}
{$IFC UNDEFINED UsingQuickdraw}
{$I $$Shell(PInterfaces)Quickdraw.p}
{$ENDC}
{$SETC UsingIncludes := Graf3DIncludes}
CONST
radConst = 3754936;
TYPE
XfMatrix = ARRAY [0..3,0..3] OF Fixed;
Point3D = RECORD
x: Fixed;
y: Fixed;
z: Fixed;
END;
Point2D = RECORD
x: Fixed;
y: Fixed;
END;
Port3DPtr = ^Port3D;
Port3DHandle = ^Port3DPtr;
Port3D = RECORD
grPort: GrafPtr;
viewRect: Rect;
xLeft: Fixed;
yTop: Fixed;
xRight: Fixed;
yBottom: Fixed;
pen: Point3D;
penPrime: Point3D;
eye: Point3D;
hSize: Fixed;
vSize: Fixed;
hCenter: Fixed;
vCenter: Fixed;
xCotan: Fixed;
yCotan: Fixed;
ident: BOOLEAN;
xForm: XfMatrix;
END;
PROCEDURE InitGrf3d(port: Port3DHandle);
PROCEDURE Open3DPort(port: Port3DPtr);
PROCEDURE SetPort3D(port: Port3DPtr);
PROCEDURE GetPort3D(VAR port: Port3DPtr);
PROCEDURE MoveTo2D(x: Fixed;y: Fixed);
PROCEDURE MoveTo3D(x: Fixed;y: Fixed;z: Fixed);
PROCEDURE LineTo2D(x: Fixed;y: Fixed);
PROCEDURE Move2D(dx: Fixed;dy: Fixed);
PROCEDURE Move3D(dx: Fixed;dy: Fixed;dz: Fixed);
PROCEDURE Line2D(dx: Fixed;dy: Fixed);
PROCEDURE Line3D(dx: Fixed;dy: Fixed;dz: Fixed);
PROCEDURE ViewPort(r: Rect);
PROCEDURE LookAt(left: Fixed;top: Fixed;right: Fixed;bottom: Fixed);
PROCEDURE ViewAngle(angle: Fixed);
PROCEDURE Identity;
PROCEDURE Scale(xFactor: Fixed;yFactor: Fixed;zFactor: Fixed);
PROCEDURE Translate(dx: Fixed;dy: Fixed;dz: Fixed);
PROCEDURE Pitch(xAngle: Fixed);
PROCEDURE Yaw(yAngle: Fixed);
PROCEDURE Roll(zAngle: Fixed);
PROCEDURE Skew(zAngle: Fixed);
PROCEDURE Transform(src: Point3D;VAR dst: Point3D);
FUNCTION Clip3D(src1: Point3D;src2: Point3D;VAR dst1: Point;VAR dst2: Point): INTEGER;
PROCEDURE SetPt3D(VAR pt3D: Point3D;x: Fixed;y: Fixed;z: Fixed);
PROCEDURE SetPt2D(VAR pt2D: Point2D;x: Fixed;y: Fixed);
PROCEDURE LineTo3D(x: Fixed;y: Fixed;z: Fixed);
{$ENDC} { UsingGraf3D }
{$IFC NOT UsingIncludes}
END.
{$ENDC}