Loading...
Searching...
No Matches
GroupNode Class Reference

The GroupNode class provides common API for grouping child nodes. More...

`#include <avogadro/rendering/groupnode.h>`

Inheritance diagram for GroupNode:

## Classes

struct | NodeInfo

## Public Types

enum | NodeType { ALL = 0 , NONE = -1 , UI = 1 , GEOMETRY = 2 }

## Public Member Functions

| GroupNode (GroupNode *parent=nullptr)
void | accept (Visitor &) override
void | addChild (Node *node, NodeType ui=NodeType::GEOMETRY)
| Add a child node, this node will have its parent set and will be deleted by this node upon destruction.
void | addUIChild (Node *node)
| Add a child node, this node will have its parent set and will be deleted by this node upon destruction.
bool | removeChild (Node *node)
| Remove child node, this node will no longer be deleted.
Node * | child (size_t index)
| Get the child Node at the specified index.
bool | hasChild (Node *node) const
| check if the Node exists in this GroupNode.
size_t | childCount () const
std::list< NodeInfo > & | children ()
| Get a reference to the child nodes list.
const std::list< NodeInfo > & | children () const
void | clear ()
| Remove all non UI-children.
void | clearUI ()
| Remove all UI-children.
Public Member Functions inherited from Node
const GroupNode * | parent () const
| Get a pointer to the node's parent.
GroupNode * | parent ()
void | setVisible (bool visibility)
| Set the visibility of the node.
bool | isVisible () const
| Get the current visibility of the node.
template<typename T>
T * | cast ()
| Attempt to dynamic_cast to specified node type.
template<typename T>
const T * | cast () const

## Protected Member Functions

void | clear (NodeType type)
Protected Member Functions inherited from Node
void | setParent (GroupNode *parent)
| Set the parent node for the node.

## Protected Attributes

std::list< NodeInfo > | m_children
Protected Attributes inherited from Node
GroupNode * | m_parent
bool | m_visible

## Detailed Description

Author
  Marcus D. Hanwell

The GroupNode may be used to group items together, but for most other purposes a more derived Node type would be the correct choice.

## Member Function Documentation

## accept()

void accept | ( | Visitor & |  | ) |

override virtual

Accept a visit from our friendly visitor.

Reimplemented from Node.

## addChild()

void addChild | ( | Node * | node,
|  | NodeType | ui = NodeType::GEOMETRY )

Parameters

  node | Node to be added.

## addUIChild()

void addUIChild | ( | Node * | node | ) |

Parameters

  node | Node to be added.

## removeChild()

bool removeChild | ( | Node * | node | ) |

Parameters

  node | Node to be removed.

Returns
  True if the node was removed, false if it was not found.

## child()

Node * child | ( | size_t | index | ) |

Parameters

  index | The index of the child.

Returns
  A pointer to the child node, or nullptr if the index is out of range. time complexity: O(n)

## hasChild()

bool hasChild | ( | Node * | node | ) | const

Parameters

  node | Node to search.

Returns
  True if the node was found, false otherwise.

## childCount()

size_t childCount | ( |  | ) | const

Returns
  The number of child nodes contained by the GroupNode.

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

- groupnode.h