OpenSceneGraph/doc/doc++/osg/LOD.html

567 lines
28 KiB
HTML
Raw Normal View History

2003-04-18 00:22:51 +08:00
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>class SG_EXPORT osg::LOD</TITLE>
2004-08-06 14:53:36 +08:00
<META NAME="GENERATOR" CONTENT="DOC++ 3.4.6">
2003-04-18 00:22:51 +08:00
</HEAD>
<BODY BGCOLOR="#ffffff">
<H2>class SG_EXPORT <A HREF="#DOC.DOCU">osg::LOD</A></H2></H2><BLOCKQUOTE>LOD - Level Of Detail group node which allows switching between children depending on distance from eye point.</BLOCKQUOTE>
<HR>
<H2>Inheritance:</H2>
2003-07-23 19:27:31 +08:00
<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=215>
<param name=classes value="CReferenced,MReferenced.html,CObject,MObject.html,CNode,MNode.html,CGroup,MGroup.html,CLOD,MLOD.html,CPagedLOD,MPagedLOD.html,CImpostor,MImpostor.html">
<param name=before value="M,M,M,M,M,M|_,Mr_">
<param name=after value="Md_SPSPSP,Md_SPSP,Md_SP,Md_,M,M,M">
<param name=indent value="0,1,2,3,4,4,4">
2003-04-18 00:22:51 +08:00
<param name=arrowdir value="down">
</APPLET>
<HR>
<DL>
2004-08-06 14:53:36 +08:00
<P><DL>
<DT><H3>Public Classes</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>enum <B><A HREF="#DOC.2.132.10">CenterMode</A></B>
<DD><I>Modes which control how the center of object should be determined when computed which child is active</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>enum <B><A HREF="#DOC.2.132.17">RangeMode</A></B>
<DD><I>Modes that control how the range values should be intepreted when computing which child is active</I>
</DL></P>
2003-04-18 00:22:51 +08:00
<P><DL>
<DT><H3>Public Methods</H3><DD><DT>
2004-08-06 14:53:36 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.132.1">LOD</A></B>()
2003-04-18 00:22:51 +08:00
<DT>
2004-08-06 14:53:36 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.132.2">LOD</A></B>(const <!1><A HREF="LOD.html#DOC.2.132.2">LOD</A>&amp;, const <!1><A HREF="CopyOp.html">CopyOp</A>&amp; copyop=CopyOp::SHALLOW_COPY)
2003-04-18 00:22:51 +08:00
<DD><I>Copy constructor using CopyOp to manage deep vs shallow copy</I>
<DT>
2004-08-06 14:53:36 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.132.3">META_Node</A></B>(<!1><A HREF="osg.html">osg</A>, <!1><A HREF="LOD.html">LOD</A>)
2003-04-18 00:22:51 +08:00
<DT>
2004-08-06 14:53:36 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.2.132.4">traverse</A></B>(<!1><A HREF="NodeVisitor.html">NodeVisitor</A>&amp; nv)
2003-04-18 00:22:51 +08:00
<DT>
2004-08-06 14:53:36 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual bool <B><A HREF="#DOC.2.132.5">addChild</A></B>(<!1><A HREF="Node.html">Node</A>* child)
2003-04-18 00:22:51 +08:00
<DT>
2004-08-06 14:53:36 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual bool <B><A HREF="#DOC.2.132.6">addChild</A></B>(<!1><A HREF="Node.html">Node</A>* child, float min, float max)
2003-04-18 00:22:51 +08:00
<DT>
2004-08-06 14:53:36 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual bool <B><A HREF="#DOC.2.132.7">removeChild</A></B>(<!1><A HREF="Node.html">Node</A>* child)
2003-04-18 00:22:51 +08:00
<DT>
2004-08-06 14:53:36 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.132.11">setCenterMode</A></B>(<!1><A HREF="LOD.html#DOC.2.132.10">CenterMode</A> mode)
<DD><I>Set how the center of object should be determined when computed which child is active</I>
2003-04-18 00:22:51 +08:00
<DT>
2004-08-06 14:53:36 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="LOD.html#DOC.2.132.10">CenterMode</A> <B><A HREF="#DOC.2.132.12">getCenterMode</A></B>() const
<DD><I>Get how the center of object should be determined when computed which child is active</I>
2003-04-18 00:22:51 +08:00
<DT>
2004-08-06 14:53:36 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.132.13">setCenter</A></B>(const <!1><A HREF="osg.html#DOC.2.262">Vec3</A>&amp; <!1><A HREF="BoundingSphere.html#DOC.2.47.8">center</A>)
2003-04-18 00:22:51 +08:00
<DD><I>Sets the object-space point which defines the center of the osg::LOD.</I>
<DT>
2004-08-06 14:53:36 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const <!1><A HREF="osg.html#DOC.2.262">Vec3</A>&amp; <B><A HREF="#DOC.2.132.14">getCenter</A></B>() const
2003-04-18 00:22:51 +08:00
<DD><I>return the LOD center point.</I>
<DT>
2004-08-06 14:53:36 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.132.15">setRadius</A></B>(float <!1><A HREF="BoundingSphere.html#DOC.2.47.10">radius</A>)
<DD><I>Set the object-space reference radius of the volume enclosed by the LOD.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline float <B><A HREF="#DOC.2.132.16">getRadius</A></B>() const
<DD><I>Get the object-space radius of the volume enclosed by the LOD</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.132.18">setRangeMode</A></B>(<!1><A HREF="LOD.html#DOC.2.132.17">RangeMode</A> mode)
<DD><I>Set how the range values should be intepreted when computing which child is active</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="LOD.html#DOC.2.132.17">RangeMode</A> <B><A HREF="#DOC.2.132.19">getRangeMode</A></B>() const
<DD><I>Get how the range values should be intepreted when computing which child is active</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.132.20">setRange</A></B>(unsigned int childNo, float min, float max)
2003-04-18 00:22:51 +08:00
<DD><I>Sets the min and max visible ranges of range of specifiec child.</I>
<DT>
2004-08-06 14:53:36 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline float <B><A HREF="#DOC.2.132.21">getMinRange</A></B>(unsigned int childNo) const
2003-04-18 00:22:51 +08:00
<DD><I>returns the min visible range for specified child</I>
<DT>
2004-08-06 14:53:36 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline float <B><A HREF="#DOC.2.132.22">getMaxRange</A></B>(unsigned int childNo) const
2003-04-18 00:22:51 +08:00
<DD><I>returns the max visible range for specified child</I>
<DT>
2004-08-06 14:53:36 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline unsigned int <B><A HREF="#DOC.2.132.23">getNumRanges</A></B>() const
2003-04-18 00:22:51 +08:00
<DD><I>returns the number of ranges currently set.</I>
<DT>
2004-08-06 14:53:36 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const <!1><A HREF="LOD.html#DOC.2.132.9">RangeList</A>&amp; <B><A HREF="#DOC.2.132.24">getRangeList</A></B>() const
2003-04-18 00:22:51 +08:00
<DD><I>return the list of MinMax ranges for each child</I>
</DL></P>
<P><DL>
2004-08-06 14:53:36 +08:00
<DT><H3>Public</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>typedef std::pair&lt;float,float&gt; <B><A HREF="#DOC.2.132.8">MinMaxPair</A></B>
2003-04-18 00:22:51 +08:00
<DT>
2004-08-06 14:53:36 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>typedef std::vector&lt;<!1><A HREF="LOD.html#DOC.2.132.8">MinMaxPair</A>&gt; <B><A HREF="#DOC.2.132.9">RangeList</A></B>
2003-04-18 00:22:51 +08:00
</DL></P>
<P><DL>
<DT><H3>Protected Fields</H3><DD><DT>
2004-08-06 14:53:36 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="LOD.html#DOC.2.132.10">CenterMode</A> <B><A HREF="#DOC.2.132.31">_centerMode</A></B>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="osg.html#DOC.2.262">Vec3</A> <B><A HREF="#DOC.2.132.32">_userDefinedCenter</A></B>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>float <B><A HREF="#DOC.2.132.33">_radius</A></B>
2003-04-18 00:22:51 +08:00
<DT>
2004-08-06 14:53:36 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="LOD.html#DOC.2.132.17">RangeMode</A> <B><A HREF="#DOC.2.132.34">_rangeMode</A></B>
2003-04-18 00:22:51 +08:00
<DT>
2004-08-06 14:53:36 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="LOD.html#DOC.2.132.9">RangeList</A> <B><A HREF="#DOC.2.132.35">_rangeList</A></B>
2003-04-18 00:22:51 +08:00
</DL></P>
<P><DL>
<DT><H3>Protected Methods</H3><DD><DT>
2004-08-06 14:53:36 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual <B><A HREF="#DOC.2.132.25">~LOD</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual bool <B><A HREF="#DOC.2.132.26">computeBound</A></B>() const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.2.132.27">childRemoved</A></B>(unsigned int pos, unsigned int numChildrenToRemove)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.2.132.28">childInserted</A></B>(unsigned int pos)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.2.132.29">rangeRemoved</A></B>(unsigned int , unsigned int )
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.2.132.30">rangeInserted</A></B>(unsigned int )
2003-04-18 00:22:51 +08:00
</DL></P>
</DL>
<HR><H3>Inherited from <A HREF="Group.html">Group</A>:</H3>
<DL>
<P><DL>
<DT><H3>Public Methods</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>virtual <!1><A HREF="Group.html">Group</A>* <B>asGroup</B>()
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual const <!1><A HREF="Group.html">Group</A>* <B>asGroup</B>() const
<DT>
2004-08-06 14:53:36 +08:00
<IMG ALT="o" SRC=icon2.gif>virtual bool <B>insertChild</B>( unsigned int <!1><A HREF="TemplateIndexArray.html#DOC.2.18.17">index</A>, <!1><A HREF="Node.html">Node</A>* child )
2003-07-23 19:27:31 +08:00
<DT>
2003-04-18 00:22:51 +08:00
<IMG ALT="o" SRC=icon2.gif>virtual bool <B>replaceChild</B>( <!1><A HREF="Node.html">Node</A>* origChild, <!1><A HREF="Node.html">Node</A>* newChild )
<DT>
<IMG ALT="o" SRC=icon2.gif>inline unsigned int <B>getNumChildren</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual bool <B>setChild</B>( unsigned int i, <!1><A HREF="Node.html">Node</A>* node )
<DT>
<IMG ALT="o" SRC=icon2.gif>inline <!1><A HREF="Node.html">Node</A>* <B>getChild</B>( unsigned int i )
<DT>
<IMG ALT="o" SRC=icon2.gif>inline const <!1><A HREF="Node.html">Node</A>* <B>getChild</B>( unsigned int i ) const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline bool <B>containsNode</B>( const <!1><A HREF="Node.html">Node</A>* node ) const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline unsigned int <B>getChildIndex</B>( const <!1><A HREF="Node.html">Node</A>* node ) const
</DL></P>
<P><DL>
<DT><H3>Protected Fields</H3><DD><DT>
2004-08-06 14:53:36 +08:00
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="osg.html#DOC.2.117">NodeList</A> <B>_children</B>
2003-04-18 00:22:51 +08:00
</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>virtual <!1><A HREF="Object.html">Object</A>* <B>cloneType</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual <!1><A HREF="Object.html">Object</A>* <B>clone</B>(const <!1><A HREF="CopyOp.html">CopyOp</A>&amp; copyop) const
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual bool <B>isSameKindAs</B>(const <!1><A HREF="Object.html">Object</A>* obj) const
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual const char* <B>libraryName</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual const char* <B>className</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual <!1><A HREF="Transform.html">Transform</A>* <B>asTransform</B>()
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual const <!1><A HREF="Transform.html">Transform</A>* <B>asTransform</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual void <B>accept</B>(<!1><A HREF="NodeVisitor.html">NodeVisitor</A>&amp; nv)
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual void <B>ascend</B>(<!1><A HREF="NodeVisitor.html">NodeVisitor</A>&amp; nv)
<DT>
2004-08-06 14:53:36 +08:00
<IMG ALT="o" SRC=icon2.gif>inline void <B>setName</B>( const std::string&amp; <!1><A HREF="Test.html#DOC.246.1.3">name</A> )
2003-04-18 00:22:51 +08:00
<DT>
2004-08-06 14:53:36 +08:00
<IMG ALT="o" SRC=icon2.gif>inline void <B>setName</B>( const char* <!1><A HREF="Test.html#DOC.246.1.3">name</A> )
2003-04-18 00:22:51 +08:00
<DT>
<IMG ALT="o" SRC=icon2.gif>inline const std::string&amp; <B>getName</B>() const
<DT>
2004-08-06 14:53:36 +08:00
<IMG ALT="o" SRC=icon2.gif>inline const <!1><A HREF="Node.html#DOC.2.155.18">ParentList</A>&amp; <B>getParents</B>() const
2003-04-18 00:22:51 +08:00
<DT>
2004-08-06 14:53:36 +08:00
<IMG ALT="o" SRC=icon2.gif>inline <!1><A HREF="Node.html#DOC.2.155.18">ParentList</A> <B>getParents</B>()
2003-04-18 00:22:51 +08:00
<DT>
<IMG ALT="o" SRC=icon2.gif>inline <!1><A HREF="Group.html">Group</A>* <B>getParent</B>(unsigned int i)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline const <!1><A HREF="Group.html">Group</A>* <B>getParent</B>(unsigned int i) const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline unsigned int <B>getNumParents</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>void <B>setUpdateCallback</B>(<!1><A HREF="NodeCallback.html">NodeCallback</A>* nc)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline <!1><A HREF="NodeCallback.html">NodeCallback</A>* <B>getUpdateCallback</B>()
<DT>
<IMG ALT="o" SRC=icon2.gif>inline const <!1><A HREF="NodeCallback.html">NodeCallback</A>* <B>getUpdateCallback</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline unsigned int <B>getNumChildrenRequiringUpdateTraversal</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>void <B>setCullCallback</B>(<!1><A HREF="NodeCallback.html">NodeCallback</A>* nc)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline <!1><A HREF="NodeCallback.html">NodeCallback</A>* <B>getCullCallback</B>()
<DT>
<IMG ALT="o" SRC=icon2.gif>inline const <!1><A HREF="NodeCallback.html">NodeCallback</A>* <B>getCullCallback</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>void <B>setCullingActive</B>(bool active)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline bool <B>getCullingActive</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline unsigned int <B>getNumChildrenWithCullingDisabled</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline bool <B>isCullingActive</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline unsigned int <B>getNumChildrenWithOccluderNodes</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>bool <B>containsOccluderNodes</B>() const
<DT>
2004-08-06 14:53:36 +08:00
<IMG ALT="o" SRC=icon2.gif>inline void <B>setNodeMask</B>(<!1><A HREF="Node.html#DOC.2.155.37">NodeMask</A> nm)
2003-04-18 00:22:51 +08:00
<DT>
2004-08-06 14:53:36 +08:00
<IMG ALT="o" SRC=icon2.gif>inline <!1><A HREF="Node.html#DOC.2.155.37">NodeMask</A> <B>getNodeMask</B>() const
2003-04-18 00:22:51 +08:00
<DT>
2004-08-06 14:53:36 +08:00
<IMG ALT="o" SRC=icon2.gif>inline const <!1><A HREF="Node.html#DOC.2.155.40">DescriptionList</A>&amp; <B>getDescriptions</B>() const
2003-04-18 00:22:51 +08:00
<DT>
2004-08-06 14:53:36 +08:00
<IMG ALT="o" SRC=icon2.gif>inline <!1><A HREF="Node.html#DOC.2.155.40">DescriptionList</A>&amp; <B>getDescriptions</B>()
2003-04-18 00:22:51 +08:00
<DT>
<IMG ALT="o" SRC=icon2.gif>inline const std::string&amp; <B>getDescription</B>(unsigned int i) const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline std::string&amp; <B>getDescription</B>(unsigned int i)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline unsigned 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>inline void <B>setStateSet</B>(<!1><A HREF="StateSet.html">osg::StateSet</A>* dstate)
<DT>
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="StateSet.html">osg::StateSet</A>* <B>getOrCreateStateSet</B>()
<DT>
<IMG ALT="o" SRC=icon2.gif>inline <!1><A HREF="StateSet.html">osg::StateSet</A>* <B>getStateSet</B>()
<DT>
<IMG ALT="o" SRC=icon2.gif>inline const <!1><A HREF="StateSet.html">osg::StateSet</A>* <B>getStateSet</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline const <!1><A HREF="BoundingSphere.html">BoundingSphere</A>&amp; <B>getBound</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>void <B>dirtyBound</B>()
</DL></P>
<P><DL>
2004-08-06 14:53:36 +08:00
<DT><H3>Public</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>typedef std::vector&lt;<!1><A HREF="Group.html">Group</A>*&gt; <B>ParentList</B>
2003-04-18 00:22:51 +08:00
<DT>
<IMG ALT="o" SRC=icon2.gif>typedef unsigned int <B>NodeMask</B>
<DT>
2004-08-06 14:53:36 +08:00
<IMG ALT="o" SRC=icon2.gif>typedef std::vector&lt;std::string&gt; <B>DescriptionList</B>
2003-04-18 00:22:51 +08:00
</DL></P>
<P><DL>
<DT><H3>Protected Fields</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>mutable <!1><A HREF="BoundingSphere.html">BoundingSphere</A> <B>_bsphere</B>
<DT>
<IMG ALT="o" SRC=icon2.gif>mutable bool <B>_bsphere_computed</B>
<DT>
<IMG ALT="o" SRC=icon2.gif>std::string <B>_name</B>
<DT>
2004-08-06 14:53:36 +08:00
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="Node.html#DOC.2.155.18">ParentList</A> <B>_parents</B>
2003-04-18 00:22:51 +08:00
<DT>
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="ref_ptr.html">ref_ptr</A>&lt;<!1><A HREF="NodeCallback.html">NodeCallback</A>&gt; <B>_updateCallback</B>
<DT>
<IMG ALT="o" SRC=icon2.gif>unsigned int <B>_numChildrenRequiringUpdateTraversal</B>
<DT>
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="ref_ptr.html">ref_ptr</A>&lt;<!1><A HREF="NodeCallback.html">NodeCallback</A>&gt; <B>_cullCallback</B>
<DT>
<IMG ALT="o" SRC=icon2.gif>bool <B>_cullingActive</B>
<DT>
<IMG ALT="o" SRC=icon2.gif>unsigned int <B>_numChildrenWithCullingDisabled</B>
<DT>
<IMG ALT="o" SRC=icon2.gif>unsigned int <B>_numChildrenWithOccluderNodes</B>
<DT>
2004-08-06 14:53:36 +08:00
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="Node.html#DOC.2.155.37">NodeMask</A> <B>_nodeMask</B>
2003-04-18 00:22:51 +08:00
<DT>
2004-08-06 14:53:36 +08:00
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="Node.html#DOC.2.155.40">DescriptionList</A> <B>_descriptions</B>
2003-04-18 00:22:51 +08:00
<DT>
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="ref_ptr.html">ref_ptr</A>&lt;<!1><A HREF="StateSet.html">StateSet</A>&gt; <B>_stateset</B>
</DL></P>
<P><DL>
<DT><H3>Protected Methods</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>void <B>addParent</B>(<!1><A HREF="Group.html">osg::Group</A>* node)
<DT>
<IMG ALT="o" SRC=icon2.gif>void <B>removeParent</B>(<!1><A HREF="Group.html">osg::Group</A>* node)
<DT>
<IMG ALT="o" SRC=icon2.gif>void <B>setNumChildrenRequiringUpdateTraversal</B>(unsigned int num)
<DT>
<IMG ALT="o" SRC=icon2.gif>void <B>setNumChildrenWithCullingDisabled</B>(unsigned int num)
<DT>
<IMG ALT="o" SRC=icon2.gif>void <B>setNumChildrenWithOccluderNodes</B>(unsigned int num)
</DL></P>
</DL>
<HR><H3>Inherited from <A HREF="Object.html">Object</A>:</H3>
<DL>
2004-08-06 14:53:36 +08:00
<P><DL>
<DT><H3>Public Classes</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>enum <B>DataVariance</B>
</DL></P>
2003-04-18 00:22:51 +08:00
<P><DL>
<DT><H3>Public Methods</H3><DD><DT>
2004-08-06 14:53:36 +08:00
<IMG ALT="o" SRC=icon2.gif>inline void <B>setDataVariance</B>(<!1><A HREF="Object.html#DOC.2.167.8">DataVariance</A> dv)
2003-04-18 00:22:51 +08:00
<DT>
2004-08-06 14:53:36 +08:00
<IMG ALT="o" SRC=icon2.gif>inline <!1><A HREF="Object.html#DOC.2.167.8">DataVariance</A> <B>getDataVariance</B>() const
2003-04-18 00:22:51 +08:00
<DT>
<IMG ALT="o" SRC=icon2.gif>inline void <B>setUserData</B>(<!1><A HREF="Referenced.html">Referenced</A>* obj)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline <!1><A HREF="Referenced.html">Referenced</A>* <B>getUserData</B>()
<DT>
<IMG ALT="o" SRC=icon2.gif>inline const <!1><A HREF="Referenced.html">Referenced</A>* <B>getUserData</B>() const
</DL></P>
<P><DL>
<DT><H3>Protected Fields</H3><DD><DT>
2004-08-06 14:53:36 +08:00
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="Object.html#DOC.2.167.8">DataVariance</A> <B>_dataVariance</B>
2003-04-18 00:22:51 +08:00
<DT>
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="ref_ptr.html">ref_ptr</A>&lt;<!1><A HREF="Referenced.html">Referenced</A>&gt; <B>_userData</B>
</DL></P>
</DL>
<HR><H3>Inherited from <A HREF="Referenced.html">Referenced</A>:</H3>
<DL>
<P><DL>
<DT><H3>Public Methods</H3><DD><DT>
2004-08-06 14:53:36 +08:00
<IMG ALT="o" SRC=icon2.gif>inline <!1><A HREF="Referenced.html">Referenced</A>&amp; <B>operator = </B>(const <!1><A HREF="Referenced.html">Referenced</A>&amp;)
2003-04-18 00:22:51 +08:00
<DT>
<IMG ALT="o" SRC=icon2.gif>static void <B>setDeleteHandler</B>(<!1><A HREF="DeleteHandler.html">DeleteHandler</A>* handler)
<DT>
<IMG ALT="o" SRC=icon2.gif>static <!1><A HREF="DeleteHandler.html">DeleteHandler</A>* <B>getDeleteHandler</B>()
<DT>
<IMG ALT="o" SRC=icon2.gif>inline void <B>ref</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline void <B>unref_nodelete</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline int <B>referenceCount</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline void <B>unref</B>() const
</DL></P>
<P><DL>
<DT><H3>Protected Fields</H3><DD><DT>
2004-08-06 14:53:36 +08:00
<IMG ALT="o" SRC=icon2.gif>mutable OpenThreads::Mutex <B>_refMutex</B>
<DT>
2003-04-18 00:22:51 +08:00
<IMG ALT="o" SRC=icon2.gif>mutable int <B>_refCount</B>
</DL></P>
</DL>
<A NAME="DOC.DOCU"></A>
<HR>
<H2>Documentation</H2>
<BLOCKQUOTE>LOD - Level Of Detail group node which allows switching between children
depending on distance from eye point.
Typical uses are for load balancing - objects further away from
the eye point are rendered at a lower level of detail, and at times
of high stress on the graphics pipeline lower levels of detail can
also be chosen.
The children are ordered from most detailed (for close up views) to the least
(see from a distance), and a set of ranges are used to decide which LOD is used
at different view distances, the criteria used is child 'i' is used when
range[i]<dist<range[i+1] is true. This requires there to be n+1 range values where the number of
children is n, since no maximum distance of infinity is assumed. If the number of range values (m)
is insufficient then the children m through to n will be ignored, only 0..m-1 will be used
during rendering.</BLOCKQUOTE>
<DL>
<A NAME="LOD"></A>
2004-08-06 14:53:36 +08:00
<A NAME="DOC.2.132.1"></A>
2003-04-18 00:22:51 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> LOD()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="LOD"></A>
2004-08-06 14:53:36 +08:00
<A NAME="DOC.2.132.2"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> LOD(const <!1><A HREF="LOD.html#DOC.2.132.2">LOD</A>&amp;, const <!1><A HREF="CopyOp.html">CopyOp</A>&amp; copyop=CopyOp::SHALLOW_COPY)</B></TT>
2003-04-18 00:22:51 +08:00
<DD>Copy constructor using CopyOp to manage deep vs shallow copy
<DL><DT><DD></DL><P>
<A NAME="META_Node"></A>
2004-08-06 14:53:36 +08:00
<A NAME="DOC.2.132.3"></A>
2003-04-18 00:22:51 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> META_Node(<!1><A HREF="osg.html">osg</A>, <!1><A HREF="LOD.html">LOD</A>)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="traverse"></A>
2004-08-06 14:53:36 +08:00
<A NAME="DOC.2.132.4"></A>
2003-04-18 00:22:51 +08:00
<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>
2004-08-06 14:53:36 +08:00
<A NAME="DOC.2.132.5"></A>
2003-04-18 00:22:51 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual bool addChild(<!1><A HREF="Node.html">Node</A>* child)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="addChild"></A>
2004-08-06 14:53:36 +08:00
<A NAME="DOC.2.132.6"></A>
2003-04-18 00:22:51 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual bool addChild(<!1><A HREF="Node.html">Node</A>* child, float min, float max)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="removeChild"></A>
2004-08-06 14:53:36 +08:00
<A NAME="DOC.2.132.7"></A>
2003-04-18 00:22:51 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual bool removeChild(<!1><A HREF="Node.html">Node</A>* child)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="MinMaxPair"></A>
2004-08-06 14:53:36 +08:00
<A NAME="DOC.2.132.8"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>typedef std::pair&lt;float,float&gt; MinMaxPair</B></TT>
2003-04-18 00:22:51 +08:00
<DL><DT><DD></DL><P>
<A NAME="RangeList"></A>
2004-08-06 14:53:36 +08:00
<A NAME="DOC.2.132.9"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>typedef std::vector&lt;<!1><A HREF="LOD.html#DOC.2.132.8">MinMaxPair</A>&gt; RangeList</B></TT>
2003-04-18 00:22:51 +08:00
<DL><DT><DD></DL><P>
<A NAME="CenterMode"></A>
2004-08-06 14:53:36 +08:00
<A NAME="DOC.2.132.10"></A>
2003-04-18 00:22:51 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>enum CenterMode</B></TT>
2004-08-06 14:53:36 +08:00
<DD>Modes which control how the center of object should be determined when computed which child is active
2003-04-18 00:22:51 +08:00
<DL><DT><DD></DL><P><DL>
<A NAME="USE_BOUNDING_SPHERE_CENTER"></A>
2004-08-06 14:53:36 +08:00
<A NAME="DOC.2.132.10.1"></A>
2003-04-18 00:22:51 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> USE_BOUNDING_SPHERE_CENTER</B></TT>
<DL><DT><DD></DL><P>
<A NAME="USER_DEFINED_CENTER"></A>
2004-08-06 14:53:36 +08:00
<A NAME="DOC.2.132.10.2"></A>
2003-04-18 00:22:51 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> USER_DEFINED_CENTER</B></TT>
<DL><DT><DD></DL><P></DL>
<A NAME="setCenterMode"></A>
2004-08-06 14:53:36 +08:00
<A NAME="DOC.2.132.11"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void setCenterMode(<!1><A HREF="LOD.html#DOC.2.132.10">CenterMode</A> mode)</B></TT>
<DD>Set how the center of object should be determined when computed which child is active
2003-04-18 00:22:51 +08:00
<DL><DT><DD></DL><P>
<A NAME="getCenterMode"></A>
2004-08-06 14:53:36 +08:00
<A NAME="DOC.2.132.12"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="LOD.html#DOC.2.132.10">CenterMode</A> getCenterMode() const </B></TT>
<DD>Get how the center of object should be determined when computed which child is active
2003-04-18 00:22:51 +08:00
<DL><DT><DD></DL><P>
<A NAME="setCenter"></A>
2004-08-06 14:53:36 +08:00
<A NAME="DOC.2.132.13"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setCenter(const <!1><A HREF="osg.html#DOC.2.262">Vec3</A>&amp; <!1><A HREF="BoundingSphere.html#DOC.2.47.8">center</A>)</B></TT>
2003-04-18 00:22:51 +08:00
<DD>Sets the object-space point which defines the center of the osg::LOD.
center is affected by any transforms in the hierarchy above the osg::LOD.
<DL><DT><DD></DL><P>
<A NAME="getCenter"></A>
2004-08-06 14:53:36 +08:00
<A NAME="DOC.2.132.14"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const <!1><A HREF="osg.html#DOC.2.262">Vec3</A>&amp; getCenter() const </B></TT>
2003-04-18 00:22:51 +08:00
<DD>return the LOD center point.
<DL><DT><DD></DL><P>
2004-08-06 14:53:36 +08:00
<A NAME="setRadius"></A>
<A NAME="DOC.2.132.15"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setRadius(float <!1><A HREF="BoundingSphere.html#DOC.2.47.10">radius</A>)</B></TT>
<DD>Set the object-space reference radius of the volume enclosed by the LOD.
Used to detmine the bounding sphere of the LOD in the absense of any children.
<DL><DT><DD></DL><P>
<A NAME="getRadius"></A>
<A NAME="DOC.2.132.16"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline float getRadius() const </B></TT>
<DD>Get the object-space radius of the volume enclosed by the LOD
<DL><DT><DD></DL><P>
<A NAME="RangeMode"></A>
<A NAME="DOC.2.132.17"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>enum RangeMode</B></TT>
<DD>Modes that control how the range values should be intepreted when computing which child is active
<DL><DT><DD></DL><P><DL>
<A NAME="DISTANCE_FROM_EYE_POINT"></A>
<A NAME="DOC.2.132.17.1"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> DISTANCE_FROM_EYE_POINT</B></TT>
<DL><DT><DD></DL><P>
<A NAME="PIXEL_SIZE_ON_SCREEN"></A>
<A NAME="DOC.2.132.17.2"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> PIXEL_SIZE_ON_SCREEN</B></TT>
<DL><DT><DD></DL><P></DL>
<A NAME="setRangeMode"></A>
<A NAME="DOC.2.132.18"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void setRangeMode(<!1><A HREF="LOD.html#DOC.2.132.17">RangeMode</A> mode)</B></TT>
<DD>Set how the range values should be intepreted when computing which child is active
<DL><DT><DD></DL><P>
<A NAME="getRangeMode"></A>
<A NAME="DOC.2.132.19"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="LOD.html#DOC.2.132.17">RangeMode</A> getRangeMode() const </B></TT>
<DD>Get how the range values should be intepreted when computing which child is active
<DL><DT><DD></DL><P>
2003-04-18 00:22:51 +08:00
<A NAME="setRange"></A>
2004-08-06 14:53:36 +08:00
<A NAME="DOC.2.132.20"></A>
2003-04-18 00:22:51 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void setRange(unsigned int childNo, float min, float max)</B></TT>
<DD>Sets the min and max visible ranges of range of specifiec child.
Values are floating point distance specified in local objects coordinates.
<DL><DT><DD></DL><P>
<A NAME="getMinRange"></A>
2004-08-06 14:53:36 +08:00
<A NAME="DOC.2.132.21"></A>
2003-04-18 00:22:51 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline float getMinRange(unsigned int childNo) const </B></TT>
<DD>returns the min visible range for specified child
<DL><DT><DD></DL><P>
<A NAME="getMaxRange"></A>
2004-08-06 14:53:36 +08:00
<A NAME="DOC.2.132.22"></A>
2003-04-18 00:22:51 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline float getMaxRange(unsigned int childNo) const </B></TT>
<DD>returns the max visible range for specified child
<DL><DT><DD></DL><P>
<A NAME="getNumRanges"></A>
2004-08-06 14:53:36 +08:00
<A NAME="DOC.2.132.23"></A>
2003-04-18 00:22:51 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline unsigned int getNumRanges() const </B></TT>
<DD>returns the number of ranges currently set.
An LOD which has been fully set up will have getNumChildren()==getNumRanges().
<DL><DT><DD></DL><P>
<A NAME="getRangeList"></A>
2004-08-06 14:53:36 +08:00
<A NAME="DOC.2.132.24"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const <!1><A HREF="LOD.html#DOC.2.132.9">RangeList</A>&amp; getRangeList() const </B></TT>
2003-04-18 00:22:51 +08:00
<DD>return the list of MinMax ranges for each child
<DL><DT><DD></DL><P>
<A NAME="~LOD"></A>
2004-08-06 14:53:36 +08:00
<A NAME="DOC.2.132.25"></A>
2003-04-18 00:22:51 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual ~LOD()</B></TT>
<DL><DT><DD></DL><P>
2004-08-06 14:53:36 +08:00
<A NAME="computeBound"></A>
<A NAME="DOC.2.132.26"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual bool computeBound() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="childRemoved"></A>
<A NAME="DOC.2.132.27"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void childRemoved(unsigned int pos, unsigned int numChildrenToRemove)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="childInserted"></A>
<A NAME="DOC.2.132.28"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void childInserted(unsigned int pos)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="rangeRemoved"></A>
<A NAME="DOC.2.132.29"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void rangeRemoved(unsigned int , unsigned int )</B></TT>
<DL><DT><DD></DL><P>
<A NAME="rangeInserted"></A>
<A NAME="DOC.2.132.30"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void rangeInserted(unsigned int )</B></TT>
<DL><DT><DD></DL><P>
2003-04-18 00:22:51 +08:00
<A NAME="_centerMode"></A>
2004-08-06 14:53:36 +08:00
<A NAME="DOC.2.132.31"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="LOD.html#DOC.2.132.10">CenterMode</A> _centerMode</B></TT>
2003-04-18 00:22:51 +08:00
<DL><DT><DD></DL><P>
<A NAME="_userDefinedCenter"></A>
2004-08-06 14:53:36 +08:00
<A NAME="DOC.2.132.32"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="osg.html#DOC.2.262">Vec3</A> _userDefinedCenter</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_radius"></A>
<A NAME="DOC.2.132.33"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>float _radius</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_rangeMode"></A>
<A NAME="DOC.2.132.34"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="LOD.html#DOC.2.132.17">RangeMode</A> _rangeMode</B></TT>
2003-04-18 00:22:51 +08:00
<DL><DT><DD></DL><P>
<A NAME="_rangeList"></A>
2004-08-06 14:53:36 +08:00
<A NAME="DOC.2.132.35"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="LOD.html#DOC.2.132.9">RangeList</A> _rangeList</B></TT>
2003-04-18 00:22:51 +08:00
<DL><DT><DD></DL><P></DL>
<HR>
<DL><DT><B>Direct child classes:
2003-07-23 19:27:31 +08:00
</B><DD><A HREF="PagedLOD.html">PagedLOD</A><BR>
<A HREF="Impostor.html">Impostor</A><BR>
2003-04-18 00:22:51 +08:00
</DL>
<DL><DT><DD></DL><P><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>
2004-08-06 14:53:36 +08:00
This page was generated with the help of <A HREF="http://www.linuxsupportline.com/~doc++">DOC++</A>.
2003-04-18 00:22:51 +08:00
</BODY>
</HTML>