AvogadroLibs 1.98.1
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
GroupNode Class Reference

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

#include <avogadro/rendering/groupnode.h>

Inheritance diagram for GroupNode:
Node TransformNode

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.
 
Nodechild (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 GroupNodeparent () const
 Get a pointer to the node's parent.
 
GroupNodeparent ()
 
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< NodeInfom_children
 
- Protected Attributes inherited from Node
GroupNodem_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 )
overridevirtual

Accept a visit from our friendly visitor.

Reimplemented from Node.

◆ addChild()

void addChild ( Node node,
NodeType  ui = NodeType::GEOMETRY 
)
Parameters
nodeNode to be added.

◆ addUIChild()

void addUIChild ( Node node)
Parameters
nodeNode to be added.

◆ removeChild()

bool removeChild ( Node node)
Parameters
nodeNode to be removed.
Returns
True if the node was removed, false if it was not found.

◆ child()

Node * child ( size_t  index)
Parameters
indexThe 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
nodeNode 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: