home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Borland Programmer's Resource
/
Borland_Programmers_Resource_CD_1995.iso
/
code
/
vlibbc
/
visualib.h
< prev
next >
Wrap
C/C++ Source or Header
|
1995-05-18
|
11KB
|
261 lines
#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);