Main Page Modules Namespace List Class Hierarchy Alphabetical List Compound List File List Namespace Members Compound Members File Members Related Pages

# atmosphere.h

Go to the documentation of this file.

    00001 /* -*- c -*- */
    00002 #ifndef INCLUDED_LIB3DS_ATMOSPHERE_H
    00003 #define INCLUDED_LIB3DS_ATMOSPHERE_H
    00004 /*
    00005  * The 3D Studio File Format Library
    00006  * Copyright (C) 1996-2001 by J.E. Hoffmann <je-h@gmx.net>
    00007  * All rights reserved.
    00008  *
    00009  * This program is  free  software;  you can redistribute it and/or modify it
    00010  * under the terms of the  GNU Lesser General Public License  as published by
    00011  * the  Free Software Foundation;  either version 2.1 of the License,  or (at
    00012  * your option) any later version.
    00013  *
    00014  * This  program  is  distributed in  the  hope that it will  be useful,  but
    00015  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
    00016  * or  FITNESS FOR A  PARTICULAR PURPOSE.  See the  GNU Lesser General Public
    00017  * License for more details.
    00018  *
    00019  * You should  have received  a copy of the GNU Lesser General Public License
    00020  * along with  this program;  if not, write to the  Free Software Foundation,
    00021  * Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
    00022  *
    00023  * $Id: atmosphere.h,v 1.1 2005/03/07 11:16:25 Assassin Exp $
    00024  */
    00025
    00026 #ifndef INCLUDED_LIB3DS_TYPES_H
    00027 #include <lib3ds/types.h>
    00028 #endif
    00029
    00030 #ifdef __cplusplus
    00031 extern "C" {
    00032 #endif
    00033
    00034 /*!
    00035  * Fog atmosphere settings
    00036  * \ingroup atmosphere
    00037  */
    00038 typedef struct _Lib3dsFog {
    00039     Lib3dsBool use;
    00040     Lib3dsRgb col;
    00041     Lib3dsBool fog_background;
    00042     Lib3dsFloat near_plane;
    00043     Lib3dsFloat near_density;
    00044     Lib3dsFloat far_plane;
    00045     Lib3dsFloat far_density;
    00046 } Lib3dsFog;
    00047
    00048 /*!
    00049  * Layer fog atmosphere flags
    00050  * \ingroup atmosphere
    00051  */
    00052 typedef enum _Lib3dsLayerFogFlags {
    00053   LIB3DS_BOTTOM_FALL_OFF =0x00000001,
    00054   LIB3DS_TOP_FALL_OFF    =0x00000002,
    00055   LIB3DS_FOG_BACKGROUND  =0x00100000
    00056 } Lib3dsLayerFogFlags;
    00057
    00058 /*!
    00059  * Layer fog atmosphere settings
    00060  * \ingroup atmosphere
    00061  */
    00062 typedef struct _Lib3dsLayerFog {
    00063     Lib3dsBool use;
    00064     Lib3dsDword flags;
    00065     Lib3dsRgb col;
    00066     Lib3dsFloat near_y;
    00067     Lib3dsFloat far_y;
    00068     Lib3dsFloat density;
    00069 } Lib3dsLayerFog;
    00070
    00071 /*!
    00072  * Distance cue atmosphere settings
    00073  * \ingroup atmosphere
    00074  */
    00075 typedef struct _Lib3dsDistanceCue {
    00076     Lib3dsBool use;
    00077     Lib3dsBool cue_background;
    00078     Lib3dsFloat near_plane;
    00079     Lib3dsFloat near_dimming;
    00080     Lib3dsFloat far_plane;
    00081     Lib3dsFloat far_dimming;
    00082 } Lib3dsDistanceCue;
    00083
    00084 /*!
    00085  * Atmosphere settings
    00086  * \ingroup atmosphere
    00087  */
    00088 struct _Lib3dsAtmosphere {
    00089     Lib3dsFog fog;
    00090     Lib3dsLayerFog layer_fog;
    00091     Lib3dsDistanceCue dist_cue;
    00092 };
    00093
    00094 extern LIB3DSAPI Lib3dsBool lib3ds_atmosphere_read(Lib3dsAtmosphere *atmosphere, Lib3dsIo *io);
    00095 extern LIB3DSAPI Lib3dsBool lib3ds_atmosphere_write(Lib3dsAtmosphere *atmosphere, Lib3dsIo *io);
    00096
    00097 #ifdef __cplusplus
    00098 };
    00099 #endif
    00100 #endif