#include <Group.h>
Inheritance diagram for nvsg::Group:
Public Member Functions | |
virtual NVSG_API const Group * | clone (void) const |
Get a clone of this Group object. | |
virtual NVSG_API bool | isDataShared (void) const |
Determine whether the data of this object is shared. | |
virtual NVSG_API DataID | getDataID (void) const |
Get the DataID of the data of this object. | |
NVSG_API size_t | getNumberOfChildren (void) const |
Returns the number of children in this group. | |
NVSG_API size_t | addChild (const Node *pChild, size_t position=0xFFFFFFFF) |
Add a child to this group. | |
NVSG_API const Node * | getChild (size_t index) const |
Returns a pointer to the const child Node at position index. | |
NVSG_API bool | removeChild (const Node *pChild) |
Remove a child from this group. | |
NVSG_API bool | removeChild (size_t position) |
Remove the child at given position. | |
NVSG_API bool | replaceChild (const Node *newChild, const Node *oldChild) |
Replace a child of this Group by an other. | |
NVSG_API bool | replaceChild (const Node *newChild, size_t position) |
Replace a child of this Group by an other. | |
NVSG_API bool | hasChild (const Node *node) const |
Check if node is a child of this group. | |
NVSG_API bool | getIndex (const Node *node, size_t &index) const |
virtual NVSG_API bool | containsCgFx (void) const |
Ask if this Group contains any CgFx attributes. | |
virtual NVSG_API void | invalidateCgFxContainment (void) |
Invalidate the CgFx containment cache. | |
virtual NVSG_API bool | containsLight (void) const |
Ask if this Group contains any LightSource. | |
virtual NVSG_API void | invalidateLightContainment (void) |
Invalidate the LightSource containment cache. | |
virtual NVSG_API bool | containsTransparentMaterial (void) const |
Ask if this Group contains any transparent Material attributes. | |
virtual NVSG_API void | invalidateTransparentMaterialContainment (void) |
Invalidate the transparent Material containment cache. | |
virtual NVSG_API bool | containsTransparentTexture (void) const |
Ask if this Group contains any transparent Texture. | |
virtual NVSG_API void | invalidateTransparentTextureContainment (void) |
Invalidate the transparent Texture containment cache. | |
virtual NVSG_API size_t | getNumberOfFrames (void) const |
Get the number of animation frames that are part of this Node. | |
virtual NVSG_API void | invalidateNumberOfFrames (void) const |
Invalidate the number of animation frames cache. | |
Static Public Member Functions | |
static NVSG_API const Group * | create (void) |
Create a Group. | |
static NVSG_API const Group * | createFromBase (const Node &rhs) |
Create a Group by copying from a Node. | |
Protected Member Functions | |
NVSG_API | Group (void) |
Protected constructor. | |
NVSG_API | Group (const Node &rhs) |
Partial Constructor. | |
NVSG_API | Group (const Group &rhs) |
Protected copy constructor. | |
virtual NVSG_API | ~Group (void) |
Protected destructor to prevent explicit creation on stack. | |
virtual NVSG_API bool | calcBoundingSphere (void) const |
Calculate the bounding sphere of this group. | |
void | invalidateCaches (const Node *pChild, bool insert) |
Invalidate all caches of this Group, possibly depending on the added or removed Node. |
A Group is a base class for grouping nodes that contain children, such as Transform or Switch - in other words, nodes that are defined relative to this node.
|
Protected constructor.
|
|
Partial Constructor.
|
|
Protected copy constructor.
|
|
Protected destructor to prevent explicit creation on stack.
|
|
Create a Group.
Reimplemented in nvsg::LOD, nvsg::Switch, and nvsg::Transform. |
|
Create a Group by copying from a Node.
|
|
Get a clone of this
Implements nvsg::Node. Reimplemented in nvsg::AnimatedTransform, nvsg::LOD, nvsg::Switch, and nvsg::Transform. |
|
Determine whether the data of this object is shared.
Reimplemented from nvsg::Node. Reimplemented in nvsg::AnimatedTransform, nvsg::Switch, and nvsg::Transform. |
|
Get the DataID of the data of this object.
Reimplemented from nvsg::Node. Reimplemented in nvsg::AnimatedTransform, nvsg::Switch, and nvsg::Transform. |
|
Returns the number of children in this group.
|
|
Add a child to this group. Adds the node pChild at position position. If position is larger than the group size, the child is added to the end. By default, the child is added to the end.
|
|
Returns a pointer to the const child Node at position index.
|
|
Remove a child from this group.
|
|
Remove the child at given position. If the position is not valid in this group, nothing is removed.
|
|
Replace a child of this Group by an other.
Replaces the oldChild by the newChild, keeping the position in the Group constant. If oldChild is not a child of this Group, nothing is changed and
|
|
Replace a child of this Group by an other.
Replaces the child at index by newChild. If the index is not valid, nothing is changed and
|
|
Check if node is a child of this group.
|
|
|
|
Ask if this Group contains any CgFx attributes.
Reimplemented from nvsg::Node. |
|
Invalidate the CgFx containment cache. The cache is invalidated and the invalidation of a Node is called. Reimplemented from nvsg::Node. |
|
Ask if this Group contains any LightSource.
Reimplemented from nvsg::Node. |
|
Invalidate the LightSource containment cache. The cache is invalidated and the invalidation of a Node is called. Reimplemented from nvsg::Node. |
|
Ask if this Group contains any transparent Material attributes.
Reimplemented from nvsg::Node. |
|
Invalidate the transparent Material containment cache. The cache is invalidated and the invalidation of a Node is called. Reimplemented from nvsg::Node. |
|
Ask if this Group contains any transparent Texture.
Reimplemented from nvsg::Node. |
|
Invalidate the transparent Texture containment cache. The cache is invalidated and the invalidation of a Node is called. Reimplemented from nvsg::Node. |
|
Get the number of animation frames that are part of this Node.
Reimplemented from nvsg::Node. Reimplemented in nvsg::AnimatedTransform. |
|
Invalidate the number of animation frames cache. The cache is invalidated and the invalidation of a Node is called. Reimplemented from nvsg::Node. |
|
Calculate the bounding sphere of this group. If this group doesn't contain any real geometry (for example only light sources without a bounding sphere), it doesn't have a valid bounding sphere.
Implements nvsg::Node. Reimplemented in nvsg::Switch, and nvsg::Transform. |
|
Invalidate all caches of this Group, possibly depending on the added or removed Node. Invalidates the bounding sphere of this Group. If the CgFx containment or the LightSource containment changes by adding/removing pChild, the corresponding caches are invalidated. |