/*****************************************************************************
 * $Id: game_pony_sky.hh,v 1.18 2006/08/10 03:18:59 devel Exp $
 * @file
 * @author	Jim E. Brooks  http://www.jimbrooks.org
 * @brief	Sky class.
 *//*
 * LEGAL:	COPYRIGHT (C) 2004 JIM E. BROOKS
 *          THIS SOURCE CODE IS RELEASED UNDER THE TERMS
 *          OF THE GNU GENERAL PUBLIC LICENSE (GPL).
 *****************************************************************************/

#if COMPILING_GAME_PONY
#ifndef GAME_PONY_SKY_HH
#define GAME_PONY_SKY_HH 1

////////////////////////////////////////////////////////////////////////////////
/// @brief Sky class.
class Sky : public Omni
{
private:
	PREVENT_COPYING(Sky)
	typedef Omni Parent;

public:
	explicit		Sky( QuadrantPtrc q );
					~Sky();
	fp				Distance2( void );
	void			FinalConstruction( void ) { }
	/// Although the Sky is really reproducible, return false in order to
	/// keep the Sky object the first in the quadrant's object list.
	/// See Voodoo3 issue in doc/issues.txt.
	bool			Reproducible( void ) { return false; }
	void			Draw( void );
	const string	GetName( void ) { return string("Sky"); }

private:
    void            DrawSkyCylinder( void );

    enum            { mSlices = 10 };   ///< must divide 360 evenly
	WorldVertex     mVg[mSlices+1];		///< ground-level -- SLICES PLUS ONE
	WorldVertex     mVs[mSlices+1];		///< sky-level    -- SLICES PLUS ONE
	EyeVertex       mPrevEye;
};

#endif // GAME_PONY_SKY_HH
#endif // COMPILING_GAME_PONY
