Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > aa937981cccb78f06312e3cc380fe202 > files > 758

OpenSceneGraph-devel-2.8.3-3.fc14.x86_64.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: osg::Drawable 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.1 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;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 class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
      <li><a href="classes.html"><span>Class&nbsp;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    </ul>
  </div>
  <div class="navpath">
    <ul>
      <li><a class="el" href="a01628.html">osg</a>      </li>
      <li><a class="el" href="a00216.html">osg::Drawable</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
<a href="#pro-types">Protected Types</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="#friends">Friends</a>  </div>
  <div class="headertitle">
<h1>osg::Drawable Class Reference</h1>  </div>
</div>
<div class="contents">
<!-- doxytag: class="osg::Drawable" --><!-- doxytag: inherits="osg::Object" -->
<p>Pure virtual base class for drawable geometry.  
<a href="#_details">More...</a></p>
<div class="dynheader">
Inheritance diagram for osg::Drawable:</div>
<div class="dyncontent">
<div class="center"><img src="a02007.png" border="0" usemap="#osg_1_1Drawable_inherit__map" alt="Inheritance graph"/></div>
<map name="osg_1_1Drawable_inherit__map" id="osg_1_1Drawable_inherit__map">
<area shape="rect" id="node7" href="a00228.html" title="DrawPixels is an osg::Drawable subclass which encapsulates the drawing of images using glDrawPixels..." alt="" coords="577,59,695,88"/><area shape="rect" id="node9" href="a00313.html" title="osg::Geometry" alt="" coords="583,112,689,141"/><area shape="rect" id="node33" href="a00714.html" title="Allow the use of Shapes as Drawables, so that they can be rendered with reduced effort." alt="" coords="565,165,707,195"/><area shape="rect" id="node35" href="a00542.html" title="The heart of this class library; its purpose is to hold a set of particles and manage particle creati..." alt="" coords="544,219,728,248"/><area shape="rect" id="node39" href="a00573.html" title="Internal drawable used to render batches of cells." alt="" coords="468,272,804,301"/><area shape="rect" id="node41" href="a00508.html" title="OccluderGeometry provides a sepecialised geometry representation of objects in scene that occlude lig..." alt="" coords="533,325,739,355"/><area shape="rect" id="node43" href="a00709.html" title="osgShadow::ShadowVolumeGeometry" alt="" coords="513,379,759,408"/><area shape="rect" id="node45" href="a00364.html" title="An ImposterSprite is a textured quad which is rendered in place of 3D geometry." alt="" coords="557,432,715,461"/><area shape="rect" id="node47" href="a00894.html" title="osgText::TextBase" alt="" coords="569,485,703,515"/><area shape="rect" id="node2" href="a00500.html" title="Base class/standard interface for objects which require IO support, cloning and reference counting..." alt="" coords="175,272,263,301"/><area shape="rect" id="node4" href="a00627.html" title="Base class from providing referencing counted objects." alt="" coords="7,272,124,301"/><area shape="rect" id="node11" href="a00478.html" title="osgAnimation::MorphGeometry" alt="" coords="876,5,1079,35"/><area shape="rect" id="node13" href="a00661.html" title="osgAnimation::RigGeometry" alt="" coords="884,59,1071,88"/><area shape="rect" id="node15" href="a00202.html" title="DelaunayTriangulator: Utility class that triangulates an irregular network of sample points..." alt="" coords="884,112,1071,141"/><area shape="rect" id="node17" href="a01105.html" title="osgWidget::Widget" alt="" coords="911,165,1044,195"/><area shape="rect" id="node19" href="a00068.html" title="osgWidget::Frame::Border" alt="" coords="1191,32,1364,61"/><area shape="rect" id="node21" href="a00171.html" title="osgWidget::Frame::Corner" alt="" coords="1189,85,1365,115"/><area shape="rect" id="node23" href="a00423.html" title="osgWidget::Label" alt="" coords="1216,139,1339,168"/><area shape="rect" id="node27" href="a00498.html" title="osgWidget::NotifyWidget" alt="" coords="1193,192,1361,221"/><area shape="rect" id="node29" href="a00499.html" title="osgWidget::NullWidget" alt="" coords="1200,245,1355,275"/><area shape="rect" id="node31" href="a00246.html" title="osgWidget::Window::EmbeddedWindow" alt="" coords="1149,299,1405,328"/><area shape="rect" id="node25" href="a00389.html" title="osgWidget::Input" alt="" coords="1455,139,1575,168"/><area shape="rect" id="node37" href="a00138.html" title="ConnectConnectedParticleSystem is a specialise ConnectedParticleSystem for effects like missle trails..." alt="" coords="855,219,1100,248"/><area shape="rect" id="node49" href="a00892.html" title="osgText::Text" alt="" coords="927,459,1028,488"/><area shape="rect" id="node53" href="a00893.html" title="osgText::Text3D" alt="" coords="917,512,1037,541"/><area shape="rect" id="node51" href="a00279.html" title="osgText::FadeText" alt="" coords="1212,459,1343,488"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>

