cgv
obj_material.hh
1 #pragma once
2 
3 #include <cgv/media/illum/phong_material.hh> //@<
4 #include "lib_begin.h" //@<
5 
6 namespace cgv { //@<
7  namespace media { //@<
8  namespace illum { //@<
9 
11 class CGV_API obj_material : public phong_material
12 {
13 protected: //@<
15  std::string name;
17  float opacity;
19  std::string ambient_texture_name;
21  std::string diffuse_texture_name;
23  std::string opacity_texture_name;
25  std::string specular_texture_name;
27  std::string emission_texture_name;
29  float bump_scale;
31  std::string bump_texture_name;
32 public: //@<
34  enum TextureType {
35  TT_AMBIENT_TEXTURE = 1,
36  TT_DIFFUSE_TEXTURE = 2,
37  TT_OPACITY_TEXTURE = 4,
38  TT_SPECULAR_TEXTURE = 8,
39  TT_EMISSION_TEXTURE = 16,
40  TT_BUMP_TEXTURE = 32,
41  TT_ALL_TEXTURES = 63
42  };
44  obj_material() : name("default"), opacity(1), bump_scale(1) {}
46  void set_opacity(float o) { opacity = o; }
48  float get_opacity() const { return opacity; }
50  float& ref_opacity() { return opacity; }
52  void set_name(std::string o) { name = o; }
54  const std::string& get_name() const { return name; }
56  std::string& ref_name() { return name; }
58  virtual void set_ambient_texture_name(std::string o) { ambient_texture_name = o; }
60  const std::string& get_ambient_texture_name() const { return ambient_texture_name; }
62  std::string& ref_ambient_texture_name() { return ambient_texture_name; }
64  virtual void set_diffuse_texture_name(std::string o) { diffuse_texture_name = o; }
66  const std::string& get_diffuse_texture_name() const { return diffuse_texture_name; }
68  std::string& ref_diffuse_texture_name() { return diffuse_texture_name; }
70  virtual void set_opacity_texture_name(std::string o) { opacity_texture_name = o; }
72  const std::string& get_opacity_texture_name() const { return opacity_texture_name; }
74  std::string& ref_opacity_texture_name() { return opacity_texture_name; }
76  virtual void set_specular_texture_name(std::string o) { specular_texture_name = o; }
78  const std::string& get_specular_texture_name() const { return specular_texture_name; }
80  std::string& ref_specular_texture_name() { return specular_texture_name; }
82  virtual void set_emission_texture_name(std::string o) { emission_texture_name = o; }
84  const std::string& get_emission_texture_name() const { return emission_texture_name; }
86  std::string& ref_emission_texture_name() { return emission_texture_name; }
88  virtual void set_bump_texture_name(std::string b) { bump_texture_name = b; }
90  const std::string& get_bump_texture_name() const { return bump_texture_name; }
92  std::string& ref_bump_texture_name() { return bump_texture_name; }
94  void set_bump_scale(float bs) { bump_scale = bs; }
96  float get_bump_scale() const { return bump_scale; }
98  float& ref_bump_scale() { return bump_scale; }
99 };
100 
101  }
102  }
103 }
104 
105 #include <cgv/config/lib_end.h> //@<
cgv::media::illum::obj_material::specular_texture_name
std::string specular_texture_name
> file name of specular texture
Definition: obj_material.hh:25
cgv::media::illum::obj_material::bump_texture_name
std::string bump_texture_name
> file name of bump map texture
Definition: obj_material.hh:31
cgv::media::illum::obj_material::ref_opacity
float & ref_opacity()
return reference to opacity value
Definition: obj_material.hh:50
cgv::media::illum::obj_material::set_opacity_texture_name
virtual void set_opacity_texture_name(std::string o)
set opacity_texture_name value
Definition: obj_material.hh:70
cgv::media::illum::obj_material::set_emission_texture_name
virtual void set_emission_texture_name(std::string o)
set emission_texture_name value
Definition: obj_material.hh:82
cgv::media::illum::obj_material::get_name
const std::string & get_name() const
return name value
Definition: obj_material.hh:54
cgv::media::illum::obj_material::ref_opacity_texture_name
std::string & ref_opacity_texture_name()
return reference to opacity_texture_name value
Definition: obj_material.hh:74
cgv::media::illum::obj_material::opacity_texture_name
std::string opacity_texture_name
> file name of opacity texture
Definition: obj_material.hh:23
cgv::media::illum::obj_material::diffuse_texture_name
std::string diffuse_texture_name
> file name of diffuse texture
Definition: obj_material.hh:21
cgv::media::illum::obj_material::set_bump_scale
void set_bump_scale(float bs)
set scale of bumps
Definition: obj_material.hh:94
cgv::media::illum::obj_material::bump_scale
float bump_scale
> scaling factor for bump map
Definition: obj_material.hh:29
cgv::media::illum::obj_material::get_opacity_texture_name
const std::string & get_opacity_texture_name() const
return opacity_texture_name value
Definition: obj_material.hh:72
cgv::media::illum::obj_material::get_bump_scale
float get_bump_scale() const
return bump scale
Definition: obj_material.hh:96
cgv::media::illum::obj_material::set_name
void set_name(std::string o)
set name value
Definition: obj_material.hh:52
cgv::media::illum::obj_material::get_bump_texture_name
const std::string & get_bump_texture_name() const
return bump_texture_name value
Definition: obj_material.hh:90
cgv::media::illum::obj_material::ambient_texture_name
std::string ambient_texture_name
> file name of ambient texture
Definition: obj_material.hh:19
cgv::media::illum::obj_material::ref_bump_texture_name
std::string & ref_bump_texture_name()
return reference to bump_texture_name value
Definition: obj_material.hh:92
cgv::media::illum::obj_material::ref_diffuse_texture_name
std::string & ref_diffuse_texture_name()
return reference to diffuse_texture_name value
Definition: obj_material.hh:68
cgv::media::illum::obj_material
>extension of a phong material with support for texture mapped color channels
Definition: obj_material.hh:12
cgv::media::illum::phong_material
>simple class to hold the material properties of a phong material
Definition: phong_material.hh:12
cgv::media::illum::obj_material::get_emission_texture_name
const std::string & get_emission_texture_name() const
return emission_texture_name value
Definition: obj_material.hh:84
cgv::media::illum::obj_material::TextureType
TextureType
> different types of textures
Definition: obj_material.hh:34
cgv::media::illum::obj_material::ref_emission_texture_name
std::string & ref_emission_texture_name()
return reference to emission_texture_name value
Definition: obj_material.hh:86
cgv::media::illum::obj_material::get_ambient_texture_name
const std::string & get_ambient_texture_name() const
return ambient_texture_name value
Definition: obj_material.hh:60
cgv::media::illum::obj_material::get_specular_texture_name
const std::string & get_specular_texture_name() const
return specular_texture_name value
Definition: obj_material.hh:78
cgv::media::illum::obj_material::set_ambient_texture_name
virtual void set_ambient_texture_name(std::string o)
set ambient_texture_name value
Definition: obj_material.hh:58
cgv::media::illum::obj_material::ref_bump_scale
float & ref_bump_scale()
return reference to bump scale
Definition: obj_material.hh:98
cgv::media::illum::obj_material::ref_ambient_texture_name
std::string & ref_ambient_texture_name()
return reference to ambient_texture_name value
Definition: obj_material.hh:62
cgv::media::illum::obj_material::ref_specular_texture_name
std::string & ref_specular_texture_name()
return reference to specular_texture_name value
Definition: obj_material.hh:80
cgv::media::illum::obj_material::name
std::string name
> name of material
Definition: obj_material.hh:15
cgv::media::illum::obj_material::set_opacity
void set_opacity(float o)
set opacity value
Definition: obj_material.hh:46
cgv::media::illum::obj_material::emission_texture_name
std::string emission_texture_name
> file name of emission texture
Definition: obj_material.hh:27
cgv
the cgv namespace
Definition: vr_calib.cxx:9
cgv::media::illum::obj_material::set_bump_texture_name
virtual void set_bump_texture_name(std::string b)
set bump_texture_name value
Definition: obj_material.hh:88
cgv::media::illum::obj_material::obj_material
obj_material()
define default material
Definition: obj_material.hh:44
cgv::media::illum::obj_material::ref_name
std::string & ref_name()
return reference to name value
Definition: obj_material.hh:56
cgv::media::illum::obj_material::get_diffuse_texture_name
const std::string & get_diffuse_texture_name() const
return diffuse_texture_name value
Definition: obj_material.hh:66
cgv::media::illum::obj_material::set_specular_texture_name
virtual void set_specular_texture_name(std::string o)
set specular_texture_name value
Definition: obj_material.hh:76
cgv::media::illum::obj_material::opacity
float opacity
> opacity value
Definition: obj_material.hh:17
cgv::media::illum::obj_material::set_diffuse_texture_name
virtual void set_diffuse_texture_name(std::string o)
set diffuse_texture_name value
Definition: obj_material.hh:64
cgv::media::illum::obj_material::get_opacity
float get_opacity() const
return opacity value
Definition: obj_material.hh:48