/* Copyright (C) 1997, 1998, 1999, 2000 by Alex Pfaffe (Digital Dawn Graphics Inc) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef _ddgFog_Class_ #define _ddgFog_Class_ #include "struct/ddgcolor.h" #include "struct/ddggroup.h" class WEXP ddgFog : public ddgGroup { typedef ddgGroup super; public: enum Type{ NONE=0, LINEAR, EXPONENTIAL, EXPONENTIAL2 }; private: Type _fog; ddgColor3 _fogColor; float _fogDensity; ddgVector2 _fogRange; public: ddgFog( Type m, float d = 0.3, const ddgColor3 *c = NULL, const ddgVector2 *v = NULL) : _fog(m), _fogDensity(d), _fogColor(0.5,0.5,0.5),_fogRange(1000,50000) { if (c) _fogColor.set(c); if (v) _fogRange.set(v); } bool draw( ddgContext *ctx ); bool init( ddgContext *ctx ); Type type(void) { return _fog; } void setType( Type t ); void setDensity( float d); void setColor( ddgColor3 *c = NULL); }; #endif