<p><a href="a02008.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html">AttributeFunctor</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00132.html">ComputeBoundingBoxCallback</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Callback to allow users to override the default computation of bounding volume.  <a href="a00132.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00141.html">ConstAttributeFunctor</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html">CullCallback</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00219.html">DrawCallback</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Callback attached to an <a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a> which allows the users to customize the drawing of an exist <a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a> object.  <a href="a00219.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00255.html">EventCallback</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00266.html">Extensions</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="a00266.html" title="Extensions class which encapsulates the querying of extensions and associated function pointers...">Extensions</a> class which encapsulates the querying of extensions and associated function pointers, and provide convenience wrappers to check for the extensions or use the associated functions.  <a href="a00266.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a01042.html">UpdateCallback</a></td></tr>
<tr><td colspan="2"><h2><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#acc6ce3654c54f846bec881244f571b18">AttributeTypes</a> { <br/>
&nbsp;&nbsp;<a class="el" href="a00216.html#acc6ce3654c54f846bec881244f571b18afe125c8438f6c2f9e402e71823ba315b">VERTICES</a> =  0, 
<a class="el" href="a00216.html#acc6ce3654c54f846bec881244f571b18a0b9bd86ab4443b64c77f5f97508f1af5">WEIGHTS</a> =  1, 
<a class="el" href="a00216.html#acc6ce3654c54f846bec881244f571b18a0db2f5a23e4d2778f27fc779d1824d08">NORMALS</a> =  2, 
<a class="el" href="a00216.html#acc6ce3654c54f846bec881244f571b18a21ad3f36e449ff1c1c8c26598d6dc11c">COLORS</a> =  3, 
<br/>
&nbsp;&nbsp;<a class="el" href="a00216.html#acc6ce3654c54f846bec881244f571b18a9c9856a68ff94ebc2db902a0ecde911e">SECONDARY_COLORS</a> =  4, 
<a class="el" href="a00216.html#acc6ce3654c54f846bec881244f571b18a8669a56c606c1367b41357bf238950af">FOG_COORDS</a> =  5, 
<a class="el" href="a00216.html#acc6ce3654c54f846bec881244f571b18aabaa3713b18bf70c547361a1de5b8c21">ATTRIBUTE_6</a> =  6, 
<a class="el" href="a00216.html#acc6ce3654c54f846bec881244f571b18a761c6ddb87536ccacd46a708495ee899">ATTRIBUTE_7</a> =  7, 
<br/>
&nbsp;&nbsp;<a class="el" href="a00216.html#acc6ce3654c54f846bec881244f571b18a30b9caa90f88db92c8557e67d7c7f213">TEXTURE_COORDS</a> =  8, 
<a class="el" href="a00216.html#acc6ce3654c54f846bec881244f571b18a7095f01a2d6f442db9644c81000fb7b9">TEXTURE_COORDS_0</a> =  TEXTURE_COORDS, 
<a class="el" href="a00216.html#acc6ce3654c54f846bec881244f571b18a5e53db142958d232aa8082ad223e844e">TEXTURE_COORDS_1</a> =  TEXTURE_COORDS_0+1, 
<a class="el" href="a00216.html#acc6ce3654c54f846bec881244f571b18a27799c24c73a382ae283ce3800360854">TEXTURE_COORDS_2</a> =  TEXTURE_COORDS_0+2, 
<br/>
&nbsp;&nbsp;<a class="el" href="a00216.html#acc6ce3654c54f846bec881244f571b18a11880e45a4614833e7c842e9a9b9eb65">TEXTURE_COORDS_3</a> =  TEXTURE_COORDS_0+3, 
<a class="el" href="a00216.html#acc6ce3654c54f846bec881244f571b18a6a09e7fc11ca3f96cc69d0132b042f9d">TEXTURE_COORDS_4</a> =  TEXTURE_COORDS_0+4, 
<a class="el" href="a00216.html#acc6ce3654c54f846bec881244f571b18a69adf6895f37a3228ff8c4a25f2efcc3">TEXTURE_COORDS_5</a> =  TEXTURE_COORDS_0+5, 
<a class="el" href="a00216.html#acc6ce3654c54f846bec881244f571b18ab3986b42e78f1012c3774397f81bb76a">TEXTURE_COORDS_6</a> =  TEXTURE_COORDS_0+6, 
<br/>
&nbsp;&nbsp;<a class="el" href="a00216.html#acc6ce3654c54f846bec881244f571b18ab3ce816f9cf24d4a5cc21fbc0d06a79d">TEXTURE_COORDS_7</a> =  TEXTURE_COORDS_0+7
<br/>
 }</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef std::vector&lt; <a class="el" href="a00491.html">Node</a> * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a102db6385b2b1cc908bbad35a580d1e9">ParentList</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A vector of <a class="el" href="a00491.html" title="Base class for all internal nodes in the scene graph.">osg::Node</a> pointers which is used to store the parent(s) of drawable.  <a href="#a102db6385b2b1cc908bbad35a580d1e9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#ad4b10a7b6bb2195883d4804e84d0b639">AttributeType</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">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#acb41c6a3ee0dc7e341b97d876a390aab">Drawable</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a1c2249520539ddaefb3a1ac19b8c6f4b">Drawable</a> (const <a class="el" href="a00216.html">Drawable</a> &amp;drawable, const <a class="el" href="a00169.html">CopyOp</a> &amp;copyop=CopyOp::SHALLOW_COPY)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Copy constructor using <a class="el" href="a00169.html" title="Copy Op(erator) used to control whether shallow or deep copy is used during copy construction and clo...">CopyOp</a> to manage deep vs shallow copy.  <a href="#a1c2249520539ddaefb3a1ac19b8c6f4b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a8009680e74956bcd028b9aa619432e94">isSameKindAs</a> (const <a class="el" href="a00500.html">Object</a> *obj) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a664bf9a63de5efa65d44e6a8c77517ab">libraryName</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">return the name of the object's library.  <a href="#a664bf9a63de5efa65d44e6a8c77517ab"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#ae3a829d26cd9882f17cb45e64bb71bf4">className</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">return the name of the object's class type.  <a href="#ae3a829d26cd9882f17cb45e64bb71bf4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="a00313.html">Geometry</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#ace6d464248a4af505b5f5ffb71ca42a8">asGeometry</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert 'this' into a <a class="el" href="a00313.html">Geometry</a> pointer if <a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a> is a <a class="el" href="a00313.html">Geometry</a>, otherwise return 0.  <a href="#ace6d464248a4af505b5f5ffb71ca42a8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="a00313.html">Geometry</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#abe2e0ae2cbbb01f9de9fc65bc81ac702">asGeometry</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert 'const this' into a const <a class="el" href="a00313.html">Geometry</a> pointer if <a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a> is a <a class="el" href="a00313.html">Geometry</a>, otherwise return 0.  <a href="#abe2e0ae2cbbb01f9de9fc65bc81ac702"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#afa5707d887703da8abadf1b34b391ffc">computeDataVariance</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compute the DataVariance based on an assessment of callback etc.  <a href="#afa5707d887703da8abadf1b34b391ffc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="a00216.html#a102db6385b2b1cc908bbad35a580d1e9">ParentList</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#ad9784d7cbf9be0cc48e545b0a829b0cf">getParents</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the parent list of drawable.  <a href="#ad9784d7cbf9be0cc48e545b0a829b0cf"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00216.html#a102db6385b2b1cc908bbad35a580d1e9">ParentList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#ab6ec9359ebdb3fb676e632d810cbb0ba">getParents</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the a copy of parent list of node.  <a href="#ab6ec9359ebdb3fb676e632d810cbb0ba"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00491.html">Node</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#ac6d2dbb22111d761334373e5ee0e2c93">getParent</a> (unsigned int i)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a single parent of <a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a>.  <a href="#ac6d2dbb22111d761334373e5ee0e2c93"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="a00491.html">Node</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#abdb56f85f6ea64919c06840296faf197">getParent</a> (unsigned int i) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a single const parent of <a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a>.  <a href="#abdb56f85f6ea64919c06840296faf197"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#ab44fb2b99696543002375626eb00901d">getNumParents</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the number of parents of node.  <a href="#ab44fb2b99696543002375626eb00901d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a01628.html#a22d1eac701d86ccc45b1e9c1e676d3e2">MatrixList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a1fc01ac1181d50f4f34b6cb404fe46f1">getWorldMatrices</a> (const <a class="el" href="a00491.html">osg::Node</a> *haltTraversalAtNode=0) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the list of matrices that transform this node from local coordinates to world coordinates.  <a href="#a1fc01ac1181d50f4f34b6cb404fe46f1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a793437bf4d88a9234cb9b83700ddfda5">setStateSet</a> (<a class="el" href="a00746.html">StateSet</a> *stateset)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the <a class="el" href="a00746.html" title="Stores a set of modes and attributes which represent a set of OpenGL state.">StateSet</a> attached to the <a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a>.  <a href="#a793437bf4d88a9234cb9b83700ddfda5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00746.html">StateSet</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a15c72dca6a5907a4f933551ba3ee69f3">getStateSet</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the attached <a class="el" href="a00746.html" title="Stores a set of modes and attributes which represent a set of OpenGL state.">StateSet</a>.  <a href="#a15c72dca6a5907a4f933551ba3ee69f3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="a00746.html">StateSet</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a9685fcf05f952dba240fb003769d4abe">getStateSet</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the attached const <a class="el" href="a00746.html" title="Stores a set of modes and attributes which represent a set of OpenGL state.">StateSet</a>.  <a href="#a9685fcf05f952dba240fb003769d4abe"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00746.html">StateSet</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#aa6fdea576a02e0ee91e44d536181d6fb">getOrCreateStateSet</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the attached const <a class="el" href="a00746.html" title="Stores a set of modes and attributes which represent a set of OpenGL state.">StateSet</a>, if one is not already attached create one, attach it to the drawable and return a pointer to it.  <a href="#aa6fdea576a02e0ee91e44d536181d6fb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a8e28111530fd3c9776516cd42399742a">setInitialBound</a> (const <a class="el" href="a00069.html">osg::BoundingBox</a> &amp;bbox)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the initial bounding volume to use when computing the overall bounding volume.  <a href="#a8e28111530fd3c9776516cd42399742a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="a00069.html">BoundingBox</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#afec7e9ccc9182f9363a6b06dcdf61605">getInitialBound</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the initial bounding volume to use when computing the overall bounding volume.  <a href="#afec7e9ccc9182f9363a6b06dcdf61605"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a06593cd77f7e3e22cd1a87132f95a2b4">dirtyBound</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Dirty the bounding box, forcing a <a class="el" href="a00216.html#a0e2875e665456b88fa39b10cb04e26c5" title="Compute the bounding box around Drawables&#39;s geometry.">computeBound()</a> on the next call to <a class="el" href="a00216.html#a9676dc14a029baf3b5ce35bdcbcb1343" title="Get BoundingBox of Drawable.">getBound()</a>.  <a href="#a06593cd77f7e3e22cd1a87132f95a2b4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="a00069.html">BoundingBox</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a9676dc14a029baf3b5ce35bdcbcb1343">getBound</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get BoundingBox of <a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a>.  <a href="#a9676dc14a029baf3b5ce35bdcbcb1343"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="a00069.html">BoundingBox</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a0e2875e665456b88fa39b10cb04e26c5">computeBound</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compute the bounding box around Drawables's geometry.  <a href="#a0e2875e665456b88fa39b10cb04e26c5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a08b40baec8574aee5eb0571256667270">setComputeBoundingBoxCallback</a> (<a class="el" href="a00132.html">ComputeBoundingBoxCallback</a> *callback)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the compute bound callback to override the default computeBound.  <a href="#a08b40baec8574aee5eb0571256667270"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00132.html">ComputeBoundingBoxCallback</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#ae6e7bb2cc096a0c29710789364c5a5d1">getComputeBoundingBoxCallback</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the compute bound callback.  <a href="#ae6e7bb2cc096a0c29710789364c5a5d1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="a00132.html">ComputeBoundingBoxCallback</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a05b3599718a10176b6ae78b09e9244a3">getComputeBoundingBoxCallback</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the const compute bound callback.  <a href="#a05b3599718a10176b6ae78b09e9244a3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a1614e447638d5dd9232605242d4ec9f1">setShape</a> (<a class="el" href="a00711.html">Shape</a> *shape)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the <a class="el" href="a00711.html" title="Base class for all shape types.">Shape</a> of the <code><a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a></code>.  <a href="#a1614e447638d5dd9232605242d4ec9f1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00711.html">Shape</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#ac79d9cbccfe30e4cc3f01c0b9b6b2dc1">getShape</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the <a class="el" href="a00711.html" title="Base class for all shape types.">Shape</a> of the <a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a>.  <a href="#ac79d9cbccfe30e4cc3f01c0b9b6b2dc1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="a00711.html">Shape</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a89e1bdaba8a24e451c4ee70c20e8ee42">getShape</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the const <a class="el" href="a00711.html" title="Base class for all shape types.">Shape</a> of the const <a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a>.  <a href="#a89e1bdaba8a24e451c4ee70c20e8ee42"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#ae339d231afe60976916d5011d0d63d18">setSupportsDisplayList</a> (bool flag)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the drawable so that it can or cannot be used in conjunction with OpenGL display lists.  <a href="#ae339d231afe60976916d5011d0d63d18"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a271130dd8c6ef6f7cc2b227ed1c6246e">getSupportsDisplayList</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get whether display lists are supported for this drawable instance.  <a href="#a271130dd8c6ef6f7cc2b227ed1c6246e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a70ec3cfa4e43873207d116e84b1d2988">setUseDisplayList</a> (bool flag)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">When set to true, force the draw method to use OpenGL Display List for rendering.  <a href="#a70ec3cfa4e43873207d116e84b1d2988"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a63398d06593b93c1fa7f82f285bb6c13">getUseDisplayList</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return whether OpenGL display lists are being used for rendering.  <a href="#a63398d06593b93c1fa7f82f285bb6c13"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">GLuint &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a1ccb10f82d79c232f233c5599816373f">getDisplayList</a> (unsigned int contextID) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return OpenGL display list for specified contextID.  <a href="#a1ccb10f82d79c232f233c5599816373f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#ab2987761757e90d49b79b6de0003215f">setUseVertexBufferObjects</a> (bool flag)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">When set to true, ignore the <a class="el" href="a00216.html#a70ec3cfa4e43873207d116e84b1d2988" title="When set to true, force the draw method to use OpenGL Display List for rendering.">setUseDisplayList()</a> settings, and hints to the drawImplementation method to use OpenGL vertex buffer objects for rendering.  <a href="#ab2987761757e90d49b79b6de0003215f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#af40907e89c0612907a2b4de50651e822">getUseVertexBufferObjects</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return whether OpenGL vertex buffer objects should be used when supported by OpenGL driver.  <a href="#af40907e89c0612907a2b4de50651e822"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a3de93f843ddacfda4ef63620e11dabfb">dirtyDisplayList</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Force a recompile on next <a class="el" href="a00216.html#a40d8d1b5503ee4c996632a23873c5573" title="Draw OpenGL primitives.">draw()</a> of any OpenGL display list associated with this geoset.  <a href="#a3de93f843ddacfda4ef63620e11dabfb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#adcd67f7bbba757a55860353ce32dd8f7">getGLObjectSizeHint</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the estimated size of GLObjects (display lists/vertex buffer objects) that are associated with this drawable.  <a href="#adcd67f7bbba757a55860353ce32dd8f7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a40d8d1b5503ee4c996632a23873c5573">draw</a> (<a class="el" href="a00653.html">RenderInfo</a> &amp;renderInfo) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Draw OpenGL primitives.  <a href="#a40d8d1b5503ee4c996632a23873c5573"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a1477f82653ab0a6e2e138abf63ed9bfc">compileGLObjects</a> (<a class="el" href="a00653.html">RenderInfo</a> &amp;renderInfo) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Immediately compile this <code><a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a></code> into an OpenGL Display List.  <a href="#a1477f82653ab0a6e2e138abf63ed9bfc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a9a699c0ce7decce06d541e06d4067199">setThreadSafeRefUnref</a> (bool threadSafe)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set whether to use a mutex to ensure <a class="el" href="a00627.html#acafcbbae9e9d8bfcbc811cc6c36d1cf4" title="Increment the reference count by one, indicating that this object has another pointer which is refere...">ref()</a> and <a class="el" href="a00627.html#a0ee3c1293cceac54bfaabe7c541bcb68" title="Decrement the reference count by one, indicating that a pointer to this object is referencing it...">unref()</a> are thread safe.  <a href="#a9a699c0ce7decce06d541e06d4067199"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a2311177aea54373c67085e71f401a2cf">resizeGLObjectBuffers</a> (unsigned int maxSize)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Resize any per context GLObject buffers to specified size.  <a href="#a2311177aea54373c67085e71f401a2cf"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a41e26abe7f934904a4d65d753f4df046">releaseGLObjects</a> (<a class="el" href="a00742.html">State</a> *state=0) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">If <a class="el" href="a00742.html" title="Encapsulates the current applied OpenGL modes, attributes and vertex arrays settings, implements lazy state updating and provides accessors for querying the current state.">State</a> is non-zero, this function releases OpenGL objects for the specified graphics context.  <a href="#a41e26abe7f934904a4d65d753f4df046"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a08ef7a88aa216afff5b072bf03ae6969">setUpdateCallback</a> (<a class="el" href="a01042.html">UpdateCallback</a> *ac)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the <a class="el" href="a01042.html">UpdateCallback</a> which allows users to attach customize the updating of an object during the update traversal.  <a href="#a08ef7a88aa216afff5b072bf03ae6969"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a01042.html">UpdateCallback</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a3588921aa3372c8eb75d0cbee990f13c">getUpdateCallback</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the non const <a class="el" href="a01042.html">UpdateCallback</a>.  <a href="#a3588921aa3372c8eb75d0cbee990f13c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="a01042.html">UpdateCallback</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a16b5f05391aa75b1d6a8e9ef51c4286e">getUpdateCallback</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the const <a class="el" href="a01042.html">UpdateCallback</a>.  <a href="#a16b5f05391aa75b1d6a8e9ef51c4286e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a9eeb29489477eb86178f4044f6bdd96c">requiresUpdateTraversal</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return whether this <a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a> has update callbacks associated with it, and therefore must be traversed.  <a href="#a9eeb29489477eb86178f4044f6bdd96c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a04d5366f38fc6d74dfa73e015730fcab">setEventCallback</a> (<a class="el" href="a00255.html">EventCallback</a> *ac)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the <a class="el" href="a00255.html">EventCallback</a> which allows users to attach customize the updating of an object during the Event traversal.  <a href="#a04d5366f38fc6d74dfa73e015730fcab"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00255.html">EventCallback</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a37e95706f67feaeda528fff0e911af8a">getEventCallback</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the non const <a class="el" href="a00255.html">EventCallback</a>.  <a href="#a37e95706f67feaeda528fff0e911af8a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="a00255.html">EventCallback</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a104a6cc2776b1a808d52c21ae93ea4b8">getEventCallback</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the const <a class="el" href="a00255.html">EventCallback</a>.  <a href="#a104a6cc2776b1a808d52c21ae93ea4b8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#aa7c15fcb192c77067df1980d4981afa1">requiresEventTraversal</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return whether this <a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a> has event callbacks associated with it, and therefore must be traversed.  <a href="#aa7c15fcb192c77067df1980d4981afa1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a41abcf714b5a3680782cc670ae3c9d28">setCullCallback</a> (<a class="el" href="a00177.html">CullCallback</a> *cc)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the <a class="el" href="a00177.html">CullCallback</a> which allows users to customize the culling of <a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a> during the cull traversal.  <a href="#a41abcf714b5a3680782cc670ae3c9d28"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00177.html">CullCallback</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a9535297c5d1836244aa3ab83ddc8b610">getCullCallback</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the non const <a class="el" href="a00177.html">CullCallback</a>.  <a href="#a9535297c5d1836244aa3ab83ddc8b610"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="a00177.html">CullCallback</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#ab634f0ae52b70de00c375899797e157b">getCullCallback</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the const <a class="el" href="a00177.html">CullCallback</a>.  <a href="#ab634f0ae52b70de00c375899797e157b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#ac2dcdd06351e1045f310d84a9d447826">setDrawCallback</a> (<a class="el" href="a00219.html">DrawCallback</a> *dc)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the <a class="el" href="a00219.html" title="Callback attached to an Drawable which allows the users to customize the drawing of an exist Drawable...">DrawCallback</a> which allows users to attach customize the drawing of existing <a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a> object.  <a href="#ac2dcdd06351e1045f310d84a9d447826"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00219.html">DrawCallback</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#aae48257764e101d9b6d95dd5b1e493af">getDrawCallback</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the non const <a class="el" href="a00219.html" title="Callback attached to an Drawable which allows the users to customize the drawing of an exist Drawable...">DrawCallback</a>.  <a href="#aae48257764e101d9b6d95dd5b1e493af"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="a00219.html">DrawCallback</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a6549cbf4e400cd4f7ac420b4137895a8">getDrawCallback</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the const <a class="el" href="a00219.html" title="Callback attached to an Drawable which allows the users to customize the drawing of an exist Drawable...">DrawCallback</a>.  <a href="#a6549cbf4e400cd4f7ac420b4137895a8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#ae4e59643622ad16b33712ed3bbbb48f9">drawImplementation</a> (<a class="el" href="a00653.html">RenderInfo</a> &amp;renderInfo) const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">drawImplementation(RenderInfo&amp;) is a pure virtual method for the actual implementation of OpenGL drawing calls, such as vertex arrays and primitives, that must be implemented in concrete subclasses of the <a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a> base class, examples include <a class="el" href="a00313.html">osg::Geometry</a> and <a class="el" href="a00714.html" title="Allow the use of Shapes as Drawables, so that they can be rendered with reduced effort.">osg::ShapeDrawable</a>.  <a href="#ae4e59643622ad16b33712ed3bbbb48f9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a12e0ce80371470d598ccd1f88667f46c">supports</a> (const <a class="el" href="a00039.html">AttributeFunctor</a> &amp;) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return true if the <a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a> subclass supports <a class="el" href="a00216.html#a1cbf45c341f9beb660f63aa7542d5867" title="accept an AttributeFunctor and call its methods to tell it about the internal attributes that this Dr...">accept(AttributeFunctor&amp;)</a>.  <a href="#a12e0ce80371470d598ccd1f88667f46c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a1cbf45c341f9beb660f63aa7542d5867">accept</a> (<a class="el" href="a00039.html">AttributeFunctor</a> &amp;)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">accept an <a class="el" href="a00039.html">AttributeFunctor</a> and call its methods to tell it about the internal attributes that this <a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a> has.  <a href="#a1cbf45c341f9beb660f63aa7542d5867"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#ac02f54bc3ce7e796cfdeb997ef6ff40f">supports</a> (const <a class="el" href="a00141.html">ConstAttributeFunctor</a> &amp;) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return true if the <a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a> subclass supports accept(ConstAttributeFunctor&amp;).  <a href="#ac02f54bc3ce7e796cfdeb997ef6ff40f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a3d7e811c81896356bd1854905c2b874f">accept</a> (<a class="el" href="a00141.html">ConstAttributeFunctor</a> &amp;) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Accept an <a class="el" href="a00039.html">AttributeFunctor</a> and call its methods to tell it about the internal attributes that this <a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a> has.  <a href="#a3d7e811c81896356bd1854905c2b874f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a9706a830228cc223c7d84cd572cf0735">supports</a> (const <a class="el" href="a00577.html">PrimitiveFunctor</a> &amp;) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return true if the <a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a> subclass supports accept(PrimitiveFunctor&amp;).  <a href="#a9706a830228cc223c7d84cd572cf0735"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a09bfec0d087dfe506a7bd8cdac00d3c8">accept</a> (<a class="el" href="a00577.html">PrimitiveFunctor</a> &amp;) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Accept a <a class="el" href="a00577.html" title="A PrimitiveFunctor is used (in conjunction with osg::Drawable::accept (PrimitiveFunctor&amp;)) to get...">PrimitiveFunctor</a> and call its methods to tell it about the internal primitives that this <a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a> has.  <a href="#a09bfec0d087dfe506a7bd8cdac00d3c8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#ae3fe1b7e1054367b861e49d55121c7b7">supports</a> (const <a class="el" href="a00578.html">PrimitiveIndexFunctor</a> &amp;) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return true if the <a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a> subclass supports accept(PrimitiveIndexFunctor&amp;).  <a href="#ae3fe1b7e1054367b861e49d55121c7b7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a2d1e6797db7e76049d77bd9f4ac11e86">accept</a> (<a class="el" href="a00578.html">PrimitiveIndexFunctor</a> &amp;) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Accept a <a class="el" href="a00578.html">PrimitiveIndexFunctor</a> and call its methods to tell it about the internal primitives that this <a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a> has.  <a href="#a2d1e6797db7e76049d77bd9f4ac11e86"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static GLuint&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a1b200dff2dd564798598b1728f92bf7f">generateDisplayList</a> (unsigned int contextID, unsigned int sizeHint=0)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a OpenGL display list handle a newly generated or reused from display list cache.  <a href="#a1b200dff2dd564798598b1728f92bf7f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#ae9a5940638e2b3702fae305a2e571cbe">setMinimumNumberOfDisplayListsToRetainInCache</a> (unsigned int minimum)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the minimum number of display lists to retain in the deleted display list cache.  <a href="#ae9a5940638e2b3702fae305a2e571cbe"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#aa108026a71068f36e8882b6b5c7b5a80">getMinimumNumberOfDisplayListsToRetainInCache</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the minimum number of display lists to retain in the deleted display list cache.  <a href="#aa108026a71068f36e8882b6b5c7b5a80"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a3ce56130ab354cd28e50407c278cf6ea">deleteDisplayList</a> (unsigned int contextID, GLuint globj, unsigned int sizeHint=0)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Use deleteDisplayList instead of glDeleteList to allow OpenGL display list to be cached until they can be deleted by the OpenGL context in which they were created, specified by contextID.  <a href="#a3ce56130ab354cd28e50407c278cf6ea"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#aa12334841b007b2d5cb9efcd408d1ccb">flushAllDeletedDisplayLists</a> (unsigned int contextID)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Flush all the cached display list which need to be deleted in the OpenGL context related to contextID.  <a href="#aa12334841b007b2d5cb9efcd408d1ccb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#ada2f8d500cbd15127569c133a312e864">discardAllDeletedDisplayLists</a> (unsigned int contextID)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Flush all the cached display list which need to be deleted in the OpenGL context related to contextID.  <a href="#ada2f8d500cbd15127569c133a312e864"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#abfcb605a8fd854f4593f688b889fc063">flushDeletedDisplayLists</a> (unsigned int contextID, double &amp;availableTime)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Flush the cached display list which need to be deleted in the OpenGL context related to contextID.  <a href="#abfcb605a8fd854f4593f688b889fc063"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="a00266.html">Extensions</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a789c04364d62ebc63ce82cc94b0e63ae">getExtensions</a> (unsigned int contextID, bool createIfNotInitalized)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Function to call to get the extension of a specified context.  <a href="#a789c04364d62ebc63ce82cc94b0e63ae"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a1376d8e203bd5d9e312f7f76b166adbb">setExtensions</a> (unsigned int contextID, <a class="el" href="a00266.html">Extensions</a> *extensions)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">setExtensions allows users to override the extensions across graphics contexts.  <a href="#a1376d8e203bd5d9e312f7f76b166adbb"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#af35bfff535c84bb8c71f0c1c07ee7ca9">s_numberDrawablesReusedLastInLastFrame</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#ad3ca3b1dfaca4fc311c871c4b1eb1bb9">s_numberNewDrawablesInLastFrame</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a1332816062ed8e40c62a1a977a42f5d8">s_numberDeletedDrawablesInLastFrame</a></td></tr>
