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

  1. /* -*- c -*- */
  2. #ifndef INCLUDED_LIB3DS_ATMOSPHERE_H
  3. #define INCLUDED_LIB3DS_ATMOSPHERE_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: atmosphere.h,v 1.5 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.  * Fog atmosphere settings
  36.  * \ingroup atmosphere
  37.  */
  38. typedef struct _Lib3dsFog {
  39.     Lib3dsBool use;
  40.     Lib3dsRgb col;
  41.     Lib3dsBool fog_background;
  42.     Lib3dsFloat near_plane;
  43.     Lib3dsFloat near_density;
  44.     Lib3dsFloat far_plane;
  45.     Lib3dsFloat far_density;
  46. } Lib3dsFog;
  47.  
  48. /*!
  49.  * Layer fog atmosphere flags
  50.  * \ingroup atmosphere
  51.  */
  52. typedef enum _Lib3dsLayerFogFlags {
  53.   LIB3DS_BOTTOM_FALL_OFF =0x00000001,
  54.   LIB3DS_TOP_FALL_OFF    =0x00000002,
  55.   LIB3DS_FOG_BACKGROUND  =0x00100000
  56. } Lib3dsLayerFogFlags;
  57.  
  58. /*!
  59.  * Layer fog atmosphere settings
  60.  * \ingroup atmosphere
  61.  */
  62. typedef struct _Lib3dsLayerFog {
  63.     Lib3dsBool use;
  64.     Lib3dsDword flags;
  65.     Lib3dsRgb col;
  66.     Lib3dsFloat near_y;
  67.     Lib3dsFloat far_y;
  68.     Lib3dsFloat density;
  69. } Lib3dsLayerFog;
  70.  
  71. /*!
  72.  * Distance cue atmosphere settings
  73.  * \ingroup atmosphere
  74.  */
  75. typedef struct _Lib3dsDistanceCue {
  76.     Lib3dsBool use;
  77.     Lib3dsBool cue_background;
  78.     Lib3dsFloat near_plane;
  79.     Lib3dsFloat near_dimming;
  80.     Lib3dsFloat far_plane;
  81.     Lib3dsFloat far_dimming;
  82. } Lib3dsDistanceCue;
  83.  
  84. /*!
  85.  * Atmosphere settings
  86.  * \ingroup atmosphere
  87.  */
  88. struct _Lib3dsAtmosphere {
  89.     Lib3dsFog fog;
  90.     Lib3dsLayerFog layer_fog;
  91.     Lib3dsDistanceCue dist_cue;
  92. };
  93.  
  94. extern LIB3DSAPI Lib3dsBool lib3ds_atmosphere_read(Lib3dsAtmosphere *atmosphere, Lib3dsIo *io);
  95. extern LIB3DSAPI Lib3dsBool lib3ds_atmosphere_write(Lib3dsAtmosphere *atmosphere, Lib3dsIo *io);
  96.  
  97. #ifdef __cplusplus
  98. };
  99. #endif
  100. #endif
  101.