Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > 807a538c0f4abf81467b8a86879881d9 > files > 905

OpenSceneGraph-devel-2.8.4-2.fc14.i686.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>OpenSceneGraph: osgSim::Impostor Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.4 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">OpenSceneGraph&#160;<span id="projectnumber">2.8.4</span></div>
  </td>
 </tr>
 </tbody>
</table>
</div>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="dirs.html"><span>Directories</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="a01637.html">osgSim</a>      </li>
      <li class="navelem"><a class="el" href="a00363.html">Impostor</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a>  </div>
  <div class="headertitle">
<div class="title">osgSim::Impostor Class Reference</div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="osgSim::Impostor" --><!-- doxytag: inherits="osg::LOD" -->
<p><a class="el" href="a00363.html" title="Impostor - is a form of Level Of Detail group node which allows both switching between children depen...">Impostor</a> - is a form of Level Of Detail group node which allows both switching between children depending on distance from eye point and image caching.  
 <a href="a00363.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for osgSim::Impostor:</div>
<div class="dyncontent">
<div class="center"><img src="a03200.png" border="0" usemap="#osgSim_1_1Impostor_inherit__map" alt="Inheritance graph"/></div>
<map name="osgSim_1_1Impostor_inherit__map" id="osgSim_1_1Impostor_inherit__map">
<area shape="rect" id="node2" href="a00451.html" title="LOD &#45; Level Of Detail group node which allows switching between children depending on distance from e..." alt="" coords="32,315,117,344"/><area shape="rect" id="node4" href="a00338.html" title="General group node which maintains a list of children." alt="" coords="28,237,121,267"/><area shape="rect" id="node6" href="a00491.html" title="Base class for all internal nodes in the scene graph." alt="" coords="29,160,120,189"/><area shape="rect" id="node8" href="a00500.html" title="Base class/standard interface for objects which require IO support, cloning and reference counting..." alt="" coords="24,83,125,112"/><area shape="rect" id="node10" href="a00627.html" title="Base class from providing referencing counted objects." alt="" coords="8,5,141,35"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>

