g4tools  5.4.0
separator
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_separator
5 #define tools_sg_separator
6 
7 #include "group"
8 #include "render_action"
9 #include "bbox_action"
10 #include "visible_action"
11 
12 namespace tools {
13 namespace sg {
14 
15 class separator : public group {
17 public: //node
18  virtual void render(render_action& a_action) {
19  a_action.push_matrices();
20  a_action.push_state();
21 
22  parent::render(a_action);
23 
24  unsigned int ret_num_light = a_action.state().m_light;
25 
26  a_action.pop_matrices();
27  a_action.pop_state();
28 
29  a_action.restore_state(ret_num_light);
30  }
31  virtual void pick(pick_action& a_action) {
32  a_action.push_matrices();
33  a_action.push_state();
34  parent::pick(a_action);
35  a_action.pop_matrices();
36  a_action.pop_state();
37  }
38  virtual void bbox(bbox_action& a_action) {
39  a_action.push_matrices();
40  a_action.push_state();
41  parent::bbox(a_action);
42  a_action.pop_matrices();
43  a_action.pop_state();
44  }
45  virtual void event(event_action& a_action) {
46  a_action.push_matrices();
47  a_action.push_state();
48  parent::event(a_action);
49  a_action.pop_matrices();
50  a_action.pop_state();
51  }
52  virtual void get_matrix(get_matrix_action& a_action) {
53  a_action.push_matrices();
54  a_action.push_state();
55  parent::get_matrix(a_action);
56  a_action.pop_matrices();
57  a_action.pop_state();
58  }
59  virtual bool write(write_action& a_action) {
60  if(!a_action.beg_node(*this)) return false;
61  if(!write_fields(a_action)) return false;
62  if(!write_children(a_action)) return false;
63  if(!a_action.end_node(*this)) return false;
64  return true;
65  }
66  virtual void is_visible(visible_action& a_action) {
67  a_action.push_matrices();
68  a_action.push_state();
69  parent::is_visible(a_action);
70  a_action.pop_matrices();
71  a_action.pop_state();
72  }
73 public:
74  separator():parent(){
75 #ifdef TOOLS_MEM
76  mem::increment(s_class().c_str());
77 #endif
78  }
79  virtual ~separator(){
80 #ifdef TOOLS_MEM
81  mem::decrement(s_class().c_str());
82 #endif
83  }
84 public:
85  separator(const separator& a_from):parent(a_from){
86 #ifdef TOOLS_MEM
87  mem::increment(s_class().c_str());
88 #endif
89  }
90  separator& operator=(const separator& a_from){
91  parent::operator=(a_from);
92  return *this;
93  }
94 };
95 
96 }}
97 
98 #endif
tools::sg::render_action::restore_state
virtual void restore_state(unsigned int)=0
tools::sg::separator::is_visible
virtual void is_visible(visible_action &a_action)
Definition: separator:66
tools::sg::states::pop_state
void pop_state()
Definition: states:78
tools::sg::states::push_state
void push_state()
Definition: states:83
tools::sg::separator::event
virtual void event(event_action &a_action)
Definition: separator:45
tools::sg::matrix_action::pop_matrices
void pop_matrices()
Definition: matrix_action:66
tools::sg::separator::get_matrix
virtual void get_matrix(get_matrix_action &a_action)
Definition: separator:52
tools::sg::event_action
Definition: event_action:14
tools::sg::write_action::end_node
virtual bool end_node(const node &)=0
render_action
tools::sg::bbox_action
Definition: bbox_action:15
TOOLS_NODE
#define TOOLS_NODE(a__class, a__sclass, a__parent)
Definition: node:324
tools::sg::write_action
Definition: write_action:21
tools::sg::group
Definition: group:21
group
tools::sg::separator::separator
separator()
Definition: separator:74
tools::sg::matrix_action::push_matrices
void push_matrices()
Definition: matrix_action:51
tools::sg::separator::pick
virtual void pick(pick_action &a_action)
Definition: separator:31
tools::sg::pick_action
Definition: pick_action:59
tools::sg::separator::bbox
virtual void bbox(bbox_action &a_action)
Definition: separator:38
tools::sg::state::m_light
unsigned int m_light
Definition: state:262
tools::sg::write_action::beg_node
virtual bool beg_node(const node &)=0
tools::sg::render_action
Definition: render_action:24
tools::sg::separator
Definition: separator:15
tools::sg::separator::~separator
virtual ~separator()
Definition: separator:79
visible_action
tools::sg::separator::operator=
separator & operator=(const separator &a_from)
Definition: separator:90
tools::sg::get_matrix_action
Definition: get_matrix_action:17
tools
inlined C code : ///////////////////////////////////
Definition: aida_ntuple:26
tools::sg::separator::render
virtual void render(render_action &a_action)
Definition: separator:18
tools::sg::separator::separator
separator(const separator &a_from)
Definition: separator:85
tools::sg::node::write_fields
bool write_fields(write_action &a_action)
Definition: node:132
tools::sg::states::state
const sg::state & state() const
Definition: states:76
tools::sg::visible_action
Definition: visible_action:12
tools::sg::group::write_children
bool write_children(write_action &a_action)
Definition: group:311
bbox_action
tools::sg::separator::write
virtual bool write(write_action &a_action)
Definition: separator:59