g4tools  5.4.0
rgba
Go to the documentation of this file.
1 // Copyright (C) 2010, Guy Barrand. All rights reserved.
2 // See the file tools.license for terms.
3 
4 #ifndef tools_sg_rgba
5 #define tools_sg_rgba
6 
7 #include "node"
8 
9 #include "sf_vec"
10 #include "render_action"
11 #include "../colorfs"
12 
13 namespace tools {
14 namespace sg {
15 
16 class rgba : public node {
18 public:
20 public:
21  virtual const desc_fields& node_desc_fields() const {
23  static const desc_fields s_v(parent::node_desc_fields(),1, //WARNING : take care of count.
25  );
26  return s_v;
27  }
28 private:
29  void add_fields(){
30  add_field(&color);
31  }
32 public:
33  virtual void render(render_action& a_action) {
34  // GL-ES : ::glMaterialfv does not work. We then use :
35  // ::glEnable(GL_COLOR_MATERIAL) and ::glColor.
36 
37  //if(a_action.state().m_GL_LIGHTING) {
38  // float params[4];
39  // params[0] = rgb.value().r();
40  // params[1] = rgb.value().g();
41  // params[2] = rgb.value().b();
42  // params[3] = rgb.value().a();
43  // ::glMaterialfv(GL_FRONT,GL_DIFFUSE,params);
44  //} else {
45  //}
46 
47  state& state = a_action.state();
48  state.m_color = color.value();
49  a_action.color4f(state.m_color);
50  }
51 public:
52  rgba()
53  :parent()
54  ,color(colorf_grey())
55  {
56  add_fields();
57  }
58  virtual ~rgba(){}
59 public:
60  rgba(const rgba& a_from)
61  :parent(a_from)
62  ,color(a_from.color)
63  {
64  add_fields();
65  }
66  rgba& operator=(const rgba& a_from){
67  parent::operator=(a_from);
68  color = a_from.color;
69  return *this;
70  }
71 };
72 
73 }}
74 
75 #endif
node
tools::sg::rgba::color
sf_vec< colorf, float > color
Definition: rgba:19
tools::sg::state
Definition: state:25
tools::sg::rgba::node_desc_fields
virtual const desc_fields & node_desc_fields() const
Definition: rgba:21
tools::sg::rgba::rgba
rgba()
Definition: rgba:52
render_action
tools::sg::node
Definition: node:28
TOOLS_NODE
#define TOOLS_NODE(a__class, a__sclass, a__parent)
Definition: node:324
tools::sg::rgba
Definition: rgba:16
tools::sg::rgba::rgba
rgba(const rgba &a_from)
Definition: rgba:60
tools::sg::desc_fields
Definition: field_desc:148
tools::sg::render_action::color4f
virtual void color4f(float, float, float, float)=0
tools::sg::color
Definition: color:16
tools::sg::rgba::~rgba
virtual ~rgba()
Definition: rgba:58
tools::sg::sf_vec
Definition: sf_vec:15
tools::sg::rgba::render
virtual void render(render_action &a_action)
Definition: rgba:33
sf_vec
tools::sg::render_action
Definition: render_action:24
tools
inlined C code : ///////////////////////////////////
Definition: aida_ntuple:26
tools::sg::node::add_field
void add_field(field *a_field)
Definition: node:128
TOOLS_FIELD_DESC_NODE_CLASS
#define TOOLS_FIELD_DESC_NODE_CLASS(a__class)
Definition: field:68
tools::sg::state::m_color
colorf m_color
Definition: state:259
tools::sg::states::state
const sg::state & state() const
Definition: states:76
tools::sg::rgba::operator=
rgba & operator=(const rgba &a_from)
Definition: rgba:66
TOOLS_ARG_FIELD_DESC
#define TOOLS_ARG_FIELD_DESC(a__field)
Definition: field:71