<tr><td colspan="2"><h2><a name="pro-types"></a>
Protected Types</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00078.html">osg::buffered_value</a><br class="typebreak"/>
&lt; GLuint &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#afe510be70e85e468c7b4d680b4c9c731">GLObjectList</a></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"><a class="el" href="a00216.html">Drawable</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a388f0bc300763674e258b61d4c21402d">operator=</a> (const <a class="el" href="a00216.html">Drawable</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a2dcbff655c6230edb9222f88f020cb81">~Drawable</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a88922d827aa138f898f089915c44292f">setBound</a> (const <a class="el" href="a00069.html">BoundingBox</a> &amp;bb) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">set the bounding box .  <a href="#a88922d827aa138f898f089915c44292f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a0119351ce6381ada5fd04a95d52c2e04">addParent</a> (<a class="el" href="a00491.html">osg::Node</a> *node)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a03d1d9cd8e9e607dd4529d76eb3be13c">removeParent</a> (<a class="el" href="a00491.html">osg::Node</a> *node)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#ad7cb76099865963a5b3f0b42b8751d8e">setNumChildrenRequiringUpdateTraversal</a> (unsigned int num)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#acf3f4578244ca1d8bbb9b851ff104ffa">getNumChildrenRequiringUpdateTraversal</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a726ef1747dd3e72ecf8262ea27e85ca8">setNumChildrenRequiringEventTraversal</a> (unsigned int num)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#aaa5ede3f700b561cec08167db31a1428">getNumChildrenRequiringEventTraversal</a> () const </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="a00216.html#a102db6385b2b1cc908bbad35a580d1e9">ParentList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#ac7839ee293bca1cfaf600977fe4cb5c8">_parents</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00624.html">ref_ptr</a>&lt; <a class="el" href="a00746.html">StateSet</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a8d9bf168d2f841c19cf599069fc7a8b8">_stateset</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00069.html">BoundingBox</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a4a7756e242f5f24dbacf0fd465e7bc49">_initialBound</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00624.html">ref_ptr</a><br class="typebreak"/>
&lt; <a class="el" href="a00132.html">ComputeBoundingBoxCallback</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a19e92c8bbae7f0a43a30434b8fd0e038">_computeBoundCallback</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00069.html">BoundingBox</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a55f9b2b4ef37dada949f30884c6a3a1e">_boundingBox</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a9aef2b8631873b2d5c833f6987ef9cf7">_boundingBoxComputed</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00624.html">ref_ptr</a>&lt; <a class="el" href="a00711.html">Shape</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a149ad68a4ebad61da19b82a59bf9f5ff">_shape</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#abba6466cf12c335dd15b410b4a1f9b76">_supportsDisplayList</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#abfe93518facf0e7e1534ed2590b6ff11">_useDisplayList</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#af35c975fcaca25bd664b42524bf9e51c">_supportsVertexBufferObjects</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#addbe191865d034403b1845ad0e5c3826">_useVertexBufferObjects</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00078.html">GLObjectList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#aa7b8cf5da01cf95945ad0aceb9adffab">_globjList</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00624.html">ref_ptr</a>&lt; <a class="el" href="a01042.html">UpdateCallback</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#abe02ee713c7c9a9ac14677312c5533ed">_updateCallback</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a15b52d76effbbe352abbda738e832d99">_numChildrenRequiringUpdateTraversal</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00624.html">ref_ptr</a>&lt; <a class="el" href="a00255.html">EventCallback</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a6403fe2f8700deaca5c36b9cad138356">_eventCallback</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a950c495eba042fa9dab071d6b19aeee4">_numChildrenRequiringEventTraversal</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00624.html">ref_ptr</a>&lt; <a class="el" href="a00177.html">CullCallback</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a7f11ecf9cd836db45e04bee3e5cd45f0">_cullCallback</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00624.html">ref_ptr</a>&lt; <a class="el" href="a00219.html">DrawCallback</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a412cadf71e56a9644ecc63f84e9373cd">_drawCallback</a></td></tr>
<tr><td colspan="2"><h2><a name="friends"></a>
Friends</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a6db9d28bd448a131448276ee03de1e6d">Node</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#aafbcbfe4643b58d157dc1a8c15004022">Geode</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html#a020cdc96e9410b9e732c51ee80aef08d">StateSet</a></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>Pure virtual base class for drawable geometry. </p>
<p>In OSG, everything that can be rendered is implemented as a class derived from <code><a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a></code>. The <code><a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a></code> class contains no drawing primitives, since these are provided by subclasses such as <code><a class="el" href="a00313.html">osg::Geometry</a></code>. </p>
<p>Notice that a <code><a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a></code> is not a <code><a class="el" href="a00491.html" title="Base class for all internal nodes in the scene graph.">Node</a></code>, and therefore it cannot be directly added to a scene graph. Instead, <code><a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a></code>s are attached to <code><a class="el" href="a00311.html" title="A Geode is a &quot;geometry node&quot;, that is, a leaf node on the scene graph that can have &quot;r...">Geode</a></code>s, which are scene graph nodes. </p>
<p>The OpenGL state that must be used when rendering a <code><a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a></code> is represented by a <code><a class="el" href="a00746.html" title="Stores a set of modes and attributes which represent a set of OpenGL state.">StateSet</a></code>. Since a <code><a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a></code> has a reference (<code><a class="el" href="a00624.html" title="Smart pointer for handling referenced counted objects.">osg::ref_ptr</a></code>) to a <code><a class="el" href="a00746.html" title="Stores a set of modes and attributes which represent a set of OpenGL state.">StateSet</a></code>, <code><a class="el" href="a00746.html" title="Stores a set of modes and attributes which represent a set of OpenGL state.">StateSet</a></code>s can be shared between different <code><a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a></code>s. In fact, sharing <code><a class="el" href="a00746.html" title="Stores a set of modes and attributes which represent a set of OpenGL state.">StateSet</a></code>s is a good way to improve performance, since this allows OSG to reduce the number of expensive changes in the OpenGL state. </p>
<p>Finally, <code><a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a></code>s can also be shared between different <code><a class="el" href="a00311.html" title="A Geode is a &quot;geometry node&quot;, that is, a leaf node on the scene graph that can have &quot;r...">Geode</a></code>s, so that the same geometry (loaded to memory just once) can be used in different parts of the scene graph. </p>
<hr/><h2>Member Typedef Documentation</h2>
<a class="anchor" id="ad4b10a7b6bb2195883d4804e84d0b639"></a><!-- doxytag: member="osg::Drawable::AttributeType" ref="ad4b10a7b6bb2195883d4804e84d0b639" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef unsigned int <a class="el" href="a00216.html#ad4b10a7b6bb2195883d4804e84d0b639">osg::Drawable::AttributeType</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="afe510be70e85e468c7b4d680b4c9c731"></a><!-- doxytag: member="osg::Drawable::GLObjectList" ref="afe510be70e85e468c7b4d680b4c9c731" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="a00078.html">osg::buffered_value</a>&lt;GLuint&gt; <a class="el" href="a00078.html">osg::Drawable::GLObjectList</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a102db6385b2b1cc908bbad35a580d1e9"></a><!-- doxytag: member="osg::Drawable::ParentList" ref="a102db6385b2b1cc908bbad35a580d1e9" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::vector&lt;<a class="el" href="a00491.html">Node</a>*&gt; <a class="el" href="a00216.html#a102db6385b2b1cc908bbad35a580d1e9">osg::Drawable::ParentList</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A vector of <a class="el" href="a00491.html" title="Base class for all internal nodes in the scene graph.">osg::Node</a> pointers which is used to store the parent(s) of drawable. </p>

</div>
</div>
<hr/><h2>Member Enumeration Documentation</h2>
<a class="anchor" id="acc6ce3654c54f846bec881244f571b18"></a><!-- doxytag: member="osg::Drawable::AttributeTypes" ref="acc6ce3654c54f846bec881244f571b18" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="a00216.html#acc6ce3654c54f846bec881244f571b18">osg::Drawable::AttributeTypes</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="acc6ce3654c54f846bec881244f571b18afe125c8438f6c2f9e402e71823ba315b"></a><!-- doxytag: member="VERTICES" ref="acc6ce3654c54f846bec881244f571b18afe125c8438f6c2f9e402e71823ba315b" args="" -->VERTICES</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="acc6ce3654c54f846bec881244f571b18a0b9bd86ab4443b64c77f5f97508f1af5"></a><!-- doxytag: member="WEIGHTS" ref="acc6ce3654c54f846bec881244f571b18a0b9bd86ab4443b64c77f5f97508f1af5" args="" -->WEIGHTS</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="acc6ce3654c54f846bec881244f571b18a0db2f5a23e4d2778f27fc779d1824d08"></a><!-- doxytag: member="NORMALS" ref="acc6ce3654c54f846bec881244f571b18a0db2f5a23e4d2778f27fc779d1824d08" args="" -->NORMALS</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="acc6ce3654c54f846bec881244f571b18a21ad3f36e449ff1c1c8c26598d6dc11c"></a><!-- doxytag: member="COLORS" ref="acc6ce3654c54f846bec881244f571b18a21ad3f36e449ff1c1c8c26598d6dc11c" args="" -->COLORS</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="acc6ce3654c54f846bec881244f571b18a9c9856a68ff94ebc2db902a0ecde911e"></a><!-- doxytag: member="SECONDARY_COLORS" ref="acc6ce3654c54f846bec881244f571b18a9c9856a68ff94ebc2db902a0ecde911e" args="" -->SECONDARY_COLORS</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="acc6ce3654c54f846bec881244f571b18a8669a56c606c1367b41357bf238950af"></a><!-- doxytag: member="FOG_COORDS" ref="acc6ce3654c54f846bec881244f571b18a8669a56c606c1367b41357bf238950af" args="" -->FOG_COORDS</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="acc6ce3654c54f846bec881244f571b18aabaa3713b18bf70c547361a1de5b8c21"></a><!-- doxytag: member="ATTRIBUTE_6" ref="acc6ce3654c54f846bec881244f571b18aabaa3713b18bf70c547361a1de5b8c21" args="" -->ATTRIBUTE_6</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="acc6ce3654c54f846bec881244f571b18a761c6ddb87536ccacd46a708495ee899"></a><!-- doxytag: member="ATTRIBUTE_7" ref="acc6ce3654c54f846bec881244f571b18a761c6ddb87536ccacd46a708495ee899" args="" -->ATTRIBUTE_7</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="acc6ce3654c54f846bec881244f571b18a30b9caa90f88db92c8557e67d7c7f213"></a><!-- doxytag: member="TEXTURE_COORDS" ref="acc6ce3654c54f846bec881244f571b18a30b9caa90f88db92c8557e67d7c7f213" args="" -->TEXTURE_COORDS</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="acc6ce3654c54f846bec881244f571b18a7095f01a2d6f442db9644c81000fb7b9"></a><!-- doxytag: member="TEXTURE_COORDS_0" ref="acc6ce3654c54f846bec881244f571b18a7095f01a2d6f442db9644c81000fb7b9" args="" -->TEXTURE_COORDS_0</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="acc6ce3654c54f846bec881244f571b18a5e53db142958d232aa8082ad223e844e"></a><!-- doxytag: member="TEXTURE_COORDS_1" ref="acc6ce3654c54f846bec881244f571b18a5e53db142958d232aa8082ad223e844e" args="" -->TEXTURE_COORDS_1</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="acc6ce3654c54f846bec881244f571b18a27799c24c73a382ae283ce3800360854"></a><!-- doxytag: member="TEXTURE_COORDS_2" ref="acc6ce3654c54f846bec881244f571b18a27799c24c73a382ae283ce3800360854" args="" -->TEXTURE_COORDS_2</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="acc6ce3654c54f846bec881244f571b18a11880e45a4614833e7c842e9a9b9eb65"></a><!-- doxytag: member="TEXTURE_COORDS_3" ref="acc6ce3654c54f846bec881244f571b18a11880e45a4614833e7c842e9a9b9eb65" args="" -->TEXTURE_COORDS_3</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="acc6ce3654c54f846bec881244f571b18a6a09e7fc11ca3f96cc69d0132b042f9d"></a><!-- doxytag: member="TEXTURE_COORDS_4" ref="acc6ce3654c54f846bec881244f571b18a6a09e7fc11ca3f96cc69d0132b042f9d" args="" -->TEXTURE_COORDS_4</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="acc6ce3654c54f846bec881244f571b18a69adf6895f37a3228ff8c4a25f2efcc3"></a><!-- doxytag: member="TEXTURE_COORDS_5" ref="acc6ce3654c54f846bec881244f571b18a69adf6895f37a3228ff8c4a25f2efcc3" args="" -->TEXTURE_COORDS_5</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="acc6ce3654c54f846bec881244f571b18ab3986b42e78f1012c3774397f81bb76a"></a><!-- doxytag: member="TEXTURE_COORDS_6" ref="acc6ce3654c54f846bec881244f571b18ab3986b42e78f1012c3774397f81bb76a" args="" -->TEXTURE_COORDS_6</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="acc6ce3654c54f846bec881244f571b18ab3ce816f9cf24d4a5cc21fbc0d06a79d"></a><!-- doxytag: member="TEXTURE_COORDS_7" ref="acc6ce3654c54f846bec881244f571b18ab3ce816f9cf24d4a5cc21fbc0d06a79d" args="" -->TEXTURE_COORDS_7</em>&nbsp;</td><td>
</td></tr>
</table>
</dd>
</dl>

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

