|
inlib
1.2.0
|


Public Member Functions | |
| virtual void * | cast (const std::string &a_class) const |
| virtual node * | copy () const |
| virtual const std::string & | s_cls () const |
| virtual void | render (render_action &a_action) |
| virtual void | pick (pick_action &a_action) |
| virtual void | bbox (bbox_action &a_action) |
| virtual void | event (event_action &a_action) |
| virtual void | search (search_action &a_action) |
| virtual bool | write (write_action &a_action) |
| group () | |
| virtual | ~group () |
| group (const group &a_from) | |
| group & | operator= (const group &a_from) |
| void | add (node *a_node) |
| void | set (unsigned a_index, node *a_node) |
| void | clear () |
| unsigned int | size () const |
| bool | empty () const |
| node * | operator[] (unsigned int a_index) const |
| const std::vector< node * > & | children () const |
Static Public Member Functions | |
| static const std::string & | s_class () |
Protected Member Functions | |
| bool | write_children (write_action &a_action) |
Protected Attributes | |
| std::vector< node * > | m_children |
| virtual inlib::sg::group::~group | ( | ) | [inline, virtual] |
| inlib::sg::group::group | ( | const group & | a_from | ) | [inline] |
Definition at line 76 of file group.
:node(a_from) { std::vector<node*>::const_iterator it; for(it=a_from.m_children.begin();it!=a_from.m_children.end();++it) { m_children.push_back((*it)->copy()); } }
| void inlib::sg::group::add | ( | node * | a_node | ) | [inline] |
Definition at line 94 of file group.
{
//WARNING : take ownership of a_node.
m_children.push_back(a_node);
}
| virtual void inlib::sg::group::bbox | ( | bbox_action & | a_action | ) | [inline, virtual] |
Reimplemented from inlib::sg::node.
Reimplemented in inlib::sg::_switch.
Definition at line 46 of file group.
{
std::vector<node*>::iterator it;
for(it=m_children.begin();it!=m_children.end();++it) {
(*it)->bbox(a_action);
}
}
| virtual void* inlib::sg::group::cast | ( | const std::string & | a_class | ) | const [inline, virtual] |
Reimplemented from inlib::sg::node.
Definition at line 25 of file group.
{
if(void* p = inlib::cmp_cast<group>(this,a_class)) {return p;}
return node::cast(a_class);
}
| const std::vector<node*>& inlib::sg::group::children | ( | ) | const [inline] |
Definition at line 138 of file group.
{return m_children;}
| void inlib::sg::group::clear | ( | ) | [inline] |
Definition at line 123 of file group.
{
std::vector<node*>::iterator it;
for(it=m_children.begin();it!=m_children.end();) {
node* child = *it;
it = m_children.erase(it);
delete child;
}
m_children.clear();
}
| virtual node* inlib::sg::group::copy | ( | ) | const [inline, virtual] |
| bool inlib::sg::group::empty | ( | ) | const [inline] |
Definition at line 133 of file group.
{return m_children.size()?false:true;}
| virtual void inlib::sg::group::event | ( | event_action & | a_action | ) | [inline, virtual] |
Reimplemented from inlib::sg::node.
Reimplemented in inlib::sg::_switch.
Definition at line 52 of file group.
{
std::vector<node*>::iterator it;
for(it=m_children.begin();it!=m_children.end();++it) {
(*it)->event(a_action);
//if(a_action.handled()) break; //do not stop if handled.
}
}
Definition at line 84 of file group.
{
node::operator=(a_from);
clear();
std::vector<node*>::const_iterator it;
for(it=a_from.m_children.begin();it!=a_from.m_children.end();++it) {
m_children.push_back((*it)->copy());
}
return *this;
}
| node* inlib::sg::group::operator[] | ( | unsigned int | a_index | ) | const [inline] |
Definition at line 134 of file group.
{
//WARNING : no check is done on a_index.
return m_children[a_index];
}
| virtual void inlib::sg::group::pick | ( | pick_action & | a_action | ) | [inline, virtual] |
Reimplemented from inlib::sg::node.
Reimplemented in inlib::sg::_switch.
Definition at line 39 of file group.
{
std::vector<node*>::iterator it;
for(it=m_children.begin();it!=m_children.end();++it) {
(*it)->pick(a_action);
if(a_action.done()) break;
}
}
| virtual void inlib::sg::group::render | ( | render_action & | a_action | ) | [inline, virtual] |
Reimplemented from inlib::sg::node.
Reimplemented in inlib::sg::_switch.
Definition at line 33 of file group.
{
std::vector<node*>::iterator it;
for(it=m_children.begin();it!=m_children.end();++it) {
(*it)->render(a_action);
}
}
| static const std::string& inlib::sg::group::s_class | ( | ) | [inline, static] |
Reimplemented from inlib::sg::node.
Definition at line 20 of file group.
{
static const std::string s_v("inlib::sg::group");
return s_v;
}
| virtual const std::string& inlib::sg::group::s_cls | ( | ) | const [inline, virtual] |
| virtual void inlib::sg::group::search | ( | search_action & | a_action | ) | [inline, virtual] |
Reimplemented from inlib::sg::node.
Reimplemented in inlib::sg::_switch.
Definition at line 59 of file group.
{
std::vector<node*>::iterator it;
for(it=m_children.begin();it!=m_children.end();++it) {
(*it)->search(a_action);
if(a_action.done()) break;
}
}
| void inlib::sg::group::set | ( | unsigned | a_index, |
| node * | a_node | ||
| ) | [inline] |
Definition at line 98 of file group.
{
//WARNING : take ownership of a_node.
//WARNING : no check is done on a_index.
m_children[a_index] = a_node;
}
| unsigned int inlib::sg::group::size | ( | ) | const [inline] |
Definition at line 132 of file group.
{return m_children.size();}
| virtual bool inlib::sg::group::write | ( | write_action & | a_action | ) | [inline, virtual] |
Reimplemented from inlib::sg::node.
Definition at line 66 of file group.
{
if(!a_action.beg_node(*this)) return false;
if(!write_children(a_action)) return false;
if(!a_action.end_node(*this)) return false;
return true;
}
| bool inlib::sg::group::write_children | ( | write_action & | a_action | ) | [inline, protected] |
Definition at line 140 of file group.
{
std::vector<node*>::iterator it;
for(it=m_children.begin();it!=m_children.end();++it) {
if(!(*it)->write(a_action)) return false;
}
return true;
}
std::vector<node*> inlib::sg::group::m_children [protected] |
1.7.5.1