<p><a href="a03201.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef std::vector<br class="typebreak"/>
&lt; <a class="el" href="a00624.html">osg::ref_ptr</a>&lt; <a class="el" href="a00364.html">ImpostorSprite</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00363.html#a8de924492aa70a60920f28a1f6129a09">ImpostorSpriteList</a></td></tr>
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00363.html#a258e7aa8d539e53ba3f83703dcd17353">Impostor</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00363.html#a4772fc98898864bc6ac7be6af8313269">Impostor</a> (const <a class="el" href="a00363.html">Impostor</a> &amp;es, const <a class="el" href="a00169.html">osg::CopyOp</a> &amp;copyop=osg::CopyOp::SHALLOW_COPY)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00363.html#aa1999d98d71a61c76152df447d787041">META_Node</a> (osgSim, <a class="el" href="a00363.html">Impostor</a>)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00363.html#a119f402ecb007df41af07885b2dd6862">traverse</a> (<a class="el" href="a00497.html">osg::NodeVisitor</a> &amp;nv)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Traverse downwards : calls children's accept method with NodeVisitor.  <a href="#a119f402ecb007df41af07885b2dd6862"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00363.html#a6f5468cc2b2d17d8d461029670aea040">setImpostorThreshold</a> (float distance)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the <a class="el" href="a00363.html" title="Impostor - is a form of Level Of Detail group node which allows both switching between children depen...">Impostor</a> threshold distance.  <a href="#a6f5468cc2b2d17d8d461029670aea040"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00363.html#a2f2466743b8410d3c96dea5da42d569b">getImpostorThreshold</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00363.html#a84320b9f83f832b32e7b3eeb377a0c34">setImpostorThresholdToBound</a> (float ratio=1.0f)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the <a class="el" href="a00363.html" title="Impostor - is a form of Level Of Detail group node which allows both switching between children depen...">Impostor</a> threshold distance relative to the node's bounding sphere's radius.  <a href="#a84320b9f83f832b32e7b3eeb377a0c34"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00364.html">ImpostorSprite</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00363.html#aa34bf64b3c3279d5721c4de54badd4b8">findBestImpostorSprite</a> (unsigned int contextID, const <a class="el" href="a01069.html">osg::Vec3</a> &amp;currLocalEyePoint) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Find the ImposterSprite which fits the current eye point best.  <a href="#aa34bf64b3c3279d5721c4de54badd4b8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00363.html#ac9445ca8c994be7405f1c4b5f65b4af3">addImpostorSprite</a> (unsigned int contextID, <a class="el" href="a00364.html">ImpostorSprite</a> *is)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Add an <a class="el" href="a00364.html" title="An ImposterSprite is a textured quad which is rendered in place of 3D geometry.">ImpostorSprite</a> to the <a class="el" href="a00363.html" title="Impostor - is a form of Level Of Detail group node which allows both switching between children depen...">Impostor</a>.  <a href="#ac9445ca8c994be7405f1c4b5f65b4af3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00363.html#a8de924492aa70a60920f28a1f6129a09">ImpostorSpriteList</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00363.html#a3614718554222b87b07c820f6868ab21">getImpostorSpriteList</a> (unsigned int contexID)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the list of ImpostorSprites attached to this <a class="el" href="a00363.html" title="Impostor - is a form of Level Of Detail group node which allows both switching between children depen...">Impostor</a>.  <a href="#a3614718554222b87b07c820f6868ab21"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="a00363.html#a8de924492aa70a60920f28a1f6129a09">ImpostorSpriteList</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00363.html#a5997d58af45a7086765fb674097c6062">getImpostorSpriteList</a> (unsigned int contexID) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a const list of ImpostorSprites attached to this const <a class="el" href="a00363.html" title="Impostor - is a form of Level Of Detail group node which allows both switching between children depen...">Impostor</a>.  <a href="#a5997d58af45a7086765fb674097c6062"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="a00070.html">osg::BoundingSphere</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00363.html#add2312d3d0601c45f8a40665ad219035">computeBound</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the bounding sphere around Node's geometry or children.  <a href="#add2312d3d0601c45f8a40665ad219035"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00363.html#a384a3213c88e21e090c79a31399586e5">~Impostor</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00364.html">ImpostorSprite</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00363.html#a8ae6fc522681cfe696afd685603d4b0a">createImpostorSprite</a> (<a class="el" href="a00182.html">osgUtil::CullVisitor</a> *cv)</td></tr>
<tr><td colspan="2"><h2><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00077.html">osg::buffered_object</a><br class="typebreak"/>
&lt; <a class="el" href="a00363.html#a8de924492aa70a60920f28a1f6129a09">ImpostorSpriteList</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00363.html#a25825998c3aca6ec7e437f6a4f9ad9b8">_impostorSpriteListBuffer</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00363.html#aa9c82e83334693113aa0cb08f7c4e049">_impostorThreshold</a></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p><a class="el" href="a00363.html" title="Impostor - is a form of Level Of Detail group node which allows both switching between children depen...">Impostor</a> - is a form of Level Of Detail group node which allows both switching between children depending on distance from eye point and image caching. </p>
<p>The principle behind Imposters is that they cache an image of real geometry and then the image is drawn in subsequent frames instead of the real geometry. It's a bit like a Billboard *but* is updated at runtime and w.r.t view point. By drawing just the texture mapped quad you can cut down scene complexity and improve performance.</p>
<p>For more details have a look at:</p>
<p><a href="http://grail.cs.washington.edu/projects/hic/">http://grail.cs.washington.edu/projects/hic/</a></p>
<p>The OSG doesn't implement exactly the same technique as above, but its should be a good starting place. The OSG's impostors are much less intrusive since you don't need to restructure your whole scene to use them.</p>
<p>All you need to do to use Impostors is to set up the visible range values for each LOD child of the <a class="el" href="a00363.html" title="Impostor - is a form of Level Of Detail group node which allows both switching between children depen...">Impostor</a>, as per <a class="el" href="a00451.html" title="LOD - Level Of Detail group node which allows switching between children depending on distance from e...">osg::LOD</a>, and set an <a class="el" href="a00363.html" title="Impostor - is a form of Level Of Detail group node which allows both switching between children depen...">Impostor</a> threshold to tell the renderer at what distance the Impostor's image caching should cut in. The osg::CullVisitor automatically handles all the setting of pre-rendering stages to calculate the required ImpostorSprites (which encapsulates the image cache and quad), and updates them as the view point changes. If you use osg::SceneView/CullVisitor all the complexity of supporting <a class="el" href="a00363.html" title="Impostor - is a form of Level Of Detail group node which allows both switching between children depen...">Impostor</a> will be nicely hidden away.</p>
<p>TODO: Various improvements are planned for the Impostor- 1) Estimation of how many frames an <a class="el" href="a00364.html" title="An ImposterSprite is a textured quad which is rendered in place of 3D geometry.">ImpostorSprite</a> will be reused, if it won't be used more often than a minimum threshold then do not create <a class="el" href="a00364.html" title="An ImposterSprite is a textured quad which is rendered in place of 3D geometry.">ImpostorSprite</a> - use the real geometry. 2) Sharing of texture memory between ImpostorSprites. 3) Simple 3D geometry for ImpostorSprite's rather than Billboarding. 4) Shrinking of the <a class="el" href="a00364.html" title="An ImposterSprite is a textured quad which is rendered in place of 3D geometry.">ImpostorSprite</a> size to more closely fit the underlying geometry. </p>
</div><hr/><h2>Member Typedef Documentation</h2>
<a class="anchor" id="a8de924492aa70a60920f28a1f6129a09"></a><!-- doxytag: member="osgSim::Impostor::ImpostorSpriteList" ref="a8de924492aa70a60920f28a1f6129a09" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::vector&lt; <a class="el" href="a00624.html">osg::ref_ptr</a>&lt;<a class="el" href="a00364.html">ImpostorSprite</a>&gt; &gt; <a class="el" href="a00363.html#a8de924492aa70a60920f28a1f6129a09">osgSim::Impostor::ImpostorSpriteList</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a258e7aa8d539e53ba3f83703dcd17353"></a><!-- doxytag: member="osgSim::Impostor::Impostor" ref="a258e7aa8d539e53ba3f83703dcd17353" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">osgSim::Impostor::Impostor </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a4772fc98898864bc6ac7be6af8313269"></a><!-- doxytag: member="osgSim::Impostor::Impostor" ref="a4772fc98898864bc6ac7be6af8313269" args="(const Impostor &amp;es, const osg::CopyOp &amp;copyop=osg::CopyOp::SHALLOW_COPY)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">osgSim::Impostor::Impostor </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00363.html">Impostor</a> &amp;&#160;</td>
          <td class="paramname"><em>es</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="a00169.html">osg::CopyOp</a> &amp;&#160;</td>
          <td class="paramname"><em>copyop</em> = <code>osg::CopyOp::SHALLOW_COPY</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a384a3213c88e21e090c79a31399586e5"></a><!-- doxytag: member="osgSim::Impostor::~Impostor" ref="a384a3213c88e21e090c79a31399586e5" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual osgSim::Impostor::~Impostor </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="ac9445ca8c994be7405f1c4b5f65b4af3"></a><!-- doxytag: member="osgSim::Impostor::addImpostorSprite" ref="ac9445ca8c994be7405f1c4b5f65b4af3" args="(unsigned int contextID, ImpostorSprite *is)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void osgSim::Impostor::addImpostorSprite </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>contextID</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00364.html">ImpostorSprite</a> *&#160;</td>
          <td class="paramname"><em>is</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Add an <a class="el" href="a00364.html" title="An ImposterSprite is a textured quad which is rendered in place of 3D geometry.">ImpostorSprite</a> to the <a class="el" href="a00363.html" title="Impostor - is a form of Level Of Detail group node which allows both switching between children depen...">Impostor</a>. </p>

