inlib  1.2.0
Public Member Functions | Static Public Member Functions | Protected Member Functions
inlib::sg::node Class Reference
Inheritance diagram for inlib::sg::node:
Inheritance graph
[legend]

List of all members.

Public Member Functions

virtual void * cast (const std::string &a_class) const
virtual nodecopy () const =0
virtual const std::string & s_cls () const =0
virtual void render (render_action &)
virtual void pick (pick_action &)
virtual void bbox (bbox_action &)
virtual void search (search_action &a_action)
virtual bool write (write_action &a_action)
virtual void event (event_action &)
 node ()
virtual ~node ()
void reset_touched ()
std::vector< field * > & fields ()
const std::vector< field * > & fields () const

Static Public Member Functions

static const std::string & s_class ()

Protected Member Functions

 node (const node &)
nodeoperator= (const node &)
void add_field (field *a_field)
bool touched ()
bool write_fields (write_action &a_action)

Detailed Description

Definition at line 30 of file node.


Constructor & Destructor Documentation

inlib::sg::node::node ( ) [inline]

Definition at line 61 of file node.

        {
#ifdef INLIB_MEM
    mem::increment(s_class().c_str());
#endif
  }
virtual inlib::sg::node::~node ( ) [inline, virtual]

Definition at line 66 of file node.

                 {
#ifdef INLIB_MEM
    mem::decrement(s_class().c_str());
#endif
  }
inlib::sg::node::node ( const node ) [inline, protected]

Definition at line 72 of file node.

                   {
#ifdef INLIB_MEM
    mem::increment(s_class().c_str());
#endif
  }

Member Function Documentation

void inlib::sg::node::add_field ( field a_field) [inline, protected]

Definition at line 79 of file node.

                                 {
    m_fields.push_back(a_field); //it does not take ownerhship.
  }
virtual void inlib::sg::node::bbox ( bbox_action ) [inline, virtual]

Reimplemented in inlib::sg::group, inlib::sg::_switch, and inlib::sg::noderef.

Definition at line 46 of file node.

{}
virtual void* inlib::sg::node::cast ( const std::string &  a_class) const [inline, virtual]

Reimplemented in inlib::sg::base_camera, inlib::sg::ghost, inlib::sg::group, inlib::sg::holder< T >, inlib::sg::infos, and inlib::sg::noderef.

Definition at line 36 of file node.

                                                     {
    if(void* p = inlib::cmp_cast<node>(this,a_class)) {return p;}
    else return 0;
  }
virtual node* inlib::sg::node::copy ( ) const [pure virtual]
virtual void inlib::sg::node::event ( event_action ) [inline, virtual]

Reimplemented in inlib::sg::_switch, inlib::sg::group, and inlib::sg::noderef.

Definition at line 59 of file node.

{}
std::vector<field*>& inlib::sg::node::fields ( ) [inline]

Definition at line 123 of file node.

{return m_fields;}
const std::vector<field*>& inlib::sg::node::fields ( ) const [inline]

Definition at line 124 of file node.

{return m_fields;}
node& inlib::sg::node::operator= ( const node ) [inline, protected]

Definition at line 77 of file node.

{return *this;}
virtual void inlib::sg::node::pick ( pick_action ) [inline, virtual]

Reimplemented in inlib::sg::ghost, inlib::sg::group, inlib::sg::_switch, and inlib::sg::noderef.

Definition at line 45 of file node.

{}
virtual void inlib::sg::node::render ( render_action ) [inline, virtual]

Reimplemented in inlib::sg::group, inlib::sg::noderef, and inlib::sg::_switch.

Definition at line 44 of file node.

{}
void inlib::sg::node::reset_touched ( ) [inline]

Definition at line 106 of file node.

                       {
    std::vector<field*>::iterator it;
    for(it=m_fields.begin();it!=m_fields.end();++it) {
      (*it)->reset_touched();
    }
  }
static const std::string& inlib::sg::node::s_class ( ) [inline, static]

Reimplemented in inlib::sg::base_camera, inlib::sg::ghost, inlib::sg::group, inlib::sg::holder< T >, inlib::sg::infos, and inlib::sg::noderef.

Definition at line 32 of file node.

                                    {
    static const std::string s_v("inlib::sg::node");
    return s_v;
  }
virtual const std::string& inlib::sg::node::s_cls ( ) const [pure virtual]
virtual void inlib::sg::node::search ( search_action a_action) [inline, virtual]

Reimplemented in inlib::sg::group, inlib::sg::_switch, and inlib::sg::noderef.

Definition at line 47 of file node.

                                               {
    if(void* p = cast(a_action.sclass())) {
      a_action.add_obj(p);
      //FIXME : if not ALL : a_action.set_done(true);
    }
  }
bool inlib::sg::node::touched ( ) [inline, protected]

Definition at line 82 of file node.

                 {
    std::vector<field*>::iterator it;
    for(it=m_fields.begin();it!=m_fields.end();++it) {
      if((*it)->touched()) return true;
    }
    return false;
  }
virtual bool inlib::sg::node::write ( write_action a_action) [inline, virtual]

Reimplemented in inlib::sg::group, and inlib::sg::noderef.

Definition at line 53 of file node.

                                             {
    if(!a_action.beg_node(*this)) return false;
    if(!write_fields(a_action)) return false;
    if(!a_action.end_node(*this)) return false;
    return true;
  }
bool inlib::sg::node::write_fields ( write_action a_action) [inline, protected]

Definition at line 89 of file node.

                                            {
    unsigned int index = 0;
    std::vector<field*>::iterator it;
    for(it=m_fields.begin();it!=m_fields.end();++it,index++) {
      if(!(*it)->write(a_action.buffer())) {
        a_action.out() << "inlib::sg::node::write_fields :"
                       << " field.write() failed"
                       << " for field index " << index
                       << " of node class " << s_cls()
                       << "."
                       << std::endl;
        return false;
      }
    }
    return true;
  }

The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines