<!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::Shape Class Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.7.4 --> <div id="top"> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">OpenSceneGraph <span id="projectnumber">2.8.4</span></div> </td> </tr> </tbody> </table> </div> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li class="current"><a href="annotated.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> <li><a href="dirs.html"><span>Directories</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="classes.html"><span>Class Index</span></a></li> <li><a href="inherits.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="a01628.html">osg</a> </li> <li class="navelem"><a class="el" href="a00711.html">Shape</a> </li> </ul> </div> </div> <div class="header"> <div class="summary"> <a href="#pub-methods">Public Member Functions</a> | <a href="#pro-methods">Protected Member Functions</a> </div> <div class="headertitle"> <div class="title">osg::Shape Class Reference</div> </div> </div> <div class="contents"> <!-- doxytag: class="osg::Shape" --><!-- doxytag: inherits="osg::Object" --> <p>Base class for all shape types. <a href="a00711.html#details">More...</a></p> <div class="dynheader"> Inheritance diagram for osg::Shape:</div> <div class="dyncontent"> <div class="center"><img src="a01996.png" border="0" usemap="#osg_1_1Shape_inherit__map" alt="Inheritance graph"/></div> <map name="osg_1_1Shape_inherit__map" id="osg_1_1Shape_inherit__map"> <area shape="rect" id="node7" href="a00071.html" title="osg::Box" alt="" coords="531,5,611,35"/><area shape="rect" id="node9" href="a00094.html" title="osg::Capsule" alt="" coords="517,59,624,88"/><area shape="rect" id="node11" href="a00129.html" title="osg::CompositeShape" alt="" coords="487,112,655,141"/><area shape="rect" id="node13" href="a00136.html" title="osg::Cone" alt="" coords="525,165,616,195"/><area shape="rect" id="node15" href="a00192.html" title="osg::Cylinder" alt="" coords="516,219,625,248"/><area shape="rect" id="node17" href="a00346.html" title="osg::HeightField" alt="" coords="505,272,636,301"/><area shape="rect" id="node19" href="a00378.html" title="osg::InfinitePlane" alt="" coords="501,325,640,355"/><area shape="rect" id="node21" href="a00417.html" title="Implementation of a kdtree for Geometry leaves, to enable fast intersection tests." alt="" coords="520,379,621,408"/><area shape="rect" id="node23" href="a00730.html" title="osg::Sphere" alt="" coords="520,432,621,461"/><area shape="rect" id="node25" href="a00938.html" title="osg::TriangleMesh" alt="" coords="500,485,641,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="191,245,292,275"/><area shape="rect" id="node4" href="a00627.html" title="Base class from providing referencing counted objects." alt="" coords="7,245,140,275"/><area shape="rect" id="node27" href="a00163.html" title="osg::ConvexHull" alt="" coords="704,485,835,515"/></map> <center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div> <p><a href="a01997.html">List of all members.</a></p> <table class="memberdecls"> <tr><td colspan="2"><h2><a name="pub-methods"></a> Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00711.html#af7cf7bf629d2b286dd653d514f06ce75">Shape</a> ()</td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00711.html#a70f4681f94e457e7c67031e684088eca">Shape</a> (const <a class="el" href="a00711.html">Shape</a> &sa, const <a class="el" href="a00169.html">CopyOp</a> &copyop=CopyOp::SHALLOW_COPY)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="a00500.html">Object</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00711.html#a0ca7429452677a72a275bf1a8eaf5c01">cloneType</a> () const =0</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Clone the type of an attribute, with Object* return type. <a href="#a0ca7429452677a72a275bf1a8eaf5c01"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="a00500.html">Object</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00711.html#a8327b9a4080e0c64808c1d4a02a8349c">clone</a> (const <a class="el" href="a00169.html">CopyOp</a> &) const =0</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Clone an attribute, with Object* return type. <a href="#a8327b9a4080e0c64808c1d4a02a8349c"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00711.html#ad67142dfaf1f76ae8619ed294b8d3a7a">isSameKindAs</a> (const <a class="el" href="a00500.html">Object</a> *obj) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">return true if this and obj are of the same kind of object. <a href="#ad67142dfaf1f76ae8619ed294b8d3a7a"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00711.html#aafa276d8a54a01c7da66f36a3dbe31b2">libraryName</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">return the name of the attribute's library. <a href="#aafa276d8a54a01c7da66f36a3dbe31b2"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00711.html#a0d911ed250d1fb71bf8c5fbbf02e917f">className</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">return the name of the attribute's class type. <a href="#a0d911ed250d1fb71bf8c5fbbf02e917f"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00711.html#a57921fa2e2a520e8183bb62499e5b40e">accept</a> (<a class="el" href="a00715.html">ShapeVisitor</a> &)=0</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">accept a non const shape visitor which can be used on non const shape objects. <a href="#a57921fa2e2a520e8183bb62499e5b40e"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00711.html#a934ef14a2fb42d8d1d7adbddfbf413f9">accept</a> (<a class="el" href="a00146.html">ConstShapeVisitor</a> &) const =0</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">accept a const shape visitor which can be used on const shape objects. <a href="#a934ef14a2fb42d8d1d7adbddfbf413f9"></a><br/></td></tr> <tr><td colspan="2"><h2><a name="pro-methods"></a> Protected Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="a00711.html#a22472fa94b109dd70596193b50630435">~Shape</a> ()</td></tr> </table> <hr/><a name="details" id="details"></a><h2>Detailed Description</h2> <div class="textblock"><p>Base class for all shape types. </p> <p>Shapes are used to either for culling and collision detection or to define the geometric shape of procedurally generate <a class="el" href="a00313.html">Geometry</a>. </p> </div><hr/><h2>Constructor & Destructor Documentation</h2> <a class="anchor" id="af7cf7bf629d2b286dd653d514f06ce75"></a><!-- doxytag: member="osg::Shape::Shape" ref="af7cf7bf629d2b286dd653d514f06ce75" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">osg::Shape::Shape </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="a70f4681f94e457e7c67031e684088eca"></a><!-- doxytag: member="osg::Shape::Shape" ref="a70f4681f94e457e7c67031e684088eca" args="(const Shape &sa, const CopyOp &copyop=CopyOp::SHALLOW_COPY)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">osg::Shape::Shape </td> <td>(</td> <td class="paramtype">const <a class="el" href="a00711.html">Shape</a> & </td> <td class="paramname"><em>sa</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="a00169.html">CopyOp</a> & </td> <td class="paramname"><em>copyop</em> = <code>CopyOp::SHALLOW_COPY</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="a22472fa94b109dd70596193b50630435"></a><!-- doxytag: member="osg::Shape::~Shape" ref="a22472fa94b109dd70596193b50630435" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual osg::Shape::~Shape </td> <td>(</td> <td class="paramname"></td><td>)</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="a57921fa2e2a520e8183bb62499e5b40e"></a><!-- doxytag: member="osg::Shape::accept" ref="a57921fa2e2a520e8183bb62499e5b40e" args="(ShapeVisitor &)=0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual void osg::Shape::accept </td> <td>(</td> <td class="paramtype"><a class="el" href="a00715.html">ShapeVisitor</a> & </td> <td class="paramname"></td><td>)</td> <td><code> [pure virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>accept a non const shape visitor which can be used on non const shape objects. </p> <p>Must be defined by derived classes. </p> </div> </div> <a class="anchor" id="a934ef14a2fb42d8d1d7adbddfbf413f9"></a><!-- doxytag: member="osg::Shape::accept" ref="a934ef14a2fb42d8d1d7adbddfbf413f9" args="(ConstShapeVisitor &) const =0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual void osg::Shape::accept </td> <td>(</td> <td class="paramtype"><a class="el" href="a00146.html">ConstShapeVisitor</a> & </td> <td class="paramname"></td><td>)</td> <td> const<code> [pure virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>accept a const shape visitor which can be used on const shape objects. </p> <p>Must be defined by derived classes. </p> </div> </div> <a class="anchor" id="a0d911ed250d1fb71bf8c5fbbf02e917f"></a><!-- doxytag: member="osg::Shape::className" ref="a0d911ed250d1fb71bf8c5fbbf02e917f" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual const char* osg::Shape::className </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const<code> [inline, virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>return the name of the attribute's class type. </p> <p>Implements <a class="el" href="a00500.html#a0a2c199f26fdd9ca9fc60d6c79827187">osg::Object</a>.</p> </div> </div> <a class="anchor" id="a8327b9a4080e0c64808c1d4a02a8349c"></a><!-- doxytag: member="osg::Shape::clone" ref="a8327b9a4080e0c64808c1d4a02a8349c" args="(const CopyOp &) const =0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="a00500.html">Object</a>* osg::Shape::clone </td> <td>(</td> <td class="paramtype">const <a class="el" href="a00169.html">CopyOp</a> & </td> <td class="paramname"></td><td>)</td> <td> const<code> [pure virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Clone an attribute, with Object* return type. </p> <p>Must be defined by derived classes. </p> <p>Implements <a class="el" href="a00500.html#ac20abff68448b9fcd20ab59e5d7a0030">osg::Object</a>.</p> </div> </div> <a class="anchor" id="a0ca7429452677a72a275bf1a8eaf5c01"></a><!-- doxytag: member="osg::Shape::cloneType" ref="a0ca7429452677a72a275bf1a8eaf5c01" args="() const =0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="a00500.html">Object</a>* osg::Shape::cloneType </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const<code> [pure virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Clone the type of an attribute, with Object* return type. </p> <p>Must be defined by derived classes. </p> <p>Implements <a class="el" href="a00500.html#a837c584d77ae710bb5565f7895f80dbb">osg::Object</a>.</p> </div> </div> <a class="anchor" id="ad67142dfaf1f76ae8619ed294b8d3a7a"></a><!-- doxytag: member="osg::Shape::isSameKindAs" ref="ad67142dfaf1f76ae8619ed294b8d3a7a" args="(const Object *obj) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual bool osg::Shape::isSameKindAs </td> <td>(</td> <td class="paramtype">const <a class="el" href="a00500.html">Object</a> * </td> <td class="paramname"><em>obj</em></td><td>)</td> <td> const<code> [inline, virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>return true if this and obj are of the same kind of object. </p> <p>Reimplemented from <a class="el" href="a00500.html#ac3b05ac28940dda755014a821b699f3a">osg::Object</a>.</p> <p>References <a class="el" href="a01157.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p> </div> </div> <a class="anchor" id="aafa276d8a54a01c7da66f36a3dbe31b2"></a><!-- doxytag: member="osg::Shape::libraryName" ref="aafa276d8a54a01c7da66f36a3dbe31b2" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual const char* osg::Shape::libraryName </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const<code> [inline, virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>return the name of the attribute's library. </p> <p>Implements <a class="el" href="a00500.html#adac3709b960df44030d682dd1336413e">osg::Object</a>.</p> </div> </div> <hr/>The documentation for this class was generated from the following file:<ul> <li>osg/<a class="el" href="a01245.html">Shape</a></li> </ul> </div> <hr> <table border="0"><tr><td> <img src="osg32-32.png" alt="osg logo" /> </td><td> <address><small>Generated at Tue May 31 2011 04:19:34 for the <a href="http://www.openscenegraph.org/">OpenSceneGraph</a> by <a href="http://www.doxygen.org">doxygen</a> 1.7.4.</small></address> <!-- Dimitri van Heesch's e-mail address removed, lest he get messages on the OpenSceneGraph --> </td></tr></table> </body> </html>