</div>
</div>
<a class="anchor" id="add2312d3d0601c45f8a40665ad219035"></a><!-- doxytag: member="osgSim::Impostor::computeBound" ref="add2312d3d0601c45f8a40665ad219035" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="a00070.html">osg::BoundingSphere</a> osgSim::Impostor::computeBound </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Compute the bounding sphere around Node's geometry or children. </p>
<p>This method is automatically called by <a class="el" href="a00491.html#a1467f2ad703474ad37a236f87dee1f3a" title="Get the bounding sphere of node.">getBound()</a> when the bounding sphere has been marked dirty via <a class="el" href="a00491.html#ae0c87d5abfa0b64bca79600b77e0f7ba" title="Mark this node&#39;s bounding sphere dirty.">dirtyBound()</a>. </p>

<p>Reimplemented from <a class="el" href="a00451.html#acd6a505622a771a686b38d85b0ce2043">osg::LOD</a>.</p>

</div>
</div>
<a class="anchor" id="a8ae6fc522681cfe696afd685603d4b0a"></a><!-- doxytag: member="osgSim::Impostor::createImpostorSprite" ref="a8ae6fc522681cfe696afd685603d4b0a" args="(osgUtil::CullVisitor *cv)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00364.html">ImpostorSprite</a>* osgSim::Impostor::createImpostorSprite </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00182.html">osgUtil::CullVisitor</a> *&#160;</td>
          <td class="paramname"><em>cv</em></td><td>)</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="aa34bf64b3c3279d5721c4de54badd4b8"></a><!-- doxytag: member="osgSim::Impostor::findBestImpostorSprite" ref="aa34bf64b3c3279d5721c4de54badd4b8" args="(unsigned int contextID, const osg::Vec3 &amp;currLocalEyePoint) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00364.html">ImpostorSprite</a>* osgSim::Impostor::findBestImpostorSprite </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>contextID</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="a01069.html">osg::Vec3</a> &amp;&#160;</td>
          <td class="paramname"><em>currLocalEyePoint</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Find the ImposterSprite which fits the current eye point best. </p>

