home *** CD-ROM | disk | FTP | other *** search
/ Enter 2005 March / ENTER.ISO / files / fwp-0.0.6-win32-installer.exe / viewport.h < prev    next >
Encoding:
C/C++ Source or Header  |  2001-07-07  |  3.5 KB  |  137 lines

  1. /* -*- c -*- */
  2. #ifndef INCLUDED_LIB3DS_VIEWPORT_H
  3. #define INCLUDED_LIB3DS_VIEWPORT_H
  4. /*
  5.  * The 3D Studio File Format Library
  6.  * Copyright (C) 1996-2001 by J.E. Hoffmann <je-h@gmx.net>
  7.  * All rights reserved.
  8.  *
  9.  * This program is  free  software;  you can redistribute it and/or modify it
  10.  * under the terms of the  GNU Lesser General Public License  as published by 
  11.  * the  Free Software Foundation;  either version 2.1 of the License,  or (at 
  12.  * your option) any later version.
  13.  *
  14.  * This  program  is  distributed in  the  hope that it will  be useful,  but
  15.  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
  16.  * or  FITNESS FOR A  PARTICULAR PURPOSE.  See the  GNU Lesser General Public  
  17.  * License for more details.
  18.  *
  19.  * You should  have received  a copy of the GNU Lesser General Public License
  20.  * along with  this program;  if not, write to the  Free Software Foundation,
  21.  * Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  22.  *
  23.  * $Id: viewport.h,v 1.4 2001/07/07 19:05:30 jeh Exp $
  24.  */
  25.  
  26. #ifndef INCLUDED_LIB3DS_TYPES_H
  27. #include <lib3ds/types.h>
  28. #endif
  29.  
  30. #ifdef __cplusplus
  31. extern "C" {
  32. #endif
  33.  
  34. /*!
  35.  * Layout view types
  36.  * \ingroup viewport
  37.  */
  38. typedef enum _Lib3dsViewType {
  39.   LIB3DS_VIEW_TYPE_NOT_USED  =0,
  40.   LIB3DS_VIEW_TYPE_TOP       =1,
  41.   LIB3DS_VIEW_TYPE_BOTTOM    =2,
  42.   LIB3DS_VIEW_TYPE_LEFT      =3,
  43.   LIB3DS_VIEW_TYPE_RIGHT     =4,
  44.   LIB3DS_VIEW_TYPE_FRONT     =5,
  45.   LIB3DS_VIEW_TYPE_BACK      =6,
  46.   LIB3DS_VIEW_TYPE_USER      =7,
  47.   LIB3DS_VIEW_TYPE_SPOTLIGHT =18,
  48.   LIB3DS_VIEW_TYPE_CAMERA    =65535
  49. } Lib3dsViewType;
  50.  
  51. /*!
  52.  * Layout view settings
  53.  * \ingroup viewport
  54.  */
  55. typedef struct _Lib3dsView {
  56.     Lib3dsWord type;
  57.     Lib3dsWord axis_lock;
  58.     Lib3dsIntw position[2];
  59.     Lib3dsIntw size[2];
  60.     Lib3dsFloat zoom;
  61.     Lib3dsVector center;
  62.     Lib3dsFloat horiz_angle;
  63.     Lib3dsFloat vert_angle;
  64.     char camera[11];
  65. } Lib3dsView;
  66.  
  67. /*!
  68.  * Layout styles
  69.  * \ingroup viewport
  70.  */
  71. typedef enum _Lib3dsLayoutStyle {
  72.   LIB3DS_LAYOUT_SINGLE                  =0,
  73.   LIB3DS_LAYOUT_TWO_PANE_VERT_SPLIT     =1,
  74.   LIB3DS_LAYOUT_TWO_PANE_HORIZ_SPLIT    =2,
  75.   LIB3DS_LAYOUT_FOUR_PANE               =3,
  76.   LIB3DS_LAYOUT_THREE_PANE_LEFT_SPLIT   =4,
  77.   LIB3DS_LAYOUT_THREE_PANE_BOTTOM_SPLIT =5,
  78.   LIB3DS_LAYOUT_THREE_PANE_RIGHT_SPLIT  =6,
  79.   LIB3DS_LAYOUT_THREE_PANE_TOP_SPLIT    =7,
  80.   LIB3DS_LAYOUT_THREE_PANE_VERT_SPLIT   =8,
  81.   LIB3DS_LAYOUT_THREE_PANE_HORIZ_SPLIT  =9,
  82.   LIB3DS_LAYOUT_FOUR_PANE_LEFT_SPLIT    =10,
  83.   LIB3DS_LAYOUT_FOUR_PANE_RIGHT_SPLIT   =11
  84. } Lib3dsLayoutStyle;
  85.  
  86. /*!
  87.  * Viewport layout settings
  88.  * \ingroup viewport
  89.  */
  90. typedef struct _Lib3dsLayout {
  91.     Lib3dsWord style;
  92.     Lib3dsIntw active;
  93.     Lib3dsIntw swap;
  94.     Lib3dsIntw swap_prior;
  95.     Lib3dsIntw swap_view;
  96.     Lib3dsWord position[2];
  97.     Lib3dsWord size[2];
  98.     Lib3dsDword views;
  99.     Lib3dsView *viewL;
  100. } Lib3dsLayout;
  101.  
  102. /*!
  103.  * Default view settings
  104.  * \ingroup viewport
  105.  */
  106. typedef struct _Lib3dsDefaultView {
  107.     Lib3dsWord type;
  108.     Lib3dsVector position;
  109.     Lib3dsFloat width;
  110.     Lib3dsFloat horiz_angle;
  111.     Lib3dsFloat vert_angle;
  112.     Lib3dsFloat roll_angle;
  113.     char camera[64];
  114. } Lib3dsDefaultView;
  115.  
  116. /*!
  117.  * Viewport and default view settings
  118.  * \ingroup viewport
  119.  */
  120. struct _Lib3dsViewport {
  121.     Lib3dsLayout layout;
  122.     Lib3dsDefaultView default_view;
  123. };
  124.  
  125. extern LIB3DSAPI Lib3dsBool lib3ds_viewport_read(Lib3dsViewport *viewport, Lib3dsIo *io);
  126. extern LIB3DSAPI void lib3ds_viewport_set_views(Lib3dsViewport *viewport, Lib3dsDword views);
  127. extern LIB3DSAPI Lib3dsBool lib3ds_viewport_write(Lib3dsViewport *viewport, Lib3dsIo *io);
  128.  
  129. #ifdef __cplusplus
  130. };
  131. #endif
  132. #endif
  133.  
  134.  
  135.  
  136.  
  137.