OpenStructure
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
material.hh
Go to the documentation of this file.
1 //------------------------------------------------------------------------------
2 // This file is part of the OpenStructure project <www.openstructure.org>
3 //
4 // Copyright (C) 2008-2011 by the OpenStructure authors
5 //
6 // This library is free software; you can redistribute it and/or modify it under
7 // the terms of the GNU Lesser General Public License as published by the Free
8 // Software Foundation; either version 3.0 of the License, or (at your option)
9 // any later version.
10 // This library is distributed in the hope that it will be useful, but WITHOUT
11 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
12 // FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
13 // details.
14 //
15 // You should have received a copy of the GNU Lesser General Public License
16 // along with this library; if not, write to the Free Software Foundation, Inc.,
17 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18 //------------------------------------------------------------------------------
19 #ifndef OST_GFX_MATERIAL_HH
20 #define OST_GFX_MATERIAL_HH
21 
22 #include "color.hh"
23 
24 namespace ost { namespace gfx {
25 
27 {
28 public:
29  Material();
30  Material(const Color& amb, const Color& diff, const Color& spec, float shin, const Color& emm);
31  Material(float amb, float diff, float spec, float shin, float emm);
32  void SetAmb(const Color& c);
33  void SetAmb(float c);
34  void SetDiff(const Color& c);
35  void SetDiff(float c);
36  void SetSpec(const Color& c);
37  void SetSpec(float c);
38  void SetShin(float s);
39  void SetEmm(const Color& c);
40  void SetEmm(float c);
41 
42  void RenderGL();
43 
44 private:
45  Color amb_;
46  Color diff_;
47  Color spec_;
48  Color emm_;
49  float shin_;
50 };
51 
52 }} // ns
53 
54 
55 #endif