</div>
</div>
<a class="anchor" id="a1c2249520539ddaefb3a1ac19b8c6f4b"></a><!-- doxytag: member="osg::Drawable::Drawable" ref="a1c2249520539ddaefb3a1ac19b8c6f4b" args="(const Drawable &amp;drawable, const CopyOp &amp;copyop=CopyOp::SHALLOW_COPY)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">osg::Drawable::Drawable </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00216.html">Drawable</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>drawable</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="a00169.html">CopyOp</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>copyop</em> = <code>CopyOp::SHALLOW_COPY</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Copy constructor using <a class="el" href="a00169.html" title="Copy Op(erator) used to control whether shallow or deep copy is used during copy construction and clo...">CopyOp</a> to manage deep vs shallow copy. </p>

</div>
</div>
<a class="anchor" id="a2dcbff655c6230edb9222f88f020cb81"></a><!-- doxytag: member="osg::Drawable::~Drawable" ref="a2dcbff655c6230edb9222f88f020cb81" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual osg::Drawable::~Drawable </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a1cbf45c341f9beb660f63aa7542d5867"></a><!-- doxytag: member="osg::Drawable::accept" ref="a1cbf45c341f9beb660f63aa7542d5867" args="(AttributeFunctor &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void osg::Drawable::accept </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00039.html">AttributeFunctor</a> &amp;&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>accept an <a class="el" href="a00039.html">AttributeFunctor</a> and call its methods to tell it about the internal attributes that this <a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a> has. </p>
<p>return true if functor handled by drawable, return false on failure of drawable to generate functor calls. </p>

<p>Reimplemented in <a class="el" href="a00313.html#a04e29cdcd486fcc78479c37302fbcc0b">osg::Geometry</a>.</p>

</div>
</div>
<a class="anchor" id="a3d7e811c81896356bd1854905c2b874f"></a><!-- doxytag: member="osg::Drawable::accept" ref="a3d7e811c81896356bd1854905c2b874f" args="(ConstAttributeFunctor &amp;) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void osg::Drawable::accept </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00141.html">ConstAttributeFunctor</a> &amp;&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Accept an <a class="el" href="a00039.html">AttributeFunctor</a> and call its methods to tell it about the internal attributes that this <a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a> has. </p>
<p>return true if functor handled by drawable, return false on failure of drawable to generate functor calls. </p>

<p>Reimplemented in <a class="el" href="a00313.html#a3c9b8caf34410d2c1a90f0be33a0bd1a">osg::Geometry</a>, <a class="el" href="a00714.html#a778c0661e17d16923214b56af5871520">osg::ShapeDrawable</a>, and <a class="el" href="a00892.html#a7150c2b5c1e53b4c35244c113d2fd5e2">osgText::Text</a>.</p>

</div>
</div>
<a class="anchor" id="a09bfec0d087dfe506a7bd8cdac00d3c8"></a><!-- doxytag: member="osg::Drawable::accept" ref="a09bfec0d087dfe506a7bd8cdac00d3c8" args="(PrimitiveFunctor &amp;) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void osg::Drawable::accept </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00577.html">PrimitiveFunctor</a> &amp;&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Accept a <a class="el" href="a00577.html" title="A PrimitiveFunctor is used (in conjunction with osg::Drawable::accept (PrimitiveFunctor&amp;)) to get...">PrimitiveFunctor</a> and call its methods to tell it about the internal primitives that this <a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a> has. </p>
<p>return true if functor handled by drawable, return false on failure of drawable to generate functor calls. Note, PrimtiveFunctor only provides const access of the primitives, as primitives may be procedurally generated so one cannot modify it. </p>

<p>Reimplemented in <a class="el" href="a00313.html#a862470ae340fc8fc544e318e71d7ab59">osg::Geometry</a>, <a class="el" href="a00714.html#a2ffdfcd5054c79ae0ec7fd02d690a983">osg::ShapeDrawable</a>, <a class="el" href="a00573.html#aa155f4da7bd9f62e6546cfa530e15094">osgParticle::PrecipitationEffect::PrecipitationDrawable</a>, <a class="el" href="a00364.html#a1ae84db6778ac840428ce38d1b21a747">osgSim::ImpostorSprite</a>, and <a class="el" href="a00892.html#aed8de2e25f0ab47652f438fd422477e5">osgText::Text</a>.</p>

</div>
</div>
<a class="anchor" id="a2d1e6797db7e76049d77bd9f4ac11e86"></a><!-- doxytag: member="osg::Drawable::accept" ref="a2d1e6797db7e76049d77bd9f4ac11e86" args="(PrimitiveIndexFunctor &amp;) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void osg::Drawable::accept </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00578.html">PrimitiveIndexFunctor</a> &amp;&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Accept a <a class="el" href="a00578.html">PrimitiveIndexFunctor</a> and call its methods to tell it about the internal primitives that this <a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a> has. </p>
<p>return true if functor handled by drawable, return false on failure of drawable to generate functor calls. Note, PrimtiveIndexFunctor only provide const access of the primitives, as primitives may be procedurally generated so one cannot modify it. </p>

<p>Reimplemented in <a class="el" href="a00313.html#a1c52ff2e9c16e3ab8ce4cd2d85e3ece6">osg::Geometry</a>, and <a class="el" href="a00573.html#a8fc597d2bf0c510a5bd095005b8cc2e9">osgParticle::PrecipitationEffect::PrecipitationDrawable</a>.</p>

</div>
</div>
<a class="anchor" id="a0119351ce6381ada5fd04a95d52c2e04"></a><!-- doxytag: member="osg::Drawable::addParent" ref="a0119351ce6381ada5fd04a95d52c2e04" args="(osg::Node *node)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void osg::Drawable::addParent </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00491.html">osg::Node</a> *&nbsp;</td>
          <td class="paramname"> <em>node</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ace6d464248a4af505b5f5ffb71ca42a8"></a><!-- doxytag: member="osg::Drawable::asGeometry" ref="ace6d464248a4af505b5f5ffb71ca42a8" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="a00313.html">Geometry</a>* osg::Drawable::asGeometry </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Convert 'this' into a <a class="el" href="a00313.html">Geometry</a> pointer if <a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a> is a <a class="el" href="a00313.html">Geometry</a>, otherwise return 0. </p>
<p>Equivalent to dynamic_cast&lt;Geometry*&gt;(this). </p>

<p>Reimplemented in <a class="el" href="a00313.html#a59fea1b6a27a76aa8e3e140b3b0cd237">osg::Geometry</a>.</p>

</div>
</div>
<a class="anchor" id="abe2e0ae2cbbb01f9de9fc65bc81ac702"></a><!-- doxytag: member="osg::Drawable::asGeometry" ref="abe2e0ae2cbbb01f9de9fc65bc81ac702" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="a00313.html">Geometry</a>* osg::Drawable::asGeometry </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Convert 'const this' into a const <a class="el" href="a00313.html">Geometry</a> pointer if <a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a> is a <a class="el" href="a00313.html">Geometry</a>, otherwise return 0. </p>
<p>Equivalent to dynamic_cast&lt;const Geometry*&gt;(this). </p>

<p>Reimplemented in <a class="el" href="a00313.html#a5b0b24c5be78ed8ea54063c11a40953e">osg::Geometry</a>.</p>

</div>
</div>
<a class="anchor" id="ae3a829d26cd9882f17cb45e64bb71bf4"></a><!-- doxytag: member="osg::Drawable::className" ref="ae3a829d26cd9882f17cb45e64bb71bf4" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const char* osg::Drawable::className </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>return the name of the object's class type. </p>
<p>Must be defined by derived classes. </p>

<p>Implements <a class="el" href="a00500.html#a0a2c199f26fdd9ca9fc60d6c79827187">osg::Object</a>.</p>

<p>Reimplemented in <a class="el" href="a00228.html#a7a242a09419ef56875a6243c35bb8271">osg::DrawPixels</a>, <a class="el" href="a00313.html#ad6d587aa9c9c1938b7887184b2045f1b">osg::Geometry</a>, <a class="el" href="a00714.html#ad7e5ea73dd31b80ea0b614f70e5772ca">osg::ShapeDrawable</a>, <a class="el" href="a00508.html#a6a0d7776447711a04b77f6c3cee757cb">osgShadow::OccluderGeometry</a>, <a class="el" href="a00709.html#a7ca39fa345f2e0db92584b74c93bea27">osgShadow::ShadowVolumeGeometry</a>, <a class="el" href="a00364.html#af9292c3d8a0d7f32aecf8660e9a467b6">osgSim::ImpostorSprite</a>, <a class="el" href="a00892.html#a844042cc8814617dfd6ad5e8d0ad96e5">osgText::Text</a>, <a class="el" href="a00894.html#affd745e3aa10289a827c2ed405d78210">osgText::TextBase</a>, and <a class="el" href="a00478.html#a313e288dd21e521c6c7fe59b622b6727">osgAnimation::MorphGeometry</a>.</p>

</div>
</div>
<a class="anchor" id="a1477f82653ab0a6e2e138abf63ed9bfc"></a><!-- doxytag: member="osg::Drawable::compileGLObjects" ref="a1477f82653ab0a6e2e138abf63ed9bfc" args="(RenderInfo &amp;renderInfo) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void osg::Drawable::compileGLObjects </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00653.html">RenderInfo</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>renderInfo</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Immediately compile this <code><a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a></code> into an OpenGL Display List. </p>
<dl class="note"><dt><b>Note:</b></dt><dd><a class="el" href="a00513.html" title="Base class for implementing graphics operations.">Operation</a> is ignored if <code>_useDisplayList</code> is <code>false</code>. </dd></dl>

</div>
</div>
<a class="anchor" id="a0e2875e665456b88fa39b10cb04e26c5"></a><!-- doxytag: member="osg::Drawable::computeBound" ref="a0e2875e665456b88fa39b10cb04e26c5" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="a00069.html">BoundingBox</a> osg::Drawable::computeBound </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Compute the bounding box around Drawables's geometry. </p>

<p>Reimplemented in <a class="el" href="a00228.html#a5f4ad3c7c1b6be9df7a2f5a429d9a308">osg::DrawPixels</a>, <a class="el" href="a00714.html#a510eadc8d05cfa79b75cf2b1b0191fa1">osg::ShapeDrawable</a>, <a class="el" href="a00542.html#accbdeda7c5d182cbf1f60004f72b0afe">osgParticle::ParticleSystem</a>, <a class="el" href="a00508.html#acaa61756e71a144a88614a0bdf1bd248">osgShadow::OccluderGeometry</a>, <a class="el" href="a00709.html#acc7aad28095b24acff536988576f980f">osgShadow::ShadowVolumeGeometry</a>, <a class="el" href="a00364.html#af31d9ac03cdeb6a9262be220a2091a5f">osgSim::ImpostorSprite</a>, <a class="el" href="a00893.html#a6e8ab3e75d605e4fb7ad0cfb1db7e03b">osgText::Text3D</a>, and <a class="el" href="a00894.html#af1c136af0369badd5ebee42e56ec7a64">osgText::TextBase</a>.</p>

</div>
</div>
<a class="anchor" id="afa5707d887703da8abadf1b34b391ffc"></a><!-- doxytag: member="osg::Drawable::computeDataVariance" ref="afa5707d887703da8abadf1b34b391ffc" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void osg::Drawable::computeDataVariance </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Compute the DataVariance based on an assessment of callback etc. </p>

<p>Reimplemented from <a class="el" href="a00500.html#a9dd06b2fb95870a0ae4d02af1776027a">osg::Object</a>.</p>

</div>
</div>
<a class="anchor" id="a3ce56130ab354cd28e50407c278cf6ea"></a><!-- doxytag: member="osg::Drawable::deleteDisplayList" ref="a3ce56130ab354cd28e50407c278cf6ea" args="(unsigned int contextID, GLuint globj, unsigned int sizeHint=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void osg::Drawable::deleteDisplayList </td>
          <td>(</td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>contextID</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">GLuint&nbsp;</td>
          <td class="paramname"> <em>globj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>sizeHint</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Use deleteDisplayList instead of glDeleteList to allow OpenGL display list to be cached until they can be deleted by the OpenGL context in which they were created, specified by contextID. </p>

</div>
</div>
<a class="anchor" id="a06593cd77f7e3e22cd1a87132f95a2b4"></a><!-- doxytag: member="osg::Drawable::dirtyBound" ref="a06593cd77f7e3e22cd1a87132f95a2b4" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void osg::Drawable::dirtyBound </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Dirty the bounding box, forcing a <a class="el" href="a00216.html#a0e2875e665456b88fa39b10cb04e26c5" title="Compute the bounding box around Drawables&#39;s geometry.">computeBound()</a> on the next call to <a class="el" href="a00216.html#a9676dc14a029baf3b5ce35bdcbcb1343" title="Get BoundingBox of Drawable.">getBound()</a>. </p>
<p>Should be called in the internal geometry of the <a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a> is modified. </p>

</div>
</div>
<a class="anchor" id="a3de93f843ddacfda4ef63620e11dabfb"></a><!-- doxytag: member="osg::Drawable::dirtyDisplayList" ref="a3de93f843ddacfda4ef63620e11dabfb" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void osg::Drawable::dirtyDisplayList </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Force a recompile on next <a class="el" href="a00216.html#a40d8d1b5503ee4c996632a23873c5573" title="Draw OpenGL primitives.">draw()</a> of any OpenGL display list associated with this geoset. </p>

<p>Reimplemented in <a class="el" href="a00313.html#a2f1f3bb5e2e60a993afd8aa82fd0dbe1">osg::Geometry</a>.</p>

</div>
</div>
<a class="anchor" id="ada2f8d500cbd15127569c133a312e864"></a><!-- doxytag: member="osg::Drawable::discardAllDeletedDisplayLists" ref="ada2f8d500cbd15127569c133a312e864" args="(unsigned int contextID)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void osg::Drawable::discardAllDeletedDisplayLists </td>
          <td>(</td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>contextID</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Flush all the cached display list which need to be deleted in the OpenGL context related to contextID. </p>
<p>Note, unlike flush no OpenGL calls are made, instead the handles are all removed. this call is useful for when an OpenGL context has been destroyed. </p>

</div>
</div>
<a class="anchor" id="a40d8d1b5503ee4c996632a23873c5573"></a><!-- doxytag: member="osg::Drawable::draw" ref="a40d8d1b5503ee4c996632a23873c5573" args="(RenderInfo &amp;renderInfo) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void osg::Drawable::draw </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00653.html">RenderInfo</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>renderInfo</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Draw OpenGL primitives. </p>
<p>If the <code><a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a></code> has <code>_useDisplayList</code> set to <code>true</code>, then use an OpenGL display list, automatically compiling one if required. Otherwise, call <code><a class="el" href="a00216.html#ae4e59643622ad16b33712ed3bbbb48f9" title="drawImplementation(RenderInfo&amp;) is a pure virtual method for the actual implementation of OpenGL ...">drawImplementation()</a></code>. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>This method should <em>not</em> be overridden in subclasses, as it manages the optional display list (notice this is not even <code>virtual</code>). Subclasses should override <code><a class="el" href="a00216.html#ae4e59643622ad16b33712ed3bbbb48f9" title="drawImplementation(RenderInfo&amp;) is a pure virtual method for the actual implementation of OpenGL ...">drawImplementation()</a></code> instead. </dd></dl>

<p>References <a class="el" href="a00216.html#a412cadf71e56a9644ecc63f84e9373cd">_drawCallback</a>, <a class="el" href="a00216.html#aa7b8cf5da01cf95945ad0aceb9adffab">_globjList</a>, <a class="el" href="a00216.html#af35c975fcaca25bd664b42524bf9e51c">_supportsVertexBufferObjects</a>, <a class="el" href="a00216.html#abfe93518facf0e7e1534ed2590b6ff11">_useDisplayList</a>, <a class="el" href="a00216.html#addbe191865d034403b1845ad0e5c3826">_useVertexBufferObjects</a>, <a class="el" href="a00216.html#ae4e59643622ad16b33712ed3bbbb48f9">drawImplementation()</a>, <a class="el" href="a00216.html#a1b200dff2dd564798598b1728f92bf7f">generateDisplayList()</a>, <a class="el" href="a00653.html#ad15d9d8b5941b47c65de237a7abfc5e7">osg::RenderInfo::getContextID()</a>, <a class="el" href="a00216.html#adcd67f7bbba757a55860353ce32dd8f7">getGLObjectSizeHint()</a>, <a class="el" href="a00653.html#a40644967d1433c925acb66ac7adb0a63">osg::RenderInfo::getState()</a>, <a class="el" href="a00742.html#a5a0d5d72fa33c3b4dab33224f5bfb0f4">osg::State::isVertexBufferObjectSupported()</a>, and <a class="el" href="a00624.html#abe0fb8a6c01e635d22cdf256e34ef85d">osg::ref_ptr&lt; T &gt;::valid()</a>.</p>

</div>
</div>
<a class="anchor" id="ae4e59643622ad16b33712ed3bbbb48f9"></a><!-- doxytag: member="osg::Drawable::drawImplementation" ref="ae4e59643622ad16b33712ed3bbbb48f9" args="(RenderInfo &amp;renderInfo) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void osg::Drawable::drawImplementation </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00653.html">RenderInfo</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>renderInfo</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>drawImplementation(RenderInfo&amp;) is a pure virtual method for the actual implementation of OpenGL drawing calls, such as vertex arrays and primitives, that must be implemented in concrete subclasses of the <a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a> base class, examples include <a class="el" href="a00313.html">osg::Geometry</a> and <a class="el" href="a00714.html" title="Allow the use of Shapes as Drawables, so that they can be rendered with reduced effort.">osg::ShapeDrawable</a>. </p>
<p>drawImplementation(RenderInfo&amp;) is called from the draw(RenderInfo&amp;) method, with the draw method handling management of OpenGL display lists, and drawImplementation(RenderInfo&amp;) handling the actual drawing itself. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>renderInfo</em>&nbsp;</td><td>The <a class="el" href="a00653.html">osg::RenderInfo</a> object that encapsulates the current rendering information including the <a class="el" href="a00742.html" title="Encapsulates the current applied OpenGL modes, attributes and vertex arrays settings, implements lazy state updating and provides accessors for querying the current state.">osg::State</a> OpenGL state for the current graphics context. </td></tr>
  </table>
  </dd>
</dl>

<p>Implemented in <a class="el" href="a00228.html#a3bc5b9d9dcdca953f2405daa85a662ac">osg::DrawPixels</a>, <a class="el" href="a00313.html#a4c45ef29cd12b9b75b0f104e308085d8">osg::Geometry</a>, <a class="el" href="a00714.html#a9d1cd77b621398c48a657858756c1944">osg::ShapeDrawable</a>, <a class="el" href="a00138.html#a593245f5d667f9cce8d8a9b4f922bfce">osgParticle::ConnectedParticleSystem</a>, <a class="el" href="a00542.html#a6352ceb36027c695627be4d9c3e9b6f5">osgParticle::ParticleSystem</a>, <a class="el" href="a00573.html#a40cf2c37440fa1701a41826acd821ad7">osgParticle::PrecipitationEffect::PrecipitationDrawable</a>, <a class="el" href="a00508.html#a7c0fda1fbbae055979ae2fc9bd295f5c">osgShadow::OccluderGeometry</a>, <a class="el" href="a00709.html#aa346883627b3cec09c3a04727eb2d286">osgShadow::ShadowVolumeGeometry</a>, <a class="el" href="a00364.html#a763466046d7922d8b0515fa24b33271e">osgSim::ImpostorSprite</a>, <a class="el" href="a00279.html#abc50e5bccef68388496e555bb0e4d1f6">osgText::FadeText</a>, <a class="el" href="a00892.html#a936d7fde0b4b1e269937ea693116309a">osgText::Text</a>, <a class="el" href="a00893.html#a4fa4080dfdafea1031d81e2813372668">osgText::Text3D</a>, and <a class="el" href="a00661.html#ab2515158c0b452d7c96cf3c83f1ee8ef">osgAnimation::RigGeometry</a>.</p>

<p>Referenced by <a class="el" href="a00216.html#a40d8d1b5503ee4c996632a23873c5573">draw()</a>.</p>

</div>
</div>
<a class="anchor" id="aa12334841b007b2d5cb9efcd408d1ccb"></a><!-- doxytag: member="osg::Drawable::flushAllDeletedDisplayLists" ref="aa12334841b007b2d5cb9efcd408d1ccb" args="(unsigned int contextID)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void osg::Drawable::flushAllDeletedDisplayLists </td>
          <td>(</td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>contextID</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Flush all the cached display list which need to be deleted in the OpenGL context related to contextID. </p>

</div>
</div>
<a class="anchor" id="abfcb605a8fd854f4593f688b889fc063"></a><!-- doxytag: member="osg::Drawable::flushDeletedDisplayLists" ref="abfcb605a8fd854f4593f688b889fc063" args="(unsigned int contextID, double &amp;availableTime)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void osg::Drawable::flushDeletedDisplayLists </td>
          <td>(</td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>contextID</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&nbsp;</td>
          <td class="paramname"> <em>availableTime</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Flush the cached display list which need to be deleted in the OpenGL context related to contextID. </p>

</div>
</div>
<a class="anchor" id="a1b200dff2dd564798598b1728f92bf7f"></a><!-- doxytag: member="osg::Drawable::generateDisplayList" ref="a1b200dff2dd564798598b1728f92bf7f" args="(unsigned int contextID, unsigned int sizeHint=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static GLuint osg::Drawable::generateDisplayList </td>
          <td>(</td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>contextID</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>sizeHint</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return a OpenGL display list handle a newly generated or reused from display list cache. </p>

<p>Referenced by <a class="el" href="a00216.html#a40d8d1b5503ee4c996632a23873c5573">draw()</a>.</p>

</div>
</div>
<a class="anchor" id="a9676dc14a029baf3b5ce35bdcbcb1343"></a><!-- doxytag: member="osg::Drawable::getBound" ref="a9676dc14a029baf3b5ce35bdcbcb1343" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="a00069.html">BoundingBox</a>&amp; osg::Drawable::getBound </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get BoundingBox of <a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a>. </p>
<p>If the BoundingBox is not up to date then its updated via an internal call to computeBond(). </p>

</div>
</div>
<a class="anchor" id="ae6e7bb2cc096a0c29710789364c5a5d1"></a><!-- doxytag: member="osg::Drawable::getComputeBoundingBoxCallback" ref="ae6e7bb2cc096a0c29710789364c5a5d1" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00132.html">ComputeBoundingBoxCallback</a>* osg::Drawable::getComputeBoundingBoxCallback </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the compute bound callback. </p>

</div>
</div>
<a class="anchor" id="a05b3599718a10176b6ae78b09e9244a3"></a><!-- doxytag: member="osg::Drawable::getComputeBoundingBoxCallback" ref="a05b3599718a10176b6ae78b09e9244a3" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="a00132.html">ComputeBoundingBoxCallback</a>* osg::Drawable::getComputeBoundingBoxCallback </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the const compute bound callback. </p>

</div>
</div>
<a class="anchor" id="a9535297c5d1836244aa3ab83ddc8b610"></a><!-- doxytag: member="osg::Drawable::getCullCallback" ref="a9535297c5d1836244aa3ab83ddc8b610" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00177.html">CullCallback</a>* osg::Drawable::getCullCallback </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the non const <a class="el" href="a00177.html">CullCallback</a>. </p>

<p>Referenced by <a class="el" href="a00518.html#a9fa878833d882ad4934fb525fdab53a1">osgUtil::Optimizer::isOperationPermissibleForObjectImplementation()</a>.</p>

</div>
</div>
<a class="anchor" id="ab634f0ae52b70de00c375899797e157b"></a><!-- doxytag: member="osg::Drawable::getCullCallback" ref="ab634f0ae52b70de00c375899797e157b" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="a00177.html">CullCallback</a>* osg::Drawable::getCullCallback </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the const <a class="el" href="a00177.html">CullCallback</a>. </p>

</div>
</div>
<a class="anchor" id="a1ccb10f82d79c232f233c5599816373f"></a><!-- doxytag: member="osg::Drawable::getDisplayList" ref="a1ccb10f82d79c232f233c5599816373f" args="(unsigned int contextID) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GLuint&amp; osg::Drawable::getDisplayList </td>
          <td>(</td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>contextID</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return OpenGL display list for specified contextID. </p>

<p>Referenced by <a class="el" href="a00196.html#aaa1e3b9f7f70102678bfb120f97dde2a">osgDB::DatabasePager::isCompiled()</a>.</p>

</div>
</div>
<a class="anchor" id="aae48257764e101d9b6d95dd5b1e493af"></a><!-- doxytag: member="osg::Drawable::getDrawCallback" ref="aae48257764e101d9b6d95dd5b1e493af" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00219.html">DrawCallback</a>* osg::Drawable::getDrawCallback </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the non const <a class="el" href="a00219.html" title="Callback attached to an Drawable which allows the users to customize the drawing of an exist Drawable...">DrawCallback</a>. </p>

</div>
</div>
<a class="anchor" id="a6549cbf4e400cd4f7ac420b4137895a8"></a><!-- doxytag: member="osg::Drawable::getDrawCallback" ref="a6549cbf4e400cd4f7ac420b4137895a8" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="a00219.html">DrawCallback</a>* osg::Drawable::getDrawCallback </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the const <a class="el" href="a00219.html" title="Callback attached to an Drawable which allows the users to customize the drawing of an exist Drawable...">DrawCallback</a>. </p>

</div>
</div>
<a class="anchor" id="a37e95706f67feaeda528fff0e911af8a"></a><!-- doxytag: member="osg::Drawable::getEventCallback" ref="a37e95706f67feaeda528fff0e911af8a" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00255.html">EventCallback</a>* osg::Drawable::getEventCallback </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the non const <a class="el" href="a00255.html">EventCallback</a>. </p>

<p>Referenced by <a class="el" href="a00518.html#a9fa878833d882ad4934fb525fdab53a1">osgUtil::Optimizer::isOperationPermissibleForObjectImplementation()</a>.</p>

</div>
</div>
<a class="anchor" id="a104a6cc2776b1a808d52c21ae93ea4b8"></a><!-- doxytag: member="osg::Drawable::getEventCallback" ref="a104a6cc2776b1a808d52c21ae93ea4b8" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="a00255.html">EventCallback</a>* osg::Drawable::getEventCallback </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the const <a class="el" href="a00255.html">EventCallback</a>. </p>

</div>
</div>
<a class="anchor" id="a789c04364d62ebc63ce82cc94b0e63ae"></a><!-- doxytag: member="osg::Drawable::getExtensions" ref="a789c04364d62ebc63ce82cc94b0e63ae" args="(unsigned int contextID, bool createIfNotInitalized)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="a00266.html">Extensions</a>* osg::Drawable::getExtensions </td>
          <td>(</td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>contextID</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>createIfNotInitalized</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Function to call to get the extension of a specified context. </p>
<p>If the Extension object for that context has not yet been created and the 'createIfNotInitalized' flag been set to false then returns NULL. If 'createIfNotInitalized' is true then the <a class="el" href="a00266.html" title="Extensions class which encapsulates the querying of extensions and associated function pointers...">Extensions</a> object is automatically created. However, in this case the extension object is only created with the graphics context associated with ContextID.. </p>

</div>
</div>
<a class="anchor" id="adcd67f7bbba757a55860353ce32dd8f7"></a><!-- doxytag: member="osg::Drawable::getGLObjectSizeHint" ref="adcd67f7bbba757a55860353ce32dd8f7" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual unsigned int osg::Drawable::getGLObjectSizeHint </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the estimated size of GLObjects (display lists/vertex buffer objects) that are associated with this drawable. </p>
<p>This size is used a hint for reuse of deleted display lists/vertex buffer objects. </p>

<p>Reimplemented in <a class="el" href="a00313.html#a2d167745ddfdf1eb9c4b8e77c3e5e777">osg::Geometry</a>.</p>

<p>Referenced by <a class="el" href="a00216.html#a40d8d1b5503ee4c996632a23873c5573">draw()</a>.</p>

</div>
</div>
<a class="anchor" id="afec7e9ccc9182f9363a6b06dcdf61605"></a><!-- doxytag: member="osg::Drawable::getInitialBound" ref="afec7e9ccc9182f9363a6b06dcdf61605" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="a00069.html">BoundingBox</a>&amp; osg::Drawable::getInitialBound </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the initial bounding volume to use when computing the overall bounding volume. </p>

</div>
</div>
<a class="anchor" id="aa108026a71068f36e8882b6b5c7b5a80"></a><!-- doxytag: member="osg::Drawable::getMinimumNumberOfDisplayListsToRetainInCache" ref="aa108026a71068f36e8882b6b5c7b5a80" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static unsigned int osg::Drawable::getMinimumNumberOfDisplayListsToRetainInCache </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the minimum number of display lists to retain in the deleted display list cache. </p>

</div>
</div>
<a class="anchor" id="aaa5ede3f700b561cec08167db31a1428"></a><!-- doxytag: member="osg::Drawable::getNumChildrenRequiringEventTraversal" ref="aaa5ede3f700b561cec08167db31a1428" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int osg::Drawable::getNumChildrenRequiringEventTraversal </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="acf3f4578244ca1d8bbb9b851ff104ffa"></a><!-- doxytag: member="osg::Drawable::getNumChildrenRequiringUpdateTraversal" ref="acf3f4578244ca1d8bbb9b851ff104ffa" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int osg::Drawable::getNumChildrenRequiringUpdateTraversal </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ab44fb2b99696543002375626eb00901d"></a><!-- doxytag: member="osg::Drawable::getNumParents" ref="ab44fb2b99696543002375626eb00901d" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int osg::Drawable::getNumParents </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the number of parents of node. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>the number of parents of this node. </dd></dl>

</div>
</div>
<a class="anchor" id="aa6fdea576a02e0ee91e44d536181d6fb"></a><!-- doxytag: member="osg::Drawable::getOrCreateStateSet" ref="aa6fdea576a02e0ee91e44d536181d6fb" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00746.html">StateSet</a>* osg::Drawable::getOrCreateStateSet </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the attached const <a class="el" href="a00746.html" title="Stores a set of modes and attributes which represent a set of OpenGL state.">StateSet</a>, if one is not already attached create one, attach it to the drawable and return a pointer to it. </p>

</div>
</div>
<a class="anchor" id="ac6d2dbb22111d761334373e5ee0e2c93"></a><!-- doxytag: member="osg::Drawable::getParent" ref="ac6d2dbb22111d761334373e5ee0e2c93" args="(unsigned int i)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00491.html">Node</a>* osg::Drawable::getParent </td>
          <td>(</td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>i</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get a single parent of <a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a>. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>i</em>&nbsp;</td><td>index of the parent to get. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the parent i. </dd></dl>

</div>
</div>
<a class="anchor" id="abdb56f85f6ea64919c06840296faf197"></a><!-- doxytag: member="osg::Drawable::getParent" ref="abdb56f85f6ea64919c06840296faf197" args="(unsigned int i) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="a00491.html">Node</a>* osg::Drawable::getParent </td>
          <td>(</td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>i</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get a single const parent of <a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a>. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>i</em>&nbsp;</td><td>index of the parent to get. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the parent i. </dd></dl>

</div>
</div>
<a class="anchor" id="ad9784d7cbf9be0cc48e545b0a829b0cf"></a><!-- doxytag: member="osg::Drawable::getParents" ref="ad9784d7cbf9be0cc48e545b0a829b0cf" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="a00216.html#a102db6385b2b1cc908bbad35a580d1e9">ParentList</a>&amp; osg::Drawable::getParents </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the parent list of drawable. </p>

<p>Referenced by <a class="el" href="a01049.html#a14842829409ab456d94f462a812fdd24">osgAnimation::RigGeometry::UpdateVertex::update()</a>.</p>

</div>
</div>
<a class="anchor" id="ab6ec9359ebdb3fb676e632d810cbb0ba"></a><!-- doxytag: member="osg::Drawable::getParents" ref="ab6ec9359ebdb3fb676e632d810cbb0ba" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00216.html#a102db6385b2b1cc908bbad35a580d1e9">ParentList</a> osg::Drawable::getParents </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the a copy of parent list of node. </p>
<p>A copy is returned to prevent modification of the parent list. </p>

</div>
</div>
<a class="anchor" id="ac79d9cbccfe30e4cc3f01c0b9b6b2dc1"></a><!-- doxytag: member="osg::Drawable::getShape" ref="ac79d9cbccfe30e4cc3f01c0b9b6b2dc1" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00711.html">Shape</a>* osg::Drawable::getShape </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the <a class="el" href="a00711.html" title="Base class for all shape types.">Shape</a> of the <a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a>. </p>

</div>
</div>
<a class="anchor" id="a89e1bdaba8a24e451c4ee70c20e8ee42"></a><!-- doxytag: member="osg::Drawable::getShape" ref="a89e1bdaba8a24e451c4ee70c20e8ee42" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="a00711.html">Shape</a>* osg::Drawable::getShape </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the const <a class="el" href="a00711.html" title="Base class for all shape types.">Shape</a> of the const <a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a>. </p>

</div>
</div>
<a class="anchor" id="a15c72dca6a5907a4f933551ba3ee69f3"></a><!-- doxytag: member="osg::Drawable::getStateSet" ref="a15c72dca6a5907a4f933551ba3ee69f3" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00746.html">StateSet</a>* osg::Drawable::getStateSet </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the attached <a class="el" href="a00746.html" title="Stores a set of modes and attributes which represent a set of OpenGL state.">StateSet</a>. </p>

</div>
</div>
<a class="anchor" id="a9685fcf05f952dba240fb003769d4abe"></a><!-- doxytag: member="osg::Drawable::getStateSet" ref="a9685fcf05f952dba240fb003769d4abe" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="a00746.html">StateSet</a>* osg::Drawable::getStateSet </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the attached const <a class="el" href="a00746.html" title="Stores a set of modes and attributes which represent a set of OpenGL state.">StateSet</a>. </p>

</div>
</div>
<a class="anchor" id="a271130dd8c6ef6f7cc2b227ed1c6246e"></a><!-- doxytag: member="osg::Drawable::getSupportsDisplayList" ref="a271130dd8c6ef6f7cc2b227ed1c6246e" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool osg::Drawable::getSupportsDisplayList </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get whether display lists are supported for this drawable instance. </p>

</div>
</div>
<a class="anchor" id="a3588921aa3372c8eb75d0cbee990f13c"></a><!-- doxytag: member="osg::Drawable::getUpdateCallback" ref="a3588921aa3372c8eb75d0cbee990f13c" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a01042.html">UpdateCallback</a>* osg::Drawable::getUpdateCallback </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the non const <a class="el" href="a01042.html">UpdateCallback</a>. </p>

<p>Referenced by <a class="el" href="a00518.html#a9fa878833d882ad4934fb525fdab53a1">osgUtil::Optimizer::isOperationPermissibleForObjectImplementation()</a>.</p>

</div>
</div>
<a class="anchor" id="a16b5f05391aa75b1d6a8e9ef51c4286e"></a><!-- doxytag: member="osg::Drawable::getUpdateCallback" ref="a16b5f05391aa75b1d6a8e9ef51c4286e" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="a01042.html">UpdateCallback</a>* osg::Drawable::getUpdateCallback </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the const <a class="el" href="a01042.html">UpdateCallback</a>. </p>

</div>
</div>
<a class="anchor" id="a63398d06593b93c1fa7f82f285bb6c13"></a><!-- doxytag: member="osg::Drawable::getUseDisplayList" ref="a63398d06593b93c1fa7f82f285bb6c13" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool osg::Drawable::getUseDisplayList </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return whether OpenGL display lists are being used for rendering. </p>

<p>Referenced by <a class="el" href="a00196.html#aaa1e3b9f7f70102678bfb120f97dde2a">osgDB::DatabasePager::isCompiled()</a>.</p>

</div>
</div>
<a class="anchor" id="af40907e89c0612907a2b4de50651e822"></a><!-- doxytag: member="osg::Drawable::getUseVertexBufferObjects" ref="af40907e89c0612907a2b4de50651e822" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool osg::Drawable::getUseVertexBufferObjects </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return whether OpenGL vertex buffer objects should be used when supported by OpenGL driver. </p>

</div>
</div>
<a class="anchor" id="a1fc01ac1181d50f4f34b6cb404fe46f1"></a><!-- doxytag: member="osg::Drawable::getWorldMatrices" ref="a1fc01ac1181d50f4f34b6cb404fe46f1" args="(const osg::Node *haltTraversalAtNode=0) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a01628.html#a22d1eac701d86ccc45b1e9c1e676d3e2">MatrixList</a> osg::Drawable::getWorldMatrices </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00491.html">osg::Node</a> *&nbsp;</td>
          <td class="paramname"> <em>haltTraversalAtNode</em> = <code>0</code></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the list of matrices that transform this node from local coordinates to world coordinates. </p>
<p>The optional Node* haltTraversalAtNode allows the user to prevent traversal beyond a specifed node. </p>

</div>
</div>
<a class="anchor" id="a8009680e74956bcd028b9aa619432e94"></a><!-- doxytag: member="osg::Drawable::isSameKindAs" ref="a8009680e74956bcd028b9aa619432e94" args="(const Object *obj) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool osg::Drawable::isSameKindAs </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00500.html">Object</a> *&nbsp;</td>
          <td class="paramname"> <em>obj</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reimplemented from <a class="el" href="a00500.html#ac3b05ac28940dda755014a821b699f3a">osg::Object</a>.</p>

<p>Reimplemented in <a class="el" href="a00228.html#a7e04a6d9fce5aae4c5f9ba97c488603a">osg::DrawPixels</a>, <a class="el" href="a00313.html#ac96efaff5311c47aa82bc6deabb18121">osg::Geometry</a>, <a class="el" href="a00714.html#a84e3dc275fee42bf1dbc10e8d315c1ad">osg::ShapeDrawable</a>, <a class="el" href="a00508.html#ad65e89133498e138c221c06d462e05b7">osgShadow::OccluderGeometry</a>, <a class="el" href="a00709.html#af02b2f3fad31641b9c77e45df6258bc3">osgShadow::ShadowVolumeGeometry</a>, <a class="el" href="a00364.html#adb27bd71980c4da48ff21d492dba3873">osgSim::ImpostorSprite</a>, <a class="el" href="a00892.html#a8dadd5b1bf97e62a0a413b532ef7ad17">osgText::Text</a>, <a class="el" href="a00894.html#a264a6e818c3ce25c24c45a0da6f23cf2">osgText::TextBase</a>, and <a class="el" href="a00478.html#ab51ae6955faebbb23924bcb5fbb065d1">osgAnimation::MorphGeometry</a>.</p>

<p>References <a class="el" href="a01157.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

</div>
</div>
<a class="anchor" id="a664bf9a63de5efa65d44e6a8c77517ab"></a><!-- doxytag: member="osg::Drawable::libraryName" ref="a664bf9a63de5efa65d44e6a8c77517ab" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const char* osg::Drawable::libraryName </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>return the name of the object's library. </p>
<p>Must be defined by derived classes. The OpenSceneGraph convention is that the namespace of a library is the same as the library name. </p>

<p>Implements <a class="el" href="a00500.html#adac3709b960df44030d682dd1336413e">osg::Object</a>.</p>

<p>Reimplemented in <a class="el" href="a00228.html#a694ec00017648249bc93ea77380f2c79">osg::DrawPixels</a>, <a class="el" href="a00313.html#ab4f0b90803d0c794399ac7df8c3b796e">osg::Geometry</a>, <a class="el" href="a00714.html#a36ea88839f80552cba80b54481f7ef0f">osg::ShapeDrawable</a>, <a class="el" href="a00508.html#a74361d79433a92282afa17b38afa04be">osgShadow::OccluderGeometry</a>, <a class="el" href="a00709.html#a3838718b91a7df796f98ac821b661104">osgShadow::ShadowVolumeGeometry</a>, <a class="el" href="a00364.html#a55dccdd57770bcb86dad0b364b499e20">osgSim::ImpostorSprite</a>, <a class="el" href="a00892.html#a6a2e991605a4e22133f3afc6add42499">osgText::Text</a>, <a class="el" href="a00894.html#a32eac5f5d1027a9c4c30c2fa6efd06af">osgText::TextBase</a>, and <a class="el" href="a00478.html#a43dc97fb6fcf9dd18c881ed7eef80c2c">osgAnimation::MorphGeometry</a>.</p>

</div>
</div>
<a class="anchor" id="a388f0bc300763674e258b61d4c21402d"></a><!-- doxytag: member="osg::Drawable::operator=" ref="a388f0bc300763674e258b61d4c21402d" args="(const Drawable &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00216.html">Drawable</a>&amp; osg::Drawable::operator= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00216.html">Drawable</a> &amp;&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a41e26abe7f934904a4d65d753f4df046"></a><!-- doxytag: member="osg::Drawable::releaseGLObjects" ref="a41e26abe7f934904a4d65d753f4df046" args="(State *state=0) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void osg::Drawable::releaseGLObjects </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00742.html">State</a> *&nbsp;</td>
          <td class="paramname"> <em>state</em> = <code>0</code></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>If <a class="el" href="a00742.html" title="Encapsulates the current applied OpenGL modes, attributes and vertex arrays settings, implements lazy state updating and provides accessors for querying the current state.">State</a> is non-zero, this function releases OpenGL objects for the specified graphics context. </p>
<p>Otherwise, releases OpenGL objects for all graphics contexts. </p>

<p>Reimplemented from <a class="el" href="a00500.html#a9a372b2d2ccedae228f526d8409cda66">osg::Object</a>.</p>

<p>Reimplemented in <a class="el" href="a00313.html#a589c8f15a56c8ab75169b13f06e3953a">osg::Geometry</a>, <a class="el" href="a00892.html#a1cc98f35b0c21c3cf695f92260ece4a1">osgText::Text</a>, <a class="el" href="a00893.html#adb4559cc3e0882c5a6d75ddbebd1c00f">osgText::Text3D</a>, and <a class="el" href="a00894.html#a910b5320e766298964576ed066083f0b">osgText::TextBase</a>.</p>

</div>
</div>
<a class="anchor" id="a03d1d9cd8e9e607dd4529d76eb3be13c"></a><!-- doxytag: member="osg::Drawable::removeParent" ref="a03d1d9cd8e9e607dd4529d76eb3be13c" args="(osg::Node *node)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void osg::Drawable::removeParent </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00491.html">osg::Node</a> *&nbsp;</td>
          <td class="paramname"> <em>node</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="aa7c15fcb192c77067df1980d4981afa1"></a><!-- doxytag: member="osg::Drawable::requiresEventTraversal" ref="aa7c15fcb192c77067df1980d4981afa1" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool osg::Drawable::requiresEventTraversal </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return whether this <a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a> has event callbacks associated with it, and therefore must be traversed. </p>

</div>
</div>
<a class="anchor" id="a9eeb29489477eb86178f4044f6bdd96c"></a><!-- doxytag: member="osg::Drawable::requiresUpdateTraversal" ref="a9eeb29489477eb86178f4044f6bdd96c" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool osg::Drawable::requiresUpdateTraversal </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return whether this <a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a> has update callbacks associated with it, and therefore must be traversed. </p>

</div>
</div>
<a class="anchor" id="a2311177aea54373c67085e71f401a2cf"></a><!-- doxytag: member="osg::Drawable::resizeGLObjectBuffers" ref="a2311177aea54373c67085e71f401a2cf" args="(unsigned int maxSize)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void osg::Drawable::resizeGLObjectBuffers </td>
          <td>(</td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>maxSize</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Resize any per context GLObject buffers to specified size. </p>

<p>Reimplemented from <a class="el" href="a00500.html#aad5292689187427551b90ae7ef40b9a8">osg::Object</a>.</p>

<p>Reimplemented in <a class="el" href="a00313.html#aacace55026bb26403bcab15a05e53ceb">osg::Geometry</a>, <a class="el" href="a00892.html#ab973a1bf9d3d4599a4a68e8e9a18dcc8">osgText::Text</a>, <a class="el" href="a00893.html#a49412b6f2a81a3413ffddc661d8c0200">osgText::Text3D</a>, and <a class="el" href="a00894.html#a596bb502147022d93a87c93c42b8dbfe">osgText::TextBase</a>.</p>

</div>
</div>
<a class="anchor" id="a88922d827aa138f898f089915c44292f"></a><!-- doxytag: member="osg::Drawable::setBound" ref="a88922d827aa138f898f089915c44292f" args="(const BoundingBox &amp;bb) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void osg::Drawable::setBound </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00069.html">BoundingBox</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>bb</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>set the bounding box . </p>

</div>
</div>
<a class="anchor" id="a08b40baec8574aee5eb0571256667270"></a><!-- doxytag: member="osg::Drawable::setComputeBoundingBoxCallback" ref="a08b40baec8574aee5eb0571256667270" args="(ComputeBoundingBoxCallback *callback)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void osg::Drawable::setComputeBoundingBoxCallback </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00132.html">ComputeBoundingBoxCallback</a> *&nbsp;</td>
          <td class="paramname"> <em>callback</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the compute bound callback to override the default computeBound. </p>

</div>
</div>
<a class="anchor" id="a41abcf714b5a3680782cc670ae3c9d28"></a><!-- doxytag: member="osg::Drawable::setCullCallback" ref="a41abcf714b5a3680782cc670ae3c9d28" args="(CullCallback *cc)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void osg::Drawable::setCullCallback </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00177.html">CullCallback</a> *&nbsp;</td>
          <td class="paramname"> <em>cc</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the <a class="el" href="a00177.html">CullCallback</a> which allows users to customize the culling of <a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a> during the cull traversal. </p>

</div>
</div>
<a class="anchor" id="ac2dcdd06351e1045f310d84a9d447826"></a><!-- doxytag: member="osg::Drawable::setDrawCallback" ref="ac2dcdd06351e1045f310d84a9d447826" args="(DrawCallback *dc)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void osg::Drawable::setDrawCallback </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00219.html">DrawCallback</a> *&nbsp;</td>
          <td class="paramname"> <em>dc</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the <a class="el" href="a00219.html" title="Callback attached to an Drawable which allows the users to customize the drawing of an exist Drawable...">DrawCallback</a> which allows users to attach customize the drawing of existing <a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a> object. </p>

</div>
</div>
<a class="anchor" id="a04d5366f38fc6d74dfa73e015730fcab"></a><!-- doxytag: member="osg::Drawable::setEventCallback" ref="a04d5366f38fc6d74dfa73e015730fcab" args="(EventCallback *ac)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void osg::Drawable::setEventCallback </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00255.html">EventCallback</a> *&nbsp;</td>
          <td class="paramname"> <em>ac</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the <a class="el" href="a00255.html">EventCallback</a> which allows users to attach customize the updating of an object during the Event traversal. </p>

</div>
</div>
<a class="anchor" id="a1376d8e203bd5d9e312f7f76b166adbb"></a><!-- doxytag: member="osg::Drawable::setExtensions" ref="a1376d8e203bd5d9e312f7f76b166adbb" args="(unsigned int contextID, Extensions *extensions)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void osg::Drawable::setExtensions </td>
          <td>(</td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>contextID</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00266.html">Extensions</a> *&nbsp;</td>
          <td class="paramname"> <em>extensions</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>setExtensions allows users to override the extensions across graphics contexts. </p>
<p>typically used when you have different extensions supported across graphics pipes but need to ensure that they all use the same low common denominator extensions. </p>

</div>
</div>
<a class="anchor" id="a8e28111530fd3c9776516cd42399742a"></a><!-- doxytag: member="osg::Drawable::setInitialBound" ref="a8e28111530fd3c9776516cd42399742a" args="(const osg::BoundingBox &amp;bbox)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void osg::Drawable::setInitialBound </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00069.html">osg::BoundingBox</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>bbox</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the initial bounding volume to use when computing the overall bounding volume. </p>

</div>
</div>
<a class="anchor" id="ae9a5940638e2b3702fae305a2e571cbe"></a><!-- doxytag: member="osg::Drawable::setMinimumNumberOfDisplayListsToRetainInCache" ref="ae9a5940638e2b3702fae305a2e571cbe" args="(unsigned int minimum)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void osg::Drawable::setMinimumNumberOfDisplayListsToRetainInCache </td>
          <td>(</td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>minimum</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the minimum number of display lists to retain in the deleted display list cache. </p>

</div>
</div>
<a class="anchor" id="a726ef1747dd3e72ecf8262ea27e85ca8"></a><!-- doxytag: member="osg::Drawable::setNumChildrenRequiringEventTraversal" ref="a726ef1747dd3e72ecf8262ea27e85ca8" args="(unsigned int num)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void osg::Drawable::setNumChildrenRequiringEventTraversal </td>
          <td>(</td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>num</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ad7cb76099865963a5b3f0b42b8751d8e"></a><!-- doxytag: member="osg::Drawable::setNumChildrenRequiringUpdateTraversal" ref="ad7cb76099865963a5b3f0b42b8751d8e" args="(unsigned int num)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void osg::Drawable::setNumChildrenRequiringUpdateTraversal </td>
          <td>(</td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>num</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a1614e447638d5dd9232605242d4ec9f1"></a><!-- doxytag: member="osg::Drawable::setShape" ref="a1614e447638d5dd9232605242d4ec9f1" args="(Shape *shape)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void osg::Drawable::setShape </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00711.html">Shape</a> *&nbsp;</td>
          <td class="paramname"> <em>shape</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the <a class="el" href="a00711.html" title="Base class for all shape types.">Shape</a> of the <code><a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a></code>. </p>
<p>The shape can be used to speed up collision detection or as a guide for procedural geometry generation. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00711.html" title="Base class for all shape types.">osg::Shape</a>. </dd></dl>

</div>
</div>
<a class="anchor" id="a793437bf4d88a9234cb9b83700ddfda5"></a><!-- doxytag: member="osg::Drawable::setStateSet" ref="a793437bf4d88a9234cb9b83700ddfda5" args="(StateSet *stateset)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void osg::Drawable::setStateSet </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00746.html">StateSet</a> *&nbsp;</td>
          <td class="paramname"> <em>stateset</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the <a class="el" href="a00746.html" title="Stores a set of modes and attributes which represent a set of OpenGL state.">StateSet</a> attached to the <a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a>. </p>
<p>Previously attached <a class="el" href="a00746.html" title="Stores a set of modes and attributes which represent a set of OpenGL state.">StateSet</a> are automatically unreferenced on assignment of a new drawstate. </p>

</div>
</div>
<a class="anchor" id="ae339d231afe60976916d5011d0d63d18"></a><!-- doxytag: member="osg::Drawable::setSupportsDisplayList" ref="ae339d231afe60976916d5011d0d63d18" args="(bool flag)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void osg::Drawable::setSupportsDisplayList </td>
          <td>(</td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>flag</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the drawable so that it can or cannot be used in conjunction with OpenGL display lists. </p>
<p>When set to true, calls to <a class="el" href="a00216.html#a70ec3cfa4e43873207d116e84b1d2988" title="When set to true, force the draw method to use OpenGL Display List for rendering.">Drawable::setUseDisplayList</a>, whereas when set to false, no display lists can be created and calls to setUseDisplayList are ignored, and a warning is produced. The latter is typically used to guard against the switching on of display lists on objects with dynamic internal data such as continuous Level of Detail algorithms. </p>

</div>
</div>
<a class="anchor" id="a9a699c0ce7decce06d541e06d4067199"></a><!-- doxytag: member="osg::Drawable::setThreadSafeRefUnref" ref="a9a699c0ce7decce06d541e06d4067199" args="(bool threadSafe)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void osg::Drawable::setThreadSafeRefUnref </td>
          <td>(</td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>threadSafe</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set whether to use a mutex to ensure <a class="el" href="a00627.html#acafcbbae9e9d8bfcbc811cc6c36d1cf4" title="Increment the reference count by one, indicating that this object has another pointer which is refere...">ref()</a> and <a class="el" href="a00627.html#a0ee3c1293cceac54bfaabe7c541bcb68" title="Decrement the reference count by one, indicating that a pointer to this object is referencing it...">unref()</a> are thread safe. </p>

<p>Reimplemented from <a class="el" href="a00627.html#aafc0e0779a54c6fbd46bdade701d7fa2">osg::Referenced</a>.</p>

<p>Reimplemented in <a class="el" href="a00892.html#afe5b1590eee9bb9d354ab1f31c8d73de">osgText::Text</a>, <a class="el" href="a00893.html#a3d7fd0e2d11b41ed2e261d691b0669b1">osgText::Text3D</a>, and <a class="el" href="a00894.html#a4a556861372bde7c10a07df0c052c5fe">osgText::TextBase</a>.</p>

</div>
</div>
<a class="anchor" id="a08ef7a88aa216afff5b072bf03ae6969"></a><!-- doxytag: member="osg::Drawable::setUpdateCallback" ref="a08ef7a88aa216afff5b072bf03ae6969" args="(UpdateCallback *ac)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void osg::Drawable::setUpdateCallback </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a01042.html">UpdateCallback</a> *&nbsp;</td>
          <td class="paramname"> <em>ac</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the <a class="el" href="a01042.html">UpdateCallback</a> which allows users to attach customize the updating of an object during the update traversal. </p>

</div>
</div>
<a class="anchor" id="a70ec3cfa4e43873207d116e84b1d2988"></a><!-- doxytag: member="osg::Drawable::setUseDisplayList" ref="a70ec3cfa4e43873207d116e84b1d2988" args="(bool flag)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void osg::Drawable::setUseDisplayList </td>
          <td>(</td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>flag</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>When set to true, force the draw method to use OpenGL Display List for rendering. </p>
<p>If false, rendering directly. If the display list has not been compiled already, the next call to draw will automatically create the display list. </p>

</div>
</div>
<a class="anchor" id="ab2987761757e90d49b79b6de0003215f"></a><!-- doxytag: member="osg::Drawable::setUseVertexBufferObjects" ref="ab2987761757e90d49b79b6de0003215f" args="(bool flag)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void osg::Drawable::setUseVertexBufferObjects </td>
          <td>(</td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>flag</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>When set to true, ignore the <a class="el" href="a00216.html#a70ec3cfa4e43873207d116e84b1d2988" title="When set to true, force the draw method to use OpenGL Display List for rendering.">setUseDisplayList()</a> settings, and hints to the drawImplementation method to use OpenGL vertex buffer objects for rendering. </p>

<p>Reimplemented in <a class="el" href="a00313.html#ac2cd31325d281699600a338f4c3f3f44">osg::Geometry</a>.</p>

</div>
</div>
<a class="anchor" id="ae3fe1b7e1054367b861e49d55121c7b7"></a><!-- doxytag: member="osg::Drawable::supports" ref="ae3fe1b7e1054367b861e49d55121c7b7" args="(const PrimitiveIndexFunctor &amp;) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool osg::Drawable::supports </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00578.html">PrimitiveIndexFunctor</a> &amp;&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return true if the <a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a> subclass supports accept(PrimitiveIndexFunctor&amp;). </p>

<p>Reimplemented in <a class="el" href="a00313.html#a234dbdf3580441de94185693710f0a10">osg::Geometry</a>, and <a class="el" href="a00573.html#a95e41f913e4c15611e74a3f60fc67871">osgParticle::PrecipitationEffect::PrecipitationDrawable</a>.</p>

</div>
</div>
<a class="anchor" id="ac02f54bc3ce7e796cfdeb997ef6ff40f"></a><!-- doxytag: member="osg::Drawable::supports" ref="ac02f54bc3ce7e796cfdeb997ef6ff40f" args="(const ConstAttributeFunctor &amp;) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool osg::Drawable::supports </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00141.html">ConstAttributeFunctor</a> &amp;&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return true if the <a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a> subclass supports accept(ConstAttributeFunctor&amp;). </p>

<p>Reimplemented in <a class="el" href="a00313.html#a5492850f39995e92a18bcf9f2909faae">osg::Geometry</a>, <a class="el" href="a00714.html#a7d5a1efa310da4faa32799d90119fed3">osg::ShapeDrawable</a>, <a class="el" href="a00892.html#a11d704ceacb1f477a7b65adb05c73913">osgText::Text</a>, and <a class="el" href="a00893.html#a6cd8c15f18cbd9a0ed8f13f27bf2c8b3">osgText::Text3D</a>.</p>

</div>
</div>
<a class="anchor" id="a9706a830228cc223c7d84cd572cf0735"></a><!-- doxytag: member="osg::Drawable::supports" ref="a9706a830228cc223c7d84cd572cf0735" args="(const PrimitiveFunctor &amp;) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool osg::Drawable::supports </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00577.html">PrimitiveFunctor</a> &amp;&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return true if the <a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a> subclass supports accept(PrimitiveFunctor&amp;). </p>

<p>Reimplemented in <a class="el" href="a00313.html#a41e433867234ff76b0ba066027813894">osg::Geometry</a>, <a class="el" href="a00714.html#a33f55646ee0cc33365a2fcb0ab2f522d">osg::ShapeDrawable</a>, <a class="el" href="a00573.html#a427d417136bd9c7b101d5131fce67632">osgParticle::PrecipitationEffect::PrecipitationDrawable</a>, <a class="el" href="a00364.html#aeeff1f68a693165e95ed78852add4fb2">osgSim::ImpostorSprite</a>, <a class="el" href="a00892.html#a1ca209ae0517bd04d5860b529726427e">osgText::Text</a>, and <a class="el" href="a00893.html#ab5785dca0c5fa325ceef089c1911175f">osgText::Text3D</a>.</p>

</div>
</div>
<a class="anchor" id="a12e0ce80371470d598ccd1f88667f46c"></a><!-- doxytag: member="osg::Drawable::supports" ref="a12e0ce80371470d598ccd1f88667f46c" args="(const AttributeFunctor &amp;) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool osg::Drawable::supports </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00039.html">AttributeFunctor</a> &amp;&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return true if the <a class="el" href="a00216.html" title="Pure virtual base class for drawable geometry.">Drawable</a> subclass supports <a class="el" href="a00216.html#a1cbf45c341f9beb660f63aa7542d5867" title="accept an AttributeFunctor and call its methods to tell it about the internal attributes that this Dr...">accept(AttributeFunctor&amp;)</a>. </p>

<p>Reimplemented in <a class="el" href="a00313.html#af3075eb3a05ac52912fdfa3fa0d0f047">osg::Geometry</a>, <a class="el" href="a00714.html#a4328f90ef5a0fbc95018bacd86ab95f7">osg::ShapeDrawable</a>, <a class="el" href="a00892.html#aac4cb2c234503b99ac7b3c5cf9709669">osgText::Text</a>, and <a class="el" href="a00893.html#acfcf2ad67bc1f913d40fb5ec1fe70746">osgText::Text3D</a>.</p>

</div>
</div>
<hr/><h2>Friends And Related Function Documentation</h2>
<a class="anchor" id="aafbcbfe4643b58d157dc1a8c15004022"></a><!-- doxytag: member="osg::Drawable::Geode" ref="aafbcbfe4643b58d157dc1a8c15004022" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">friend class <a class="el" href="a00311.html">Geode</a><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a6db9d28bd448a131448276ee03de1e6d"></a><!-- doxytag: member="osg::Drawable::Node" ref="a6db9d28bd448a131448276ee03de1e6d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">friend class <a class="el" href="a00491.html">Node</a><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a020cdc96e9410b9e732c51ee80aef08d"></a><!-- doxytag: member="osg::Drawable::StateSet" ref="a020cdc96e9410b9e732c51ee80aef08d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">friend class <a class="el" href="a00746.html">StateSet</a><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="a55f9b2b4ef37dada949f30884c6a3a1e"></a><!-- doxytag: member="osg::Drawable::_boundingBox" ref="a55f9b2b4ef37dada949f30884c6a3a1e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00069.html">BoundingBox</a> <a class="el" href="a00216.html#a55f9b2b4ef37dada949f30884c6a3a1e">osg::Drawable::_boundingBox</a><code> [mutable, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a9aef2b8631873b2d5c833f6987ef9cf7"></a><!-- doxytag: member="osg::Drawable::_boundingBoxComputed" ref="a9aef2b8631873b2d5c833f6987ef9cf7" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="a00216.html#a9aef2b8631873b2d5c833f6987ef9cf7">osg::Drawable::_boundingBoxComputed</a><code> [mutable, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a19e92c8bbae7f0a43a30434b8fd0e038"></a><!-- doxytag: member="osg::Drawable::_computeBoundCallback" ref="a19e92c8bbae7f0a43a30434b8fd0e038" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00624.html">ref_ptr</a>&lt;<a class="el" href="a00132.html">ComputeBoundingBoxCallback</a>&gt; <a class="el" href="a00216.html#a19e92c8bbae7f0a43a30434b8fd0e038">osg::Drawable::_computeBoundCallback</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a7f11ecf9cd836db45e04bee3e5cd45f0"></a><!-- doxytag: member="osg::Drawable::_cullCallback" ref="a7f11ecf9cd836db45e04bee3e5cd45f0" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00624.html">ref_ptr</a>&lt;<a class="el" href="a00177.html">CullCallback</a>&gt; <a class="el" href="a00216.html#a7f11ecf9cd836db45e04bee3e5cd45f0">osg::Drawable::_cullCallback</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a412cadf71e56a9644ecc63f84e9373cd"></a><!-- doxytag: member="osg::Drawable::_drawCallback" ref="a412cadf71e56a9644ecc63f84e9373cd" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00624.html">ref_ptr</a>&lt;<a class="el" href="a00219.html">DrawCallback</a>&gt; <a class="el" href="a00216.html#a412cadf71e56a9644ecc63f84e9373cd">osg::Drawable::_drawCallback</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Referenced by <a class="el" href="a00216.html#a40d8d1b5503ee4c996632a23873c5573">draw()</a>.</p>

</div>
</div>
<a class="anchor" id="a6403fe2f8700deaca5c36b9cad138356"></a><!-- doxytag: member="osg::Drawable::_eventCallback" ref="a6403fe2f8700deaca5c36b9cad138356" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00624.html">ref_ptr</a>&lt;<a class="el" href="a00255.html">EventCallback</a>&gt; <a class="el" href="a00216.html#a6403fe2f8700deaca5c36b9cad138356">osg::Drawable::_eventCallback</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="aa7b8cf5da01cf95945ad0aceb9adffab"></a><!-- doxytag: member="osg::Drawable::_globjList" ref="aa7b8cf5da01cf95945ad0aceb9adffab" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00078.html">GLObjectList</a> <a class="el" href="a00216.html#aa7b8cf5da01cf95945ad0aceb9adffab">osg::Drawable::_globjList</a><code> [mutable, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Referenced by <a class="el" href="a00216.html#a40d8d1b5503ee4c996632a23873c5573">draw()</a>.</p>

</div>
</div>
<a class="anchor" id="a4a7756e242f5f24dbacf0fd465e7bc49"></a><!-- doxytag: member="osg::Drawable::_initialBound" ref="a4a7756e242f5f24dbacf0fd465e7bc49" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00069.html">BoundingBox</a> <a class="el" href="a00216.html#a4a7756e242f5f24dbacf0fd465e7bc49">osg::Drawable::_initialBound</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a950c495eba042fa9dab071d6b19aeee4"></a><!-- doxytag: member="osg::Drawable::_numChildrenRequiringEventTraversal" ref="a950c495eba042fa9dab071d6b19aeee4" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int <a class="el" href="a00216.html#a950c495eba042fa9dab071d6b19aeee4">osg::Drawable::_numChildrenRequiringEventTraversal</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a15b52d76effbbe352abbda738e832d99"></a><!-- doxytag: member="osg::Drawable::_numChildrenRequiringUpdateTraversal" ref="a15b52d76effbbe352abbda738e832d99" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int <a class="el" href="a00216.html#a15b52d76effbbe352abbda738e832d99">osg::Drawable::_numChildrenRequiringUpdateTraversal</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ac7839ee293bca1cfaf600977fe4cb5c8"></a><!-- doxytag: member="osg::Drawable::_parents" ref="ac7839ee293bca1cfaf600977fe4cb5c8" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00216.html#a102db6385b2b1cc908bbad35a580d1e9">ParentList</a> <a class="el" href="a00216.html#ac7839ee293bca1cfaf600977fe4cb5c8">osg::Drawable::_parents</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a149ad68a4ebad61da19b82a59bf9f5ff"></a><!-- doxytag: member="osg::Drawable::_shape" ref="a149ad68a4ebad61da19b82a59bf9f5ff" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00624.html">ref_ptr</a>&lt;<a class="el" href="a00711.html">Shape</a>&gt; <a class="el" href="a00216.html#a149ad68a4ebad61da19b82a59bf9f5ff">osg::Drawable::_shape</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a8d9bf168d2f841c19cf599069fc7a8b8"></a><!-- doxytag: member="osg::Drawable::_stateset" ref="a8d9bf168d2f841c19cf599069fc7a8b8" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00624.html">ref_ptr</a>&lt;<a class="el" href="a00746.html">StateSet</a>&gt; <a class="el" href="a00216.html#a8d9bf168d2f841c19cf599069fc7a8b8">osg::Drawable::_stateset</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="abba6466cf12c335dd15b410b4a1f9b76"></a><!-- doxytag: member="osg::Drawable::_supportsDisplayList" ref="abba6466cf12c335dd15b410b4a1f9b76" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="a00216.html#abba6466cf12c335dd15b410b4a1f9b76">osg::Drawable::_supportsDisplayList</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="af35c975fcaca25bd664b42524bf9e51c"></a><!-- doxytag: member="osg::Drawable::_supportsVertexBufferObjects" ref="af35c975fcaca25bd664b42524bf9e51c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="a00216.html#af35c975fcaca25bd664b42524bf9e51c">osg::Drawable::_supportsVertexBufferObjects</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Referenced by <a class="el" href="a00216.html#a40d8d1b5503ee4c996632a23873c5573">draw()</a>.</p>

</div>
</div>
<a class="anchor" id="abe02ee713c7c9a9ac14677312c5533ed"></a><!-- doxytag: member="osg::Drawable::_updateCallback" ref="abe02ee713c7c9a9ac14677312c5533ed" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00624.html">ref_ptr</a>&lt;<a class="el" href="a01042.html">UpdateCallback</a>&gt; <a class="el" href="a00216.html#abe02ee713c7c9a9ac14677312c5533ed">osg::Drawable::_updateCallback</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="abfe93518facf0e7e1534ed2590b6ff11"></a><!-- doxytag: member="osg::Drawable::_useDisplayList" ref="abfe93518facf0e7e1534ed2590b6ff11" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="a00216.html#abfe93518facf0e7e1534ed2590b6ff11">osg::Drawable::_useDisplayList</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Referenced by <a class="el" href="a00216.html#a40d8d1b5503ee4c996632a23873c5573">draw()</a>.</p>

</div>
</div>
<a class="anchor" id="addbe191865d034403b1845ad0e5c3826"></a><!-- doxytag: member="osg::Drawable::_useVertexBufferObjects" ref="addbe191865d034403b1845ad0e5c3826" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="a00216.html#addbe191865d034403b1845ad0e5c3826">osg::Drawable::_useVertexBufferObjects</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Referenced by <a class="el" href="a00216.html#a40d8d1b5503ee4c996632a23873c5573">draw()</a>.</p>

</div>
</div>
<a class="anchor" id="a1332816062ed8e40c62a1a977a42f5d8"></a><!-- doxytag: member="osg::Drawable::s_numberDeletedDrawablesInLastFrame" ref="a1332816062ed8e40c62a1a977a42f5d8" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int <a class="el" href="a00216.html#a1332816062ed8e40c62a1a977a42f5d8">osg::Drawable::s_numberDeletedDrawablesInLastFrame</a><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="af35bfff535c84bb8c71f0c1c07ee7ca9"></a><!-- doxytag: member="osg::Drawable::s_numberDrawablesReusedLastInLastFrame" ref="af35bfff535c84bb8c71f0c1c07ee7ca9" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int <a class="el" href="a00216.html#af35bfff535c84bb8c71f0c1c07ee7ca9">osg::Drawable::s_numberDrawablesReusedLastInLastFrame</a><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ad3ca3b1dfaca4fc311c871c4b1eb1bb9"></a><!-- doxytag: member="osg::Drawable::s_numberNewDrawablesInLastFrame" ref="ad3ca3b1dfaca4fc311c871c4b1eb1bb9" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int <a class="el" href="a00216.html#ad3ca3b1dfaca4fc311c871c4b1eb1bb9">osg::Drawable::s_numberNewDrawablesInLastFrame</a><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>osg/<a class="el" href="a01154.html">Drawable</a></li>
</ul>
</div>
<hr>
<table border="0"><tr><td>
  <img src="osg32-32.png" alt="osg logo" />
</td><td>
  <address><small>Generated at Thu Aug 19 2010 16:22:42 for the <a href="http://www.openscenegraph.org/">OpenSceneGraph</a>
by <a href="http://www.doxygen.org">doxygen</a> 1.7.1.</small></address>
<!-- Dimitri van Heesch's e-mail address removed, lest he get messages on the OpenSceneGraph -->
</td></tr></table>
</body>
</html>