Man Linux: Main Page and Category List

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.