mirror of
https://github.com/elliotnunn/BuildCubeE.git
synced 2024-11-19 00:05:25 +00:00
104 lines
2.3 KiB
C
104 lines
2.3 KiB
C
/************************************************************
|
|
|
|
Created: Monday, January 7, 1991 at 6:00 AM
|
|
Graf3D.h
|
|
C Interface to the Macintosh Libraries
|
|
|
|
|
|
Copyright Apple Computer, Inc. 1985-1990
|
|
All rights reserved
|
|
|
|
************************************************************/
|
|
|
|
|
|
#ifndef __GRAF3D__
|
|
#define __GRAF3D__
|
|
|
|
#ifndef __QUICKDRAW__
|
|
#include <Quickdraw.h>
|
|
#endif
|
|
|
|
|
|
enum {
|
|
|
|
radConst = 3754936
|
|
};
|
|
|
|
typedef Fixed XfMatrix[4][4];
|
|
|
|
struct Point3D {
|
|
Fixed x;
|
|
Fixed y;
|
|
Fixed z;
|
|
};
|
|
|
|
typedef struct Point3D Point3D;
|
|
|
|
struct Point2D {
|
|
Fixed x;
|
|
Fixed y;
|
|
};
|
|
|
|
typedef struct Point2D Point2D;
|
|
|
|
struct Port3D {
|
|
GrafPtr grPort;
|
|
Rect viewRect;
|
|
Fixed xLeft;
|
|
Fixed yTop;
|
|
Fixed xRight;
|
|
Fixed yBottom;
|
|
Point3D pen;
|
|
Point3D penPrime;
|
|
Point3D eye;
|
|
Fixed hSize;
|
|
Fixed vSize;
|
|
Fixed hCenter;
|
|
Fixed vCenter;
|
|
Fixed xCotan;
|
|
Fixed yCotan;
|
|
char filler;
|
|
char ident;
|
|
XfMatrix xForm;
|
|
};
|
|
|
|
typedef struct Port3D Port3D;
|
|
typedef Port3D *Port3DPtr, **Port3DHandle;
|
|
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
pascal void InitGrf3d(Port3DHandle port);
|
|
pascal void Open3DPort(Port3DPtr port);
|
|
pascal void SetPort3D(Port3DPtr port);
|
|
pascal void GetPort3D(Port3DPtr *port);
|
|
pascal void MoveTo2D(Fixed x,Fixed y);
|
|
pascal void MoveTo3D(Fixed x,Fixed y,Fixed z);
|
|
pascal void LineTo2D(Fixed x,Fixed y);
|
|
pascal void Move2D(Fixed dx,Fixed dy);
|
|
pascal void Move3D(Fixed dx,Fixed dy,Fixed dz);
|
|
pascal void Line2D(Fixed dx,Fixed dy);
|
|
pascal void Line3D(Fixed dx,Fixed dy,Fixed dz);
|
|
pascal void ViewPort(const Rect *r);
|
|
pascal void LookAt(Fixed left,Fixed top,Fixed right,Fixed bottom);
|
|
pascal void ViewAngle(Fixed angle);
|
|
pascal void Identity(void);
|
|
pascal void Scale(Fixed xFactor,Fixed yFactor,Fixed zFactor);
|
|
pascal void Translate(Fixed dx,Fixed dy,Fixed dz);
|
|
pascal void Pitch(Fixed xAngle);
|
|
pascal void Yaw(Fixed yAngle);
|
|
pascal void Roll(Fixed zAngle);
|
|
pascal void Skew(Fixed zAngle);
|
|
pascal void Transform(const Point3D *src,Point3D *dst);
|
|
pascal short Clip3D(const Point3D *src1,const Point3D *src2,Point *dst1,
|
|
Point *dst2);
|
|
pascal void SetPt3D(Point3D *pt3D,Fixed x,Fixed y,Fixed z);
|
|
pascal void SetPt2D(Point2D *pt2D,Fixed x,Fixed y);
|
|
pascal void LineTo3D(Fixed x,Fixed y,Fixed z);
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|