home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DOS/V Power Report 1997 March
/
VPR9703A.ISO
/
VPR_DATA
/
DOGA
/
SOURCES
/
POLYEDIT.LZH
/
MODEL
/
VIEW.H
< prev
next >
Wrap
C/C++ Source or Header
|
1996-06-05
|
4KB
|
140 lines
/*
* 表示
*
* Copyright T.Koabayashi 1994.6.26
*/
#define VIEW 1
#ifndef POLY
#include "poly.h"
#endif
#ifndef MATRIX
#include "matrix.h"
#endif
#ifndef ON
#define ON 1
#define OFF 0
#endif
#ifndef WINDOWS
#define MENU_WIDTH (FontV+2) /* メニューバーの大きさ */
#else
#define MENU_WIDTH 0
#endif
#define FRAME_WIDTH 12 /* フレームの幅 */
#define STATUS_WIDTH (FontV+6) /* ステータスバーの高さ */
/* 透視図のマウスカーソル */
#define PERS_CURSOR_OFF 0
#define PERS_CURSOR_2D 1
#define PERS_CURSOR_3D 2
/* カラーコード */
#define GRID_COLOR 9
#define FRAME_COLOR 10
#define INVISIBLE_COLOR 11
#define BG_COLOR 13
#define SELECT_COLOR 14
#define TMP_COLOR 16
#define OR_COLOR 17
#define CURSOR_COLOR 18
/* 表示タイプ */
#define VIEW_XY 1
#define VIEW_YZ 2
#define VIEW_ZX 4
#define VIEW_PERS 8
#define VIEW_ALL 15
#define CURSOR_2D_SHIFT 16
typedef struct {
int x, y ; /* 位置 */
int h, v ; /* 大きさ */
int offx, offy ; /* オフセット */
}
ViewWindow ;
extern int ViewMode ;
extern ViewWindow WinXY, WinYZ, WinZX, WinPers ;
extern int VisibleVector ; /* 法線ベクトル表示モード */
extern int VisiblePolyVector ; /* 面法線表示モード */
extern int VisibleVertex ; /* 頂点表示モード */
extern int InvisibleDraw ; /* Invisibleを描画するか */
extern int DrawFrontOnlyFlag ; /* 表のみを描画するか */
extern int Cx, Cy, Cz ; /* 中心位置 */
extern int ZoomPlus, ZoomMinus ; /* ズーム値 */
extern int GridDisplay ; /* 表示グリッド */
extern int WinMove ; /* ウインドウ移動量 */
extern int GridCursor ; /* カーソル移動グリッド */
extern int PersMat[5][3] ; /* 透視図用行列 */
extern Matrix PersMatInv;
extern int ConvFlag ; /* 変換許可 */
extern int ConvMat[5][3] ; /* 変換用行列 */
extern int ConvInv[5][3] ; /* 変換用逆行列 */
extern int Mx, My, Mz, Mstat ; /* 3D マウスカーソル */
extern int PersMx, PersMy, PersMstat ; /* 2D マウスカーソル */
extern int MouseWin ; /* マウスのあるウインドウ */
extern int PersOffsetX, PersOffsetY, PersScaleX, PersAngleCount;
#ifdef __cplusplus
extern "C" {
#endif
/* view1.c */
extern void ViewInit( int, int );
extern void ViewSetWindow( int );
extern void ViewSetDisplay( int, int );
extern void ViewSetCenter( int, int, int );
extern void ViewSetZoom( int, int );
extern void ViewSetPers( Matrix );
extern void ViewSetGrid( int, int );
extern void ViewSetConv( Matrix );
extern void ToScreen( int[3], Vertex* );
extern int ToScreenPers( int*, Vertex* );
extern int ScreenFront( short* );
extern void MatToInt( int[5][3], Matrix );
extern int PersAngle(int angle);
/* view2.c */
extern void ViewCursor( int );
extern void ViewCursorPers( int );
extern void ViewSet3DCursorPos( int, int, int );
extern int MouseWindow( int, int );
extern void ViewCursorPos( int, int );
extern void Get3DCursor( int*, int*, int* );
extern int ScrollCheck(int, int);
/* view3.c */
extern void ViewFrame( void );
extern void ViewClear( int );
extern void ViewLineAll( int, int, int, int, int );
extern void ViewLineSelectAll( void );
extern void ViewCurrent( void );
extern void ViewLine3D( Vertex*, Vertex*, int );
extern void ViewLinePersAll( int );
extern void ViewLinePers( Vertex*, Vertex*, int );
extern void DrawLineForWin( int[3], int[3], int );
extern void DrawLineForPers( Vertex*, Vertex*, int );
extern void ViewTempForWin(void);
extern void ViewTempForPers(void);
extern void ClipLine( ViewWindow*, int, int, int, int, int );
extern void ViewLine2D( int, int, int, int, int );
extern void DrawBoxForWin( int[3], int );
extern void DrawBoxForPers( Vertex*, int );
extern void ClipBox( ViewWindow*, int, int, int, int, int );
extern void ViewVertex(Vertex *p1, int color);
/* view4.c */
extern void ViewBox( Vertex*, Vertex*, Matrix );
extern void ViewBox2D( int, int, int, int );
/* viewlib.c */
extern void ViewLibInit( void );
#ifdef __cplusplus
}
#endif