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 >
C/C++ Source or Header  |  1996-06-05  |  4KB  |  140 lines

  1. /*
  2.  *        表示
  3.  *
  4.  *        Copyright    T.Koabayashi    1994.6.26
  5.  */
  6.  
  7. #define    VIEW    1
  8.  
  9. #ifndef    POLY
  10. #include "poly.h"
  11. #endif
  12.  
  13. #ifndef    MATRIX
  14. #include "matrix.h"
  15. #endif
  16.  
  17. #ifndef    ON
  18.     #define    ON        1
  19.     #define    OFF        0
  20. #endif
  21.  
  22. #ifndef WINDOWS
  23. #define    MENU_WIDTH        (FontV+2)    /*    メニューバーの大きさ    */
  24. #else
  25. #define    MENU_WIDTH    0
  26. #endif
  27. #define    FRAME_WIDTH        12            /*    フレームの幅            */
  28. #define STATUS_WIDTH    (FontV+6)    /*    ステータスバーの高さ    */
  29.  
  30. /*    透視図のマウスカーソル    */
  31. #define    PERS_CURSOR_OFF    0
  32. #define    PERS_CURSOR_2D    1
  33. #define    PERS_CURSOR_3D    2
  34.  
  35. /*    カラーコード    */
  36. #define    GRID_COLOR        9
  37. #define    FRAME_COLOR        10
  38. #define INVISIBLE_COLOR    11
  39. #define    BG_COLOR        13
  40. #define    SELECT_COLOR    14
  41. #define    TMP_COLOR        16
  42. #define    OR_COLOR        17
  43. #define    CURSOR_COLOR    18
  44.  
  45. /*    表示タイプ    */
  46. #define    VIEW_XY        1
  47. #define    VIEW_YZ        2
  48. #define    VIEW_ZX        4
  49. #define    VIEW_PERS    8
  50. #define    VIEW_ALL    15
  51.  
  52. #define CURSOR_2D_SHIFT 16
  53.  
  54. typedef    struct    {
  55.     int        x, y ;            /*    位置        */
  56.     int        h, v ;            /*    大きさ        */
  57.     int        offx, offy ;    /*    オフセット    */
  58. }
  59.     ViewWindow ;
  60.  
  61. extern    int            ViewMode ;
  62. extern    ViewWindow    WinXY, WinYZ, WinZX, WinPers ;
  63. extern    int            VisibleVector ;                /*    法線ベクトル表示モード    */
  64. extern    int            VisiblePolyVector ;            /*     面法線表示モード        */
  65. extern    int            VisibleVertex ;                /*    頂点表示モード            */
  66. extern    int            InvisibleDraw ;                /*     Invisibleを描画するか    */
  67. extern    int            DrawFrontOnlyFlag ;            /*  表のみを描画するか        */
  68. extern    int            Cx, Cy, Cz ;                /*    中心位置                */
  69. extern    int            ZoomPlus, ZoomMinus ;        /*    ズーム値                */
  70. extern    int            GridDisplay ;                /*    表示グリッド            */
  71. extern    int            WinMove ;                    /*    ウインドウ移動量        */
  72. extern    int            GridCursor ;                /*    カーソル移動グリッド    */
  73. extern    int            PersMat[5][3] ;                /*    透視図用行列            */
  74. extern    Matrix        PersMatInv;
  75. extern    int            ConvFlag ;                    /*    変換許可                */
  76. extern    int            ConvMat[5][3] ;                /*    変換用行列                */
  77. extern    int            ConvInv[5][3] ;                /*    変換用逆行列            */
  78. extern    int            Mx, My, Mz, Mstat ;            /*    3D マウスカーソル        */
  79. extern    int            PersMx, PersMy, PersMstat ;    /*    2D マウスカーソル        */
  80. extern    int            MouseWin ;                    /*    マウスのあるウインドウ    */
  81. extern    int            PersOffsetX, PersOffsetY, PersScaleX, PersAngleCount;
  82.  
  83. #ifdef __cplusplus
  84. extern "C" {
  85. #endif
  86. /*    view1.c    */
  87. extern    void    ViewInit( int, int );
  88. extern    void    ViewSetWindow( int );
  89. extern    void    ViewSetDisplay( int, int );
  90. extern    void    ViewSetCenter( int, int, int );
  91. extern    void    ViewSetZoom( int, int );
  92. extern    void    ViewSetPers( Matrix );
  93. extern    void    ViewSetGrid( int, int );
  94. extern    void    ViewSetConv( Matrix );
  95. extern    void    ToScreen( int[3], Vertex* );
  96. extern    int        ToScreenPers( int*, Vertex* );
  97. extern    int        ScreenFront( short* );
  98. extern    void    MatToInt( int[5][3], Matrix );
  99. extern    int        PersAngle(int angle);
  100.  
  101. /*    view2.c    */
  102. extern    void    ViewCursor( int );
  103. extern    void    ViewCursorPers( int );
  104. extern    void    ViewSet3DCursorPos( int, int, int );
  105. extern    int        MouseWindow( int, int );
  106. extern    void    ViewCursorPos( int, int );
  107. extern    void    Get3DCursor( int*, int*, int* );
  108. extern    int        ScrollCheck(int, int);
  109.  
  110. /*    view3.c    */
  111. extern    void    ViewFrame( void );
  112. extern    void    ViewClear( int );
  113. extern    void    ViewLineAll( int, int, int, int, int );
  114. extern    void    ViewLineSelectAll( void );
  115. extern    void    ViewCurrent( void );
  116. extern    void    ViewLine3D( Vertex*, Vertex*, int );
  117. extern    void    ViewLinePersAll( int );
  118. extern    void    ViewLinePers( Vertex*, Vertex*, int );
  119. extern    void    DrawLineForWin( int[3], int[3], int );
  120. extern    void    DrawLineForPers( Vertex*, Vertex*, int );
  121. extern    void    ViewTempForWin(void);
  122. extern    void    ViewTempForPers(void);
  123. extern    void    ClipLine( ViewWindow*, int, int, int, int, int );
  124. extern    void    ViewLine2D( int, int, int, int, int );
  125. extern    void    DrawBoxForWin( int[3], int );
  126. extern    void    DrawBoxForPers( Vertex*, int );
  127. extern    void    ClipBox( ViewWindow*, int, int, int, int, int );
  128. extern    void    ViewVertex(Vertex *p1, int color);
  129.  
  130. /*    view4.c    */
  131. extern    void    ViewBox( Vertex*, Vertex*, Matrix );
  132. extern    void    ViewBox2D( int, int, int, int );
  133.  
  134. /*    viewlib.c    */
  135. extern    void    ViewLibInit( void );
  136. #ifdef __cplusplus
  137. }
  138. #endif
  139.  
  140.