NAME
SoVRMLParent -
The SoVRMLParent node is a superclass for all VRML grouping nodes.
SYNOPSIS
#include <Inventor/VRMLnodes/SoVRMLParent.h>
Inherits SoGroup.
Inherited by SoVRMLAnchor, SoVRMLBillboard, and SoVRMLGroup.
Public Member Functions
virtual SbBool affectsState (void) const
virtual void addChild (SoNode *child)
virtual void insertChild (SoNode *child, int idx)
virtual SoNode * getChild (int idx) const
virtual int findChild (const SoNode *child) const
virtual int getNumChildren (void) const
virtual void removeChild (int idx)
virtual void removeChild (SoNode *child)
virtual void removeAllChildren (void)
virtual void replaceChild (int idx, SoNode *child)
virtual void replaceChild (SoNode *old, SoNode *child)
virtual SoChildList * getChildren (void) const
virtual void doAction (SoAction *action)
virtual void search (SoSearchAction *action)
virtual void write (SoWriteAction *action)
virtual void getPrimitiveCount (SoGetPrimitiveCountAction *action)
Static Public Member Functions
static void initClass (void)
static void updateChildList (const SoNode *const *nodes, const int
numnodes, SoChildList &cl)
static void updateChildList (SoNode *nodewithsfnode, SoChildList &cl)
Public Attributes
SoMFNode children
Protected Member Functions
SoVRMLParent (void)
SoVRMLParent (int approxchildren)
virtual ~SoVRMLParent ()
virtual void notify (SoNotList *list)
virtual SbBool readInstance (SoInput *in, unsigned short flags)
virtual void copyContents (const SoFieldContainer *from, SbBool
copyConn)
Protected Attributes
SoMFNode addChildren
SoMFNode removeChildren
Detailed Description
The SoVRMLParent node is a superclass for all VRML grouping nodes.
Constructor & Destructor Documentation
SoVRMLParent::SoVRMLParent (void) [protected] Constructor.
SoVRMLParent::SoVRMLParent (int numchildren) [protected] Destructor.
numchildren is the expected number of children.
SoVRMLParent::~SoVRMLParent () [protected, virtual] Destructor.
Member Function Documentation
void SoVRMLParent::initClass (void) [static] Sets up initialization for
data common to all instances of this class, like submitting necessary
information to the Coin type system.
Reimplemented from SoGroup.
Reimplemented in SoVRMLAnchor, SoVRMLBillboard, SoVRMLCollision,
SoVRMLGroup, and SoVRMLTransform.
SbBool SoVRMLParent::affectsState (void) const [virtual] Returns TRUE if
the node could have any effect on the state during traversal.
If it returns FALSE, no data in the traversal-state will change from
the pre-traversal state to the post-traversal state. The SoSeparator
node will for instance return FALSE, as it pushes and pops the state
before and after traversal of its children. All SoShape nodes will also
return FALSE, as just pushing out geometry data to the rendering engine
won’t affect the actual rendering state.
The default method returns TRUE, on a ’better safe than sorry’
philosophy.
Reimplemented from SoNode.
void SoVRMLParent::addChild (SoNode * node) [virtual] Append a child node
to the list of children nodes this group node is managing.
Please note that this method is not virtual in the original SGI
Inventor API.
Reimplemented from SoGroup.
void SoVRMLParent::insertChild (SoNode * child, int newchildindex)
[virtual] Insert a child node at position newchildindex.
newchildindex must be <= this->getNumChildren()
Please note that this method is not virtual in the original SGI
Inventor API.
Reimplemented from SoGroup.
SoNode * SoVRMLParent::getChild (int index) const [virtual] Returns pointer
to child node at index.
Please note that this method is not virtual in the original SGI
Inventor API.
Reimplemented from SoGroup.
int SoVRMLParent::findChild (const SoNode * node) const [virtual] Returns
index in our list of children for child node, or -1 if node is not a
child of this group node.
Please note that this method is not virtual in the original SGI
Inventor API.
Reimplemented from SoGroup.
int SoVRMLParent::getNumChildren (void) const [virtual] Returns number of
child nodes managed by this group.
Please note that this method is not virtual in the original SGI
Inventor API.
Reimplemented from SoGroup.
void SoVRMLParent::removeChild (int childindex) [virtual] Remove node at
childindex in our list of children.
Please note that this method is not virtual in the original SGI
Inventor API.
Reimplemented from SoGroup.
void SoVRMLParent::removeChild (SoNode * child) [virtual] Remove child from
the set of children managed by this group node. Will decrease the
reference count of child by 1.
This is a convenience method. It will simply call findChild() with
child as argument, and then call removeChild(int) if the child is
found.
Please note that this method is not virtual in the original SGI
Inventor API.
Reimplemented from SoGroup.
void SoVRMLParent::removeAllChildren (void) [virtual] Do not manage the
children anymore. Will dereference all children by 1 as they are
removed.
Please note that this method is not virtual in the original SGI
Inventor API.
Reimplemented from SoGroup.
void SoVRMLParent::replaceChild (int index, SoNode * newchild) [virtual]
Replace child at index with newChild.
Dereferences the child previously at index, and increases the reference
count of newChild by 1.
index must be < this->getNumChildren()
Please note that this method is not virtual in the original SGI
Inventor API.
Reimplemented from SoGroup.
void SoVRMLParent::replaceChild (SoNode * oldchild, SoNode * newchild)
[virtual] Replace oldchild with newchild.
Dereferences oldchild by 1, and increases the reference count of
newchild by 1.
This is a convenience method. It will simply call findChild() with
oldchild as argument, and call replaceChild(int, SoNode*) if the child
is found.
Please note that this method is not virtual in the original SGI
Inventor API.
Reimplemented from SoGroup.
SoChildList * SoVRMLParent::getChildren (void) const [virtual] Returns list
of children.
Reimplemented from SoGroup.
void SoVRMLParent::doAction (SoAction * action) [virtual] This function
performs the typical operation of a node for any action.
Reimplemented from SoGroup.
Reimplemented in SoVRMLBillboard, SoVRMLGroup, and SoVRMLTransform.
void SoVRMLParent::search (SoSearchAction * action) [virtual] Action method
for SoSearchAction.
Compares the search criteria from the action to see if this node is a
match. Searching is done by matching up all criteria set up in the
SoSearchAction -- if any of the requested criteria is a miss, the
search is not deemed successful for the node.
See also:
SoSearchAction
Reimplemented from SoGroup.
Reimplemented in SoVRMLBillboard, and SoVRMLGroup.
void SoVRMLParent::write (SoWriteAction * action) [virtual] Action method
for SoWriteAction.
Writes out a node object, and any connected nodes, engines etc, if
necessary.
Reimplemented from SoGroup.
Reimplemented in SoVRMLGroup.
void SoVRMLParent::getPrimitiveCount (SoGetPrimitiveCountAction * action)
[virtual] Action method for the SoGetPrimitiveCountAction.
Calculates the number of triangle, line segment and point primitives
for the node and adds these to the counters of the action.
Nodes influencing how geometry nodes calculates their primitive count
also overrides this method to change the relevant state variables.
Reimplemented from SoGroup.
Reimplemented in SoVRMLGroup, and SoVRMLTransform.
void SoVRMLParent::updateChildList (const SoNode *const * nodes, const int
numnodes, SoChildList & cl) [static] A convenience method that can be
used to update cl to match the list of nodes in nodes.
void SoVRMLParent::updateChildList (SoNode * nodewithsfnode, SoChildList &
cl) [static] A convenience method that is used to sync the nodes in cl
with all nodes in SoSFNode fields in nodewithsfnode.
void SoVRMLParent::notify (SoNotList * l) [protected, virtual] Notifies all
auditors for this instance when changes are made.
Reimplemented from SoNode.
Reimplemented in SoVRMLBillboard, SoVRMLCollision, SoVRMLGroup, and
SoVRMLTransform.
SbBool SoVRMLParent::readInstance (SoInput * in, unsigned short flags)
[protected, virtual] This method is mainly intended for internal use
during file import operations.
It reads a definition of an instance from the input stream in. The
input stream state points to the start of a serialized / persistant
representation of an instance of this class type.
TRUE or FALSE is returned, depending on if the instantiation and
configuration of the new object of this class type went ok or not. The
import process should be robust and handle corrupted input streams by
returning FALSE.
flags is used internally during binary import when reading user
extension nodes, group nodes or engines.
Reimplemented from SoGroup.
void SoVRMLParent::copyContents (const SoFieldContainer * from, SbBool
copyconnections) [protected, virtual] Makes a deep copy of all data of
from into this instance, except external scenegraph references if
copyconnections is FALSE.
This is the protected method that should be overridden by extension
node / engine / dragger / whatever subclasses which needs to account
for internal data that are not handled automatically.
For copying nodes from application code, you should not invoke this
function directly, but rather call the SoNode::copy() function:
SoNode * mynewnode = templatenode->copy();
The same also goes for engines.
Make sure that when you override the copyContents() method in your
extension class that you also make it call upwards to it’s parent
superclass in the inheritance hierarchy, as copyContents() in for
instance SoNode and SoFieldContainer does important work. It should go
something like this:
void
MyCoinExtensionNode::copyContents(const SoFieldContainer * from,
SbBool copyconnections)
{
// let parent superclasses do their thing (copy fields, copy
// instance name, etc etc)
SoNode::copyContents(from, copyconnections);
// [..then copy internal data..]
}
Reimplemented from SoGroup.
Member Data Documentation
SoMFNode SoVRMLParent::children The children nodes.
Reimplemented from SoGroup.
SoMFNode SoVRMLParent::addChildren [protected] An event in that is used to
add children to this node.
SoMFNode SoVRMLParent::removeChildren [protected] An event in that is used
to remove children from this node.
Author
Generated automatically by Doxygen for Coin from the source code.