<!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: osgParticle::SegmentPlacer 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="a01635.html">osgParticle</a> </li> <li class="navelem"><a class="el" href="a00694.html">SegmentPlacer</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">osgParticle::SegmentPlacer Class Reference</div> </div> </div> <div class="contents"> <!-- doxytag: class="osgParticle::SegmentPlacer" --><!-- doxytag: inherits="osgParticle::Placer" --> <p>A segment-shaped particle placer. <a href="a00694.html#details">More...</a></p> <div class="dynheader"> Inheritance diagram for osgParticle::SegmentPlacer:</div> <div class="dyncontent"> <div class="center"><img src="a03114.png" border="0" usemap="#osgParticle_1_1SegmentPlacer_inherit__map" alt="Inheritance graph"/></div> <map name="osgParticle_1_1SegmentPlacer_inherit__map" id="osgParticle_1_1SegmentPlacer_inherit__map"> <area shape="rect" id="node2" href="a00555.html" title="An abstract base class for implementing particle placers." alt="" coords="37,160,184,189"/><area shape="rect" id="node4" href="a00500.html" title="Base class/standard interface for objects which require IO support, cloning and reference counting..." alt="" coords="60,83,161,112"/><area shape="rect" id="node6" href="a00627.html" title="Base class from providing referencing counted objects." alt="" coords="44,5,177,35"/></map> <center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div> <p><a href="a03115.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="a00694.html#a7d9758c9c177ecd6b1bc1d26926b70ef">SegmentPlacer</a> ()</td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00694.html#a2dbc20d4a2a9f893b7ce3583fb18a1c5">SegmentPlacer</a> (const <a class="el" href="a00694.html">SegmentPlacer</a> &copy, const <a class="el" href="a00169.html">osg::CopyOp</a> &copyop=osg::CopyOp::SHALLOW_COPY)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00694.html#afd59dd10d08a831d3a29df156d4454b4">META_Object</a> (osgParticle, <a class="el" href="a00694.html">SegmentPlacer</a>)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="a01069.html">osg::Vec3</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="a00694.html#a6ef911ec14f4d9cb204d54e8d5eb63ec">getVertexA</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">get vertex <b>A</b>. <a href="#a6ef911ec14f4d9cb204d54e8d5eb63ec"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00694.html#a76821982cce906bb5513920ea18e4bba">setVertexA</a> (const <a class="el" href="a01069.html">osg::Vec3</a> &v)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set vertex <b>A</b> of the segment as a vector. <a href="#a76821982cce906bb5513920ea18e4bba"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00694.html#a4d5e280f72fdce59ed3270d26cc2af4d">setVertexA</a> (float x, float y, float z)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set vertex <b>A</b> of the segment as three floats. <a href="#a4d5e280f72fdce59ed3270d26cc2af4d"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="a01069.html">osg::Vec3</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="a00694.html#a21ab3aafbe6d2226823ded42b51e8b02">getVertexB</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">get vertex <b>B</b>. <a href="#a21ab3aafbe6d2226823ded42b51e8b02"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00694.html#ad0cf232a050be0a47d0412eb8618afeb">setVertexB</a> (const <a class="el" href="a01069.html">osg::Vec3</a> &v)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set vertex <b>B</b> of the segment as a vector. <a href="#ad0cf232a050be0a47d0412eb8618afeb"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00694.html#a1167c0704fb08b8f70edde01fbec5376">setVertexB</a> (float x, float y, float z)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set vertex <b>B</b> of the segment as three floats. <a href="#a1167c0704fb08b8f70edde01fbec5376"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00694.html#af3d3ca2b414ec420182e1e6e6bf7d7ff">setSegment</a> (const <a class="el" href="a01069.html">osg::Vec3</a> &A, const <a class="el" href="a01069.html">osg::Vec3</a> &B)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set both vertices. <a href="#af3d3ca2b414ec420182e1e6e6bf7d7ff"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00694.html#a8cbd0f0a86f252ae4129d94eacfc341a">place</a> (<a class="el" href="a00539.html">Particle</a> *P) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Place a particle. This method is called by <code><a class="el" href="a00476.html" title="An emitter class that holds three objects to control the creation of particles.">ModularEmitter</a></code>, do not call it manually. <a href="#a8cbd0f0a86f252ae4129d94eacfc341a"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a01069.html">osg::Vec3</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00694.html#a49dca543ce66644b025afecf8920fe3d">getControlPosition</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">return the control position <a href="#a49dca543ce66644b025afecf8920fe3d"></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="a00694.html#a39e002677f92df99d035bf758c88c5ef">~SegmentPlacer</a> ()</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00694.html">SegmentPlacer</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="a00694.html#a30a354298dc5a56f937f940c62d9a19c">operator=</a> (const <a class="el" href="a00694.html">SegmentPlacer</a> &)</td></tr> </table> <hr/><a name="details" id="details"></a><h2>Detailed Description</h2> <div class="textblock"><p>A segment-shaped particle placer. </p> <p>To use this placer you have to define a segment, by setting its two vertices (<b>A</b> and <b>B</b>); when an emitter requests a <code><a class="el" href="a00694.html" title="A segment-shaped particle placer.">SegmentPlacer</a></code> to place a particle, the position is chosen randomly within that segment. </p> </div><hr/><h2>Constructor & Destructor Documentation</h2> <a class="anchor" id="a7d9758c9c177ecd6b1bc1d26926b70ef"></a><!-- doxytag: member="osgParticle::SegmentPlacer::SegmentPlacer" ref="a7d9758c9c177ecd6b1bc1d26926b70ef" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">osgParticle::SegmentPlacer::SegmentPlacer </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="a2dbc20d4a2a9f893b7ce3583fb18a1c5"></a><!-- doxytag: member="osgParticle::SegmentPlacer::SegmentPlacer" ref="a2dbc20d4a2a9f893b7ce3583fb18a1c5" args="(const SegmentPlacer &copy, const osg::CopyOp &copyop=osg::CopyOp::SHALLOW_COPY)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">osgParticle::SegmentPlacer::SegmentPlacer </td> <td>(</td> <td class="paramtype">const <a class="el" href="a00694.html">SegmentPlacer</a> & </td> <td class="paramname"><em>copy</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="a00169.html">osg::CopyOp</a> & </td> <td class="paramname"><em>copyop</em> = <code>osg::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="a39e002677f92df99d035bf758c88c5ef"></a><!-- doxytag: member="osgParticle::SegmentPlacer::~SegmentPlacer" ref="a39e002677f92df99d035bf758c88c5ef" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual osgParticle::SegmentPlacer::~SegmentPlacer </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [inline, protected, virtual]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <hr/><h2>Member Function Documentation</h2> <a class="anchor" id="a49dca543ce66644b025afecf8920fe3d"></a><!-- doxytag: member="osgParticle::SegmentPlacer::getControlPosition" ref="a49dca543ce66644b025afecf8920fe3d" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a01069.html">osg::Vec3</a> osgParticle::SegmentPlacer::getControlPosition </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 control position </p> <p>Implements <a class="el" href="a00555.html#a0521de68c57b00dcf15f58d44a88d29c">osgParticle::Placer</a>.</p> </div> </div> <a class="anchor" id="a6ef911ec14f4d9cb204d54e8d5eb63ec"></a><!-- doxytag: member="osgParticle::SegmentPlacer::getVertexA" ref="a6ef911ec14f4d9cb204d54e8d5eb63ec" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="a01069.html">osg::Vec3</a> & osgParticle::SegmentPlacer::getVertexA </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>get vertex <b>A</b>. </p> </div> </div> <a class="anchor" id="a21ab3aafbe6d2226823ded42b51e8b02"></a><!-- doxytag: member="osgParticle::SegmentPlacer::getVertexB" ref="a21ab3aafbe6d2226823ded42b51e8b02" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="a01069.html">osg::Vec3</a> & osgParticle::SegmentPlacer::getVertexB </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>get vertex <b>B</b>. </p> </div> </div> <a class="anchor" id="afd59dd10d08a831d3a29df156d4454b4"></a><!-- doxytag: member="osgParticle::SegmentPlacer::META_Object" ref="afd59dd10d08a831d3a29df156d4454b4" args="(osgParticle, SegmentPlacer)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">osgParticle::SegmentPlacer::META_Object </td> <td>(</td> <td class="paramtype">osgParticle </td> <td class="paramname">, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="a00694.html">SegmentPlacer</a> </td> <td class="paramname"> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="a30a354298dc5a56f937f940c62d9a19c"></a><!-- doxytag: member="osgParticle::SegmentPlacer::operator=" ref="a30a354298dc5a56f937f940c62d9a19c" args="(const SegmentPlacer &)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a00694.html">SegmentPlacer</a>& osgParticle::SegmentPlacer::operator= </td> <td>(</td> <td class="paramtype">const <a class="el" href="a00694.html">SegmentPlacer</a> & </td> <td class="paramname"></td><td>)</td> <td><code> [inline, protected]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="a8cbd0f0a86f252ae4129d94eacfc341a"></a><!-- doxytag: member="osgParticle::SegmentPlacer::place" ref="a8cbd0f0a86f252ae4129d94eacfc341a" args="(Particle *P) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void osgParticle::SegmentPlacer::place </td> <td>(</td> <td class="paramtype"><a class="el" href="a00539.html">Particle</a> * </td> <td class="paramname"><em>P</em></td><td>)</td> <td> const<code> [inline, virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Place a particle. This method is called by <code><a class="el" href="a00476.html" title="An emitter class that holds three objects to control the creation of particles.">ModularEmitter</a></code>, do not call it manually. </p> <p>Implements <a class="el" href="a00555.html#af6332c6cac10db79e99faafa0868e708">osgParticle::Placer</a>.</p> <p>References <a class="el" href="a00539.html#a6472a7a082fec2a215eb99cc7271d522">osgParticle::Particle::setPosition()</a>.</p> </div> </div> <a class="anchor" id="af3d3ca2b414ec420182e1e6e6bf7d7ff"></a><!-- doxytag: member="osgParticle::SegmentPlacer::setSegment" ref="af3d3ca2b414ec420182e1e6e6bf7d7ff" args="(const osg::Vec3 &A, const osg::Vec3 &B)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void osgParticle::SegmentPlacer::setSegment </td> <td>(</td> <td class="paramtype">const <a class="el" href="a01069.html">osg::Vec3</a> & </td> <td class="paramname"><em>A</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="a01069.html">osg::Vec3</a> & </td> <td class="paramname"><em>B</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Set both vertices. </p> </div> </div> <a class="anchor" id="a4d5e280f72fdce59ed3270d26cc2af4d"></a><!-- doxytag: member="osgParticle::SegmentPlacer::setVertexA" ref="a4d5e280f72fdce59ed3270d26cc2af4d" args="(float x, float y, float z)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void osgParticle::SegmentPlacer::setVertexA </td> <td>(</td> <td class="paramtype">float </td> <td class="paramname"><em>x</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float </td> <td class="paramname"><em>y</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float </td> <td class="paramname"><em>z</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Set vertex <b>A</b> of the segment as three floats. </p> <p>References <a class="el" href="a01069.html#a3fb300d7cadedc136ac87333446c6759">osg::Vec3f::set()</a>.</p> </div> </div> <a class="anchor" id="a76821982cce906bb5513920ea18e4bba"></a><!-- doxytag: member="osgParticle::SegmentPlacer::setVertexA" ref="a76821982cce906bb5513920ea18e4bba" args="(const osg::Vec3 &v)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void osgParticle::SegmentPlacer::setVertexA </td> <td>(</td> <td class="paramtype">const <a class="el" href="a01069.html">osg::Vec3</a> & </td> <td class="paramname"><em>v</em></td><td>)</td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Set vertex <b>A</b> of the segment as a vector. </p> </div> </div> <a class="anchor" id="ad0cf232a050be0a47d0412eb8618afeb"></a><!-- doxytag: member="osgParticle::SegmentPlacer::setVertexB" ref="ad0cf232a050be0a47d0412eb8618afeb" args="(const osg::Vec3 &v)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void osgParticle::SegmentPlacer::setVertexB </td> <td>(</td> <td class="paramtype">const <a class="el" href="a01069.html">osg::Vec3</a> & </td> <td class="paramname"><em>v</em></td><td>)</td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Set vertex <b>B</b> of the segment as a vector. </p> </div> </div> <a class="anchor" id="a1167c0704fb08b8f70edde01fbec5376"></a><!-- doxytag: member="osgParticle::SegmentPlacer::setVertexB" ref="a1167c0704fb08b8f70edde01fbec5376" args="(float x, float y, float z)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void osgParticle::SegmentPlacer::setVertexB </td> <td>(</td> <td class="paramtype">float </td> <td class="paramname"><em>x</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float </td> <td class="paramname"><em>y</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float </td> <td class="paramname"><em>z</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Set vertex <b>B</b> of the segment as three floats. </p> <p>References <a class="el" href="a01069.html#a3fb300d7cadedc136ac87333446c6759">osg::Vec3f::set()</a>.</p> </div> </div> <hr/>The documentation for this class was generated from the following file:<ul> <li>osgParticle/<a class="el" href="a01489.html">SegmentPlacer</a></li> </ul> </div> <hr> <table border="0"><tr><td> <img src="osg32-32.png" alt="osg logo" /> </td><td> <address><small>Generated at Tue May 31 2011 04:19:37 for the <a href="http://www.openscenegraph.org/">OpenSceneGraph</a> by <a href="http://www.doxygen.org">doxygen</a> 1.7.4.</small></address> <!-- Dimitri van Heesch's e-mail address removed, lest he get messages on the OpenSceneGraph --> </td></tr></table> </body> </html>