Mercator
TileShader.h
00001 // This file may be redistributed and modified only under the terms of
00002 // the GNU General Public License (See COPYING for details).
00003 // Copyright (C) 2005 Alistair Riddoch
00004 
00005 #ifndef MERCATOR_TILE_SHADER_H
00006 #define MERCATOR_TILE_SHADER_H
00007 
00008 #include <Mercator/Shader.h>
00009 
00010 #include <map>
00011 
00012 namespace Mercator {
00013 
00021 class TileShader : public Shader {
00022   public:
00024     typedef std::map<int, Shader *> Shaderstore;
00025   private:
00027     Shaderstore m_subShaders;
00028   public:
00029     explicit TileShader();
00030     virtual ~TileShader();
00031 
00033     void addShader(Shader * t, int id) {
00034         m_subShaders[id] = t;
00035     }
00036 
00037     virtual bool checkIntersect(const Segment &) const;
00038     virtual void shade(Surface &) const;
00039 };
00040 
00041 } // namespace Mercator
00042 
00043 #endif // MERCATOR_TILE_SHADER_H