Mercator
Main Page
Classes
Files
File List
Mercator
Shader.h
1
// This file may be redistributed and modified only under the terms of
2
// the GNU General Public License (See COPYING for details).
3
// Copyright (C) 2003 Alistair Riddoch
4
5
#ifndef MERCATOR_SHADER_H
6
#define MERCATOR_SHADER_H
7
8
#include <string>
9
#include <map>
10
11
namespace
Mercator {
12
13
class
Surface;
14
class
Segment;
15
16
// FIXME - PLACEHOLDER
17
// This class itereates over the buffer in a segment using the data it contains
18
// to populate a RGBA colour buffer based on the terrain height data. ie it is
19
// used to define the texture blending for a given surface
20
29
class
Shader
{
30
private
:
32
const
bool
m_color
;
34
const
bool
m_alpha
;
35
protected
:
36
explicit
Shader
(
bool
color =
false
,
bool
alpha =
true
);
37
public
:
38
virtual
~Shader
();
39
41
bool
getColor
()
const
{
42
return
m_color
;
43
}
44
46
bool
getAlpha
()
const
{
47
return
m_alpha
;
48
}
49
50
Surface
*
newSurface
(
const
Segment
&)
const
;
51
57
virtual
bool
checkIntersect
(
const
Segment
&)
const
= 0;
58
60
virtual
void
shade
(
Surface
&)
const
= 0;
61
63
typedef
std::map<std::string, float>
Parameters
;
64
};
65
66
}
// namespace Mercator
67
68
#endif // MERCATOR_SHADER_H
Generated by
1.8.1.1