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