OpenSceneGraph/doc/osg/Group.html
2001-01-10 16:32:10 +00:00

319 lines
14 KiB
HTML

<HTML>
<HEAD>
<TITLE>class SG_EXPORT osg::Group</TITLE>
<META NAME="GENERATOR" CONTENT="DOC++ 3.4.3">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H2>class SG_EXPORT <A HREF="#DOC.DOCU">osg::Group</A>: public <!1><A HREF="Node.html#DOC.2.30.1">Node</A></H2>
<BLOCKQUOTE>General group node which maintains a list of children.</BLOCKQUOTE>
<HR>
<H2>Inheritance:</H2>
<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=275>
<param name=classes value="CReferenced,MReferenced.html,CObject,MObject.html,CNode,MNode.html,CGroup,MGroup.html,CSwitch,MSwitch.html,CSequence,MSequence.html,CScene,MScene.html,CLOD,MLOD.html,CDCS,MDCS.html">
<param name=before value="M,M,M,M,M|_,MR_,MR_,MR_,Mr_">
<param name=after value="Md_SPSP,Md_SP,Md_,M,M,M,M,M,M">
<param name=indent value="0,1,2,3,3,3,3,3,3">
<param name=arrowdir value="down">
</APPLET>
<HR>
<DL>
<P><DL>
<DT><H3>Public Methods</H3><DD><DT>
<A HREF="#DOC.2.18.9"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A> <B>Group</B>()
<DD><I></I>
<DT>
<A HREF="#DOC.2.18.10"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>virtual <!1><A HREF="Object.html#DOC.2.36.1">Object</A>* <B>clone</B>() const
<DD><I></I>
<DT>
<A HREF="#DOC.2.18.11"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>virtual bool <B>isSameKindAs</B>(<!1><A HREF="Object.html#DOC.2.36.1">Object</A>* obj)
<DD><I></I>
<DT>
<A HREF="#DOC.2.18.12"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>virtual const char* <B>className</B>() const
<DD><I></I>
<DT>
<A HREF="#DOC.2.18.13"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>virtual void <B>accept</B>(<!1><A HREF="NodeVisitor.html">NodeVisitor</A>&amp; nv)
<DD><I></I>
<DT>
<A HREF="#DOC.2.18.14"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>virtual void <B>traverse</B>(<!1><A HREF="NodeVisitor.html">NodeVisitor</A>&amp; nv)
<DD><I></I>
<DT>
<A HREF="#DOC.2.18.1"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>virtual bool <B>addChild</B>( <!1><A HREF="Node.html#DOC.2.30.1">Node</A> *child )
<DD><I>Add Node to Group.</I>
<DT>
<A HREF="#DOC.2.18.2"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>virtual bool <B>removeChild</B>( <!1><A HREF="Node.html#DOC.2.30.1">Node</A> *child )
<DD><I>Remove Node from Group.</I>
<DT>
<A HREF="#DOC.2.18.3"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>virtual bool <B>replaceChild</B>( <!1><A HREF="Node.html#DOC.2.30.1">Node</A> *origChild, <!1><A HREF="Node.html#DOC.2.30.1">Node</A>* newChild )
<DD><I>Replace specified Node with another Node.</I>
<DT>
<A HREF="#DOC.2.18.4"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>int <B>getNumChildren</B>( void )
<DD><I>return the number of chilren nodes</I>
<DT>
<A HREF="#DOC.2.18.5"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A><!1><A HREF="Node.html#DOC.2.30.1">Node</A>* <B>getChild</B>( int i )
<DD><I>return child node at position i</I>
<DT>
<A HREF="#DOC.2.18.6"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>bool <B>containsNode</B>( <!1><A HREF="Node.html#DOC.2.30.1">Node</A>* node )
<DD><I>return true is node is contained within Group</I>
<DT>
<A HREF="#DOC.2.18.7"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>ChildList::iterator <B>findNode</B>( <!1><A HREF="Node.html#DOC.2.30.1">Node</A>* node )
<DD><I>return the iterator postion for specified Node.</I>
</DL></P>
<P><DL>
<DT><H3>Public</H3><DD><DT>
<A HREF="#DOC.2.18.8"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>typedef std::vector&lt;<!1><A HREF="ref_ptr.html">ref_ptr</A>&lt;<!1><A HREF="Node.html#DOC.2.30.1">Node</A>&gt; &gt; <B>ChildList</B>
<DD><I></I>
</DL></P>
<P><DL>
<DT><H3>Protected Fields</H3><DD><DT>
<A HREF="#DOC.2.18.18"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A><!1><A HREF="Group.html#DOC.2.18.8">ChildList</A> <B>_children</B>
<DD><I></I>
</DL></P>
<P><DL>
<DT><H3>Protected Methods</H3><DD><DT>
<A HREF="#DOC.2.18.15"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>virtual <B>~Group</B>()
<DD><I></I>
<DT>
<A HREF="#DOC.2.18.16"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>virtual bool <B>readLocalData</B>(<!1><A HREF="Input.html">Input</A>&amp; fr)
<DD><I></I>
<DT>
<A HREF="#DOC.2.18.17"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>virtual bool <B>writeLocalData</B>(<!1><A HREF="Output.html">Output</A>&amp; fw)
<DD><I></I>
<DT>
<A HREF="#DOC.2.18.19"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>bool <B>computeBound</B>( void )
<DD><I></I>
</DL></P>
</DL>
<HR><H3>Inherited from <A HREF="Node.html">Node</A>:</H3>
<DL>
<P><DL>
<DT><H3>Public Methods</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="Node.html#DOC.2.30.1">Node</A>* <B>cloneNode</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual void <B>ascend</B>(<!1><A HREF="NodeVisitor.html">NodeVisitor</A>&amp; nv)
<DT>
<IMG ALT="o" SRC=icon2.gif>void <B>setName</B>( const std::string&amp; name )
<DT>
<IMG ALT="o" SRC=icon2.gif>void <B>setName</B>( const char* name )
<DT>
<IMG ALT="o" SRC=icon2.gif>const std::string&amp; <B>getName</B>( void )
<DT>
<IMG ALT="o" SRC=icon2.gif>const <!1><A HREF="Node.html#DOC.2.30.12">ParentList</A>&amp; <B>getParents</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="Node.html#DOC.2.30.39">Group</A>* <B>getParent</B>(int i) const
<DT>
<IMG ALT="o" SRC=icon2.gif>int <B>getNumParents</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>void <B>setUserData</B>(void* data, <!1><A HREF="MemoryAdapter.html">MemoryAdapter</A>* ma=0L)
<DT>
<IMG ALT="o" SRC=icon2.gif>void* <B>getUserData</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="MemoryAdapter.html">MemoryAdapter</A>* <B>getMemoryAdapter</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>void <B>setNodeMask</B>(<!1><A HREF="Node.html#DOC.2.30.34">NodeMask</A> nm)
<DT>
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="Node.html#DOC.2.30.34">NodeMask</A> <B>getNodeMask</B>()
<DT>
<IMG ALT="o" SRC=icon2.gif>const <!1><A HREF="Node.html#DOC.2.30.21">DescriptionList</A>&amp; <B>getDescriptions</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="Node.html#DOC.2.30.21">DescriptionList</A>&amp; <B>getDescriptions</B>()
<DT>
<IMG ALT="o" SRC=icon2.gif>const std::string&amp; <B>getDescription</B>(int i) const
<DT>
<IMG ALT="o" SRC=icon2.gif>std::string&amp; <B>getDescription</B>(int i)
<DT>
<IMG ALT="o" SRC=icon2.gif>int <B>getNumDescriptions</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>void <B>addDescription</B>(const std::string&amp; desc)
<DT>
<IMG ALT="o" SRC=icon2.gif>const <!1><A HREF="BoundingSphere.html">BoundingSphere</A>&amp; <B>getBound</B>()
<DT>
<IMG ALT="o" SRC=icon2.gif>void <B>dirtyBound</B>()
</DL></P>
<P><DL>
<DT><H3>Public</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>typedef std::vector&lt;<!1><A HREF="Node.html#DOC.2.30.39">Group</A>*&gt; <B>ParentList</B>
<DT>
<IMG ALT="o" SRC=icon2.gif>typedef unsigned int <B>NodeMask</B>
<DT>
<IMG ALT="o" SRC=icon2.gif>typedef std::vector&lt;std::string&gt; <B>DescriptionList</B>
</DL></P>
<P><DL>
<DT><H3>Protected Fields</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="BoundingSphere.html">BoundingSphere</A> <B>_bsphere</B>
<DT>
<IMG ALT="o" SRC=icon2.gif>bool <B>_bsphere_computed</B>
<DT>
<IMG ALT="o" SRC=icon2.gif>std::string <B>_name</B>
<DT>
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="Node.html#DOC.2.30.12">ParentList</A> <B>_parents</B>
<DT>
<IMG ALT="o" SRC=icon2.gif>void* <B>_userData</B>
<DT>
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="ref_ptr.html">ref_ptr</A>&lt;<!1><A HREF="MemoryAdapter.html">MemoryAdapter</A>&gt; <B>_memoryAdapter</B>
<DT>
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="Node.html#DOC.2.30.34">NodeMask</A> <B>_nodeMask</B>
<DT>
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="Node.html#DOC.2.30.21">DescriptionList</A> <B>_descriptions</B>
</DL></P>
</DL>
<HR><H3>Inherited from <A HREF="Object.html">Object</A>:</H3>
<DL>
<P><DL>
<DT><H3>Public Methods</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>virtual <!1><A HREF="Object.html#DOC.2.36.1">Object</A>* <B>readClone</B>(<!1><A HREF="Input.html">Input</A>&amp; fr)
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual bool <B>write</B>(<!1><A HREF="Output.html">Output</A>&amp; fw)
</DL></P>
</DL>
<HR><H3>Inherited from <A HREF="Referenced.html">Referenced</A>:</H3>
<DL>
<P><DL>
<DT><H3>Public Methods</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="Referenced.html#DOC.2.43.4">Referenced</A>&amp; <B>operator = </B>(<!1><A HREF="Referenced.html#DOC.2.43.4">Referenced</A>&amp;)
<DT>
<IMG ALT="o" SRC=icon2.gif>void <B>ref</B>()
<DT>
<IMG ALT="o" SRC=icon2.gif>void <B>unref</B>()
<DT>
<IMG ALT="o" SRC=icon2.gif>int <B>referenceCount</B>()
</DL></P>
<P><DL>
<DT><H3>Protected Fields</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>int <B>_refCount</B>
</DL></P>
</DL>
<A NAME="DOC.DOCU">
<HR>
<H2>Documentation</H2>
<BLOCKQUOTE>General group node which maintains a list of children.
Children are reference counted to allow children to be shared
with memory management handled automatically via osg::Referenced.</BLOCKQUOTE>
<DL>
<A NAME="ChildList">
<A NAME="DOC.2.18.8">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>typedef std::vector&lt;<!1><A HREF="ref_ptr.html">ref_ptr</A>&lt;<!1><A HREF="Node.html#DOC.2.30.1">Node</A>&gt; &gt; ChildList</B></TT>
<DL><DT><DD></DL><P>
<A NAME="Group">
<A NAME="DOC.2.18.9">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> Group()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="clone">
<A NAME="DOC.2.18.10">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual <!1><A HREF="Object.html#DOC.2.36.1">Object</A>* clone() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="isSameKindAs">
<A NAME="DOC.2.18.11">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual bool isSameKindAs(<!1><A HREF="Object.html#DOC.2.36.1">Object</A>* obj)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="className">
<A NAME="DOC.2.18.12">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual const char* className() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="accept">
<A NAME="DOC.2.18.13">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void accept(<!1><A HREF="NodeVisitor.html">NodeVisitor</A>&amp; nv)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="traverse">
<A NAME="DOC.2.18.14">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void traverse(<!1><A HREF="NodeVisitor.html">NodeVisitor</A>&amp; nv)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="addChild">
<A NAME="DOC.2.18.1">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual bool addChild( <!1><A HREF="Node.html#DOC.2.30.1">Node</A> *child )</B></TT>
<DD>Add Node to Group.
If node is not NULL and is not contained in Group then increment its
reference count, add it to the child list and dirty the bounding
sphere to force it to recompute on next getBound() and return true for success.
Otherwise return false.
<DL><DT><DD></DL><P>
<A NAME="removeChild">
<A NAME="DOC.2.18.2">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual bool removeChild( <!1><A HREF="Node.html#DOC.2.30.1">Node</A> *child )</B></TT>
<DD>Remove Node from Group.
If Node is contained in Group then remove it from the child
list, decrement its reference count, and dirty the
bounding sphere to force it to recompute on next getBound() and
return true for success. If Node is not found then return false
and do not change the reference count of the Node.
<DL><DT><DD></DL><P>
<A NAME="replaceChild">
<A NAME="DOC.2.18.3">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual bool replaceChild( <!1><A HREF="Node.html#DOC.2.30.1">Node</A> *origChild, <!1><A HREF="Node.html#DOC.2.30.1">Node</A>* newChild )</B></TT>
<DD>Replace specified Node with another Node.
Decrement the reference count origNode and increments the
reference count of newNode, and dirty the bounding sphere
to force it to recompute on next getBound() and returns true.
If origNode is not found then return false and do not
add newNode. If newNode is NULL then return false and do
not remove origNode.
<DL><DT><DD></DL><P>
<A NAME="getNumChildren">
<A NAME="DOC.2.18.4">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>int getNumChildren( void )</B></TT>
<DD>return the number of chilren nodes
<DL><DT><DD></DL><P>
<A NAME="getChild">
<A NAME="DOC.2.18.5">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Node.html#DOC.2.30.1">Node</A>* getChild( int i )</B></TT>
<DD>return child node at position i
<DL><DT><DD></DL><P>
<A NAME="containsNode">
<A NAME="DOC.2.18.6">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>bool containsNode( <!1><A HREF="Node.html#DOC.2.30.1">Node</A>* node )</B></TT>
<DD>return true is node is contained within Group
<DL><DT><DD></DL><P>
<A NAME="findNode">
<A NAME="DOC.2.18.7">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>ChildList::iterator findNode( <!1><A HREF="Node.html#DOC.2.30.1">Node</A>* node )</B></TT>
<DD>return the iterator postion for specified Node.
return _chilren.end() if node is not contained in Group.
<DL><DT><DD></DL><P>
<A NAME="~Group">
<A NAME="DOC.2.18.15">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual ~Group()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="readLocalData">
<A NAME="DOC.2.18.16">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual bool readLocalData(<!1><A HREF="Input.html">Input</A>&amp; fr)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="writeLocalData">
<A NAME="DOC.2.18.17">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual bool writeLocalData(<!1><A HREF="Output.html">Output</A>&amp; fw)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_children">
<A NAME="DOC.2.18.18">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Group.html#DOC.2.18.8">ChildList</A> _children</B></TT>
<DL><DT><DD></DL><P>
<A NAME="computeBound">
<A NAME="DOC.2.18.19">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>bool computeBound( void )</B></TT>
<DL><DT><DD></DL><P></DL>
<HR>
<DL><DT><B>Direct child classes:
</B><DD><A HREF="Switch.html">Switch</A><BR>
<A HREF="Sequence.html">Sequence</A><BR>
<A HREF="Scene.html">Scene</A><BR>
<A HREF="LOD.html">LOD</A><BR>
<A HREF="DCS.html">DCS</A><BR>
</DL>
<DL><DT><DD></DL><P><I><A HREF="index.html">Alphabetic index</A></I> <I><A HREF="HIER.html">HTML hierarchy of classes</A> or <A HREF="HIERjava.html">Java</A></I><P><HR>
<BR>
This page was generated with the help of <A HREF="http://www.linuxsupportline.com/~doc++">DOC++</A>.
</BODY>