/*
* This source file is part of the osgOcean library
* 
* Copyright (C) 2009 Kim Bale
* Copyright (C) 2009 The University of Hull, UK
* 
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free Software
* Foundation; either version 3 of the License, or (at your option) any later
* version.

* This program 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 Lesser General Public License for more details.
* http://www.gnu.org/copyleft/lesser.txt.
*/

#pragma once
#include <osgOcean/Export>
#include <osg/Geometry>
#include <osg/TextureRectangle>

namespace osgOcean
{
	class OSGOCEAN_EXPORT ScreenAlignedQuad : public osg::Geometry
	{
	public:
		ScreenAlignedQuad( void );
		ScreenAlignedQuad( const osg::Vec3f& corner, const osg::Vec2f& dims, const osg::Vec2s& textureSize );
		ScreenAlignedQuad( const osg::Vec3f& corner, const osg::Vec2f& dims, osg::TextureRectangle* texture );
		ScreenAlignedQuad( const ScreenAlignedQuad &copy, const osg::CopyOp &copyop = osg::CopyOp::SHALLOW_COPY );
		
		virtual void build( const osg::Vec3f& corner, const osg::Vec2f& dims, const osg::Vec2s& textureSize );
		virtual void build( const osg::Vec3f& corner, const osg::Vec2f& dims, osg::TextureRectangle* texture );

	protected:
		virtual ~ScreenAlignedQuad(void){};
	};
}
