home *** CD-ROM | disk | FTP | other *** search
- #define WVBLACK 0
- #define WVRED 1
- #define WVGREEN 2
- #define WVBLUE 3
- #define WVBROWN 4
- #define WVMAGENTA 5
- #define WVCYAN 6
- #define WVWHITE 7
- #define WVGRAY 8
- #define WVLIGHTRED 9
- #define WVLIGHTGREEN 10
- #define WVLIGHTBLUE 11
- #define WVYELLOW 12
- #define WVLIGHTMAGENTA 13
- #define WVLIGHTCYAN 14
- #define WVLIGHTGRAY 15
-
- typedef struct { /* 2D floating point coordinates */
- float x, y, w;
- } POINT2D;
-
- typedef struct { /* 3D floating point coordinates */
- float x, y, z, w;
- } POINT3D;
-
- typedef WORD HVIEW; /* Handle of viewer */
- typedef float *Vector; /* Pointer to vector */
- typedef POINT2D *LPPOINT2D; /* Pointer to 2D points */
- typedef POINT3D *LPPOINT3D; /* Pointer to 3D points */
-
- /*****************************************************************************
-
- Misc Functions
-
- *****************************************************************************/
-
- short BackfaceCulling (short flag);
- short CountClockwise (short flag);
- void AssignPoint2D (POINT2D p, float x, float y);
- void AssignPoint3D (POINT3D p, float x, float y, float z);
- float DegreeToRadian (float Degree);
- float RadianToDegree (float Radian);
- HVIEW CreateViewer2D (NPSTR Name, int X, int Y, int Width, int Height);
- HVIEW CreateViewer3D (NPSTR Name, int X, int Y, int Width, int Height);
-
- /*****************************************************************************
-
- System Configuration Function
-
- *****************************************************************************/
-
- void Max2DViewer (short n);
- void Max3DViewer (short n);
- void Max2DMStack (short n);
- void Max3DMStack (short n);
-
- short InitialGraphics2D (short nview, short npoint, short ndepth);
- short InitialGraphics3D (short nview, short npoint, short ndepth);
- void ExitGraphics (void);
- HPEN PenColor (HDC hDC, short color_index);
- HBRUSH BrushColor (HDC hDC, short color_index);
-
- /*****************************************************************************
-
- Matrix Stack Operation Function
-
- *****************************************************************************/
-
- short PushMatrix2D (void);
- short PushMatrix3D (void);
- short PopMatrix2D (void);
- short PopMatrix3D (void);
-
- /*****************************************************************************
-
- Transformtion Function
-
- *****************************************************************************/
-
- /* Model view transformation matrix */
- short SetView3D (HVIEW hview, float vx, float vy, float vz,
- float rx, float ry, float rz, float twist);
- short SetPolarView3D (HVIEW hview, float cx, float cy, float cz,
- float dist, float azim, float inc, float twist);
- short SetView2D (HVIEW hview, float x, float y, float angle);
- short SetProjection2D (HVIEW hview, float left, float right,
- float bottom, float top);
- short SetWindow2D (HVIEW hview, float x1, float y1, float x2, float y2);
- short SetPerspective3D (HVIEW hview, float fovy, float aspect,
- float front, float back);
- short SetOrthogonal3D (HVIEW hview, float left, float right,
- float bottom, float top, float front, float back);
- short SetWindow3D (HVIEW hview, float left, float right,
- float top, float bottom, float front, float back);
- short SetViewport2D (HVIEW hview, short x, short y, short w, short h);
- short SetViewport3D (HVIEW hview, short x, short y, short w, short h);
- short SelectViewer3D (HVIEW hview);
- short SelectViewer2D (HVIEW hview);
-
- /*****************************************************************************
-
- View Moving Function
-
- *****************************************************************************/
-
- short MoveViewer3D (HVIEW hview, float LR, float UD, float BF);
- short MoveWorld3D (HVIEW hview, float X, float Y, float Z);
- short RotateViewer3D (HVIEW hview, float Yaw, float Pitch, float Twist);
- short RotateWorld3D (HVIEW hview, float X, float Y, float Z);
- short ZoomViewer3D (HVIEW hview, float zoom);
- short MoveViewer2D (HVIEW hview, float LeftRight, float UpDown);
- short RotateViewer2D (HVIEW hview, float Angle);
- short ZoomViewer2D (HVIEW hview, float zoom);
-
- short Num2DViewer (void);
- short Num3DViewer (void);
- short ValidHView2D (HVIEW hview);
- short ValidHView3D (HVIEW hview);
- short DisplayViewerFrame2D (HDC hDC, HVIEW hview, short color);
- short DisplayViewerName2D (HDC hDC, HVIEW hview, short color, short top);
- short DisplayViewerFrame3D (HDC hDC, HVIEW hview, short color);
- short DisplayViewerName3D (HDC hDC, HVIEW hview, short color, short top);
- short ClearViewer3D (HDC hDC, HVIEW hview, short color);
- short ClearViewer2D (HDC hDC, HVIEW hview, short color);
- short ViewerPosition2D (HVIEW hview, float *cx, float *cy, float *angle);
- short ViewerField3D (HVIEW hview, float *left, float *right,
- float *bottom, float *top, float *front, float *back);
- short ViewerField2D (HVIEW hview, float *left, float *right,
- float *top, float *bottom);
- short ViewerMode3D (HVIEW hview);
-
- /*****************************************************************************
-
- Transformation Function
-
- *****************************************************************************/
-
- void Rotate3D (float angle, char axis);
- void Translate3D (float x, float y, float z);
- void Scale3D (float x, float y, float z);
-
- void Translate2D (float x, float y);
- void Rotate2D (float angle);
- void Scale2D (float x, float y);
-
- /*****************************************************************************
-
- Camera Information Functions
-
- *****************************************************************************/
-
- short GetViewerName2D (HVIEW hview, NPSTR name);
- short SetViewerName2D (HVIEW hview, NPSTR name);
- short GetViewerName3D (HVIEW hview, NPSTR name);
- short SetViewerName3D (HVIEW hview, NPSTR name);
- short GetViewport2D (HVIEW hview, short *x, short *y, short *w, short *h);
- short GetViewport3D (HVIEW hview, short *x, short *y, short *w, short *h);
-
- /*****************************************************************************
-
- Drawing Functions
-
- *****************************************************************************/
-
- void MoveTo2D (HDC hDC, float x, float y);
- void LineTo2D (HDC hDC, float x, float y);
- void DrawLine2D (HDC hDC, float x1, float y1, float x2, float y2);
- void Polyline2D (HDC hDC, LPPOINT2D point, short count);
- void Polygon2D (HDC hDC, LPPOINT2D vertex, short count);
- void ResetVertex2D (void);
- void SetVertex2D (float x, float y);
- short RectangleVertex2D (float x1, float y1, float x2, float y2,
- LPPOINT2D vertex);
- void Rectangle2D (HDC hDC, float x1, float y1, float x2, float y2);
- short NgonVertex2D (short n, float x, float y, float r1, float r2,
- LPPOINT2D vertex);
- short ArcVertex2D (float x, float y, float r1, float r2,
- float start, float angle, LPPOINT2D vertex);
- void Ngon2D (HDC hDC, float x, float y, float r1, float r2, short count);
- short NsideBowVertex2D (float x, float y, float r1, float r2,
- float start, float angle, short count, LPPOINT2D vertex);
- void Arc2D (HDC hDC, float x, float y, float r, float start, float angle);
- void EllipseArc2D (HDC hDC, float x, float y, float r1, float r2,
- float start, float angle);
- void Wedge2D (HDC hDC, float x, float y, float r1, float r2,
- float start, float angle);
- void Circle2D (HDC hDC, float x, float y, float r);
- void Ellipse2D (HDC hDC, float x, float y, float r1, float r2);
- short NsideFlowerVertex2D (short n, float x, float y, float r1, float r2,
- float aspect, LPPOINT2D vertex);
- short NsideStarVertex2D (short n, float x, float y, float r, float aspect,
- LPPOINT2D vertex);
- void NsideStar2D (HDC hDC, float x, float y, float radius, short count);
- void NsideFlower2D (HDC hDC, float x, float y, float r1, float r2, short n);
- void MoveTo3D (HDC hDC, float x, float y, float z);
- void LineTo3D (HDC hDC, float x, float y, float z);
- void Line3D (HDC hDC, float x1, float y1, float z1,
- float x2, float y2, float z2);
- void Polyline3D (HDC hDC, LPPOINT3D point, short count);
- void Polygon3D (HDC hDC, LPPOINT3D vertex, short count);
- void MarkPosition3D (HDC hDC, float x, float y, float z, float scale);
- void ResetVertex3D (void);
- void SetVertex3D (float x, float y, float z);
- void Shape3D (HDC hDC, float x, float y, float z,
- LPPOINT2D vertex, short count);
- void Rectangle3D (HDC hDC, float x1, float y1,
- float x2, float y2, float z);
- void Box3D (HDC hDC, float x1, float y1, float z1,
- float x2, float y2, float z2);
- void Cube3D (HDC hDC, float x1, float y1, float z1,
- float x2, float y2, float z2);
- void Sphere3D (HDC hDC, float x, float y, float z, float r,
- short count1, short count2);
- void Ball3D (HDC hDC, float x, float y, float z, float r);
- void Pyramid3D (HDC hDC, float x, float y, float z, float height,
- LPPOINT2D basevertex, short count);
- void Prism3D (HDC hDC, float x, float y, float z, float h,
- LPPOINT2D basevertex, LPPOINT2D headvertex, short count);
- void NsideStar3D (HDC hDC, float x, float y, float z, float h,
- float radius, short count);
- void NsideFlower3D (HDC hDC, float x, float y, float z, float h,
- float r1, float r2, short count);
- void NsidePyramid3D (HDC hDC, float x, float y, float z,
- float r, float height, short count);
- void Cone3D (HDC hDC, float x, float y, float z, float r, float h);
- void NsidePrism3D (HDC hDC, float x, float y, float z,
- float r, float h, short n);
- void Cylinder3D (HDC hDC, float x, float y, float z, float r, float h);
-
- short BeginDoubleBuffer3D (HDC *hdc, HVIEW hview);
- short BeginDoubleBuffer2D (HDC *hdc, HVIEW hview);
- short EndDoubleBuffer3D (HDC *hdc, HVIEW hview);
- short EndDoubleBuffer2D (HDC *hdc, HVIEW hview);
- short UpdateBuffer3D (HDC hdc, HVIEW hview);
- short UpdateBuffer2D (HDC hdc, HVIEW hview);
-
- void Tetrahedron (HDC hdc, float r);
- void Octahedron (HDC hdc, float r);
- void Dodecahedron (HDC hdc, float r);
- void Icosahedron (HDC hdc, float r);
-
- /*****************************************************************
-
- Curves and Surfaces
-
- *****************************************************************/
-
-
- void BezierCurve2D (HDC hdc, LPPOINT2D CtrlPoly);
- void BezierCurve3D (HDC hdc, LPPOINT3D CtrlPoly);
- void HermitCurve2D (HDC hdc, LPPOINT2D CtrlPoly);
- void HermitCurve3D (HDC hdc, LPPOINT3D CtrlPoly);
- void BSplineCurve2D (HDC hdc, LPPOINT2D CtrlPoly, int count);
- void BSplineCurve3D (HDC hdc, LPPOINT3D CtrlPoly, int count);
- void NURBSCurve2D (HDC hdc, LPPOINT2D CtrlPoly, int count, Vector knot);
- void NURBSCurve3D (HDC hdc, LPPOINT3D CtrlPoly, int count, Vector knot);
- void BezierSurface3D (HDC hdc, LPPOINT3D CtrlPoly, int ns, int nt);
- void NURBSSurface3D (HDC hdc, LPPOINT3D CtrlPoly, int Scount, int Tcount,
- Vector Sknot, Vector Tknot, int ns, int nt);
-
-