</div>
</div>
<a class="anchor" id="a5997d58af45a7086765fb674097c6062"></a><!-- doxytag: member="osgSim::Impostor::getImpostorSpriteList" ref="a5997d58af45a7086765fb674097c6062" args="(unsigned int contexID) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="a00363.html#a8de924492aa70a60920f28a1f6129a09">ImpostorSpriteList</a>&amp; osgSim::Impostor::getImpostorSpriteList </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>contexID</em></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get a const list of ImpostorSprites attached to this const <a class="el" href="a00363.html" title="Impostor - is a form of Level Of Detail group node which allows both switching between children depen...">Impostor</a>. </p>

</div>
</div>
<a class="anchor" id="a3614718554222b87b07c820f6868ab21"></a><!-- doxytag: member="osgSim::Impostor::getImpostorSpriteList" ref="a3614718554222b87b07c820f6868ab21" args="(unsigned int contexID)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00363.html#a8de924492aa70a60920f28a1f6129a09">ImpostorSpriteList</a>&amp; osgSim::Impostor::getImpostorSpriteList </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>contexID</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the list of ImpostorSprites attached to this <a class="el" href="a00363.html" title="Impostor - is a form of Level Of Detail group node which allows both switching between children depen...">Impostor</a>. </p>

</div>
</div>
<a class="anchor" id="a2f2466743b8410d3c96dea5da42d569b"></a><!-- doxytag: member="osgSim::Impostor::getImpostorThreshold" ref="a2f2466743b8410d3c96dea5da42d569b" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float osgSim::Impostor::getImpostorThreshold </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="aa1999d98d71a61c76152df447d787041"></a><!-- doxytag: member="osgSim::Impostor::META_Node" ref="aa1999d98d71a61c76152df447d787041" args="(osgSim, Impostor)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">osgSim::Impostor::META_Node </td>
          <td>(</td>
          <td class="paramtype">osgSim&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00363.html">Impostor</a>&#160;</td>
          <td class="paramname">&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a6f5468cc2b2d17d8d461029670aea040"></a><!-- doxytag: member="osgSim::Impostor::setImpostorThreshold" ref="a6f5468cc2b2d17d8d461029670aea040" args="(float distance)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void osgSim::Impostor::setImpostorThreshold </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>distance</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the <a class="el" href="a00363.html" title="Impostor - is a form of Level Of Detail group node which allows both switching between children depen...">Impostor</a> threshold distance. </p>
<p>For eye points further than this threshold the Imposter is used if appropriate, otherwise the LOD children as chosen as per a standard LOD node. </p>

</div>
</div>
<a class="anchor" id="a84320b9f83f832b32e7b3eeb377a0c34"></a><!-- doxytag: member="osgSim::Impostor::setImpostorThresholdToBound" ref="a84320b9f83f832b32e7b3eeb377a0c34" args="(float ratio=1.0f)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void osgSim::Impostor::setImpostorThresholdToBound </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>ratio</em> = <code>1.0f</code></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the <a class="el" href="a00363.html" title="Impostor - is a form of Level Of Detail group node which allows both switching between children depen...">Impostor</a> threshold distance relative to the node's bounding sphere's radius. </p>

</div>
</div>
<a class="anchor" id="a119f402ecb007df41af07885b2dd6862"></a><!-- doxytag: member="osgSim::Impostor::traverse" ref="a119f402ecb007df41af07885b2dd6862" args="(osg::NodeVisitor &amp;nv)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void osgSim::Impostor::traverse </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00497.html">osg::NodeVisitor</a> &amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Traverse downwards : calls children's accept method with NodeVisitor. </p>

<p>Reimplemented from <a class="el" href="a00451.html#af06ce5afa734713fa63d5d089e93570c">osg::LOD</a>.</p>

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="a25825998c3aca6ec7e437f6a4f9ad9b8"></a><!-- doxytag: member="osgSim::Impostor::_impostorSpriteListBuffer" ref="a25825998c3aca6ec7e437f6a4f9ad9b8" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00077.html">osg::buffered_object</a>&lt;<a class="el" href="a00363.html#a8de924492aa70a60920f28a1f6129a09">ImpostorSpriteList</a>&gt; <a class="el" href="a00363.html#a25825998c3aca6ec7e437f6a4f9ad9b8">osgSim::Impostor::_impostorSpriteListBuffer</a><code> [mutable, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="aa9c82e83334693113aa0cb08f7c4e049"></a><!-- doxytag: member="osgSim::Impostor::_impostorThreshold" ref="aa9c82e83334693113aa0cb08f7c4e049" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float <a class="el" href="a00363.html#aa9c82e83334693113aa0cb08f7c4e049">osgSim::Impostor::_impostorThreshold</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>osgSim/<a class="el" href="a01517.html">Impostor</a></li>
</ul>
</div>
<hr>
<table border="0"><tr><td>
  <img src="osg32-32.png" alt="osg logo" />
</td><td>
  <address><small>Generated at Tue May 31 2011 04:19:37 for the <a href="http://www.openscenegraph.org/">OpenSceneGraph</a>
by <a href="http://www.doxygen.org">doxygen</a> 1.7.4.</small></address>
<!-- Dimitri van Heesch's e-mail address removed, lest he get messages on the OpenSceneGraph -->
</td></tr></table>
</body>
</html>