# osg::Switch Class Reference

Switch is a Group node that allows switching between children. More...

Inheritance diagram for osg::Switch:

[legend]
List of all members.

## Public Types

typedef std::vector< bool > | ValueList

## Public Member Functions

| Switch ()
| Switch (const Switch &, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
| Copy constructor using CopyOp to manage deep vs shallow copy.
| META_Node (osg, Switch)
virtual void | traverse (NodeVisitor &nv)
| Traverse downwards : calls children's accept method with NodeVisitor.
void | setNewChildDefaultValue (bool value)
bool | getNewChildDefaultValue () const
virtual bool | addChild (Node *child)
| Add Node to Group.
virtual bool | addChild (Node *child, bool value)
virtual bool | insertChild (unsigned int index, Node *child)
| Insert Node to Group at specific location.
virtual bool | insertChild (unsigned int index, Node *child, bool value)
virtual bool | removeChild (Node *child)
| Remove Node from Group.
void | setValue (unsigned int pos, bool value)
bool | getValue (unsigned int pos) const
void | setChildValue (const Node *child, bool value)
bool | getChildValue (const Node *child) const
bool | setAllChildrenOff ()
| Set all the children off (false), and set the new default child value to off (false).
bool | setAllChildrenOn ()
| Set all the children on (true), and set the new default child value to on (true).
bool | setSingleChildOn (unsigned int pos)
| Set a single child on, switch off all other children.
const ValueList & | getValueList () const

## Protected Member Functions

virtual | ~Switch ()

## Protected Attributes

bool | _newChildDefaultValue
ValueList | _values

## Detailed Description

Switch is a Group node that allows switching between children.

Typical uses would be for objects which might need to be rendered differently at different times, for instance a switch could be used to represent the different states of a traffic light.

## Member Typedef Documentation

typedef std::vector<bool> osg::Switch::ValueList

## Constructor & Destructor Documentation

Switch::Switch | ( |  | ) |

Switch::Switch | ( | const Switch & | ,
|  | const CopyOp & | copyop = `CopyOp::SHALLOW_COPY`
| ) |

| Copy constructor using CopyOp to manage deep vs shallow copy.

virtual osg::Switch::~Switch | ( |  | ) | `[inline, protected, virtual]`

## Member Function Documentation

bool Switch::addChild | ( | Node * | child,
|  | bool | value
| ) | `[virtual]`

bool Switch::addChild | ( | Node * | child | ) | `[virtual]`

| Add Node to Group. If node is not NULL and is not contained in Group then increment its reference count, add it to the child list and dirty the bounding sphere to force it to recompute on next getBound() and return true for success. Otherwise return false. Scene nodes can't be added as child nodes. Reimplemented from osg::Group.

bool Switch::getChildValue | ( | const Node * | child | ) | const

bool osg::Switch::getNewChildDefaultValue | ( |  | ) | const`[inline]`

bool Switch::getValue | ( | unsigned int | pos | ) | const

const ValueList& osg::Switch::getValueList | ( |  | ) | const`[inline]`

bool Switch::insertChild | ( | unsigned int | index,
|  | Node * | child,
|  | bool | value
| ) | `[virtual]`

bool Switch::insertChild | ( | unsigned int | index,
|  | Node * | child
| ) | `[virtual]`

| Insert Node to Group at specific location. The new child node is inserted into the child list before the node at the specified index. No nodes are removed from the group with this operation. Reimplemented from osg::Group.

osg::Switch::META_Node | ( | osg | ,
|  | Switch |
| ) |

bool Switch::removeChild | ( | Node * | child | ) | `[virtual]`

| Remove Node from Group. If Node is contained in Group then remove it from the child list, decrement its reference count, and dirty the bounding sphere to force it to recompute on next getBound() and return true for success. If Node is not found then return false and do not change the reference count of the Node. Reimplemented from osg::Group.

bool Switch::setAllChildrenOff | ( |  | ) |

| Set all the children off (false), and set the new default child value to off (false).

bool Switch::setAllChildrenOn | ( |  | ) |

| Set all the children on (true), and set the new default child value to on (true).

void Switch::setChildValue | ( | const Node * | child,
|  | bool | value
| ) |

void osg::Switch::setNewChildDefaultValue | ( | bool | value | ) | `[inline]`

bool Switch::setSingleChildOn | ( | unsigned int | pos | ) |

| Set a single child on, switch off all other children.

void Switch::setValue | ( | unsigned int | pos,
|  | bool | value
| ) |

void Switch::traverse | ( | NodeVisitor & | nv | ) | `[virtual]`

| Traverse downwards : calls children's accept method with NodeVisitor. Reimplemented from osg::Group.

## Member Data Documentation

bool osg::Switch::_newChildDefaultValue `[protected]`

ValueList osg::Switch::_values `[protected]`

The documentation for this class was generated from the following files:

- Switch
- Switch.cpp