<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>MPQC: sc::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.5.9 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</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> </ul> </div> <div class="tabs"> <ul> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> <div class="navpath"><b>sc</b>::<a class="el" href="classsc_1_1Shape.html">Shape</a> </div> </div> <div class="contents"> <h1>sc::Shape Class Reference</h1><!-- doxytag: class="sc::Shape" --><!-- doxytag: inherits="sc::Volume" -->A <a class="el" href="classsc_1_1Shape.html" title="A Shape is a Volume represents an 3D solid.">Shape</a> is a <a class="el" href="classsc_1_1Volume.html" title="A Volume is a Function of three variables.">Volume</a> represents an 3D solid. <a href="#_details">More...</a> <p> <code>#include <<a class="el" href="shape_8h_source.html">shape.h</a>></code> <p> <div class="dynheader"> Inheritance diagram for sc::Shape:</div> <div class="dynsection"> <p><center><img src="classsc_1_1Shape.png" usemap="#sc::Shape_map" border="0" alt=""></center> <map name="sc::Shape_map"> <area href="classsc_1_1Volume.html" alt="sc::Volume" shape="rect" coords="87,280,251,304"> <area href="classsc_1_1Function.html" alt="sc::Function" shape="rect" coords="87,224,251,248"> <area href="classsc_1_1SavableState.html" alt="sc::SavableState" shape="rect" coords="0,168,164,192"> <area href="classsc_1_1Compute.html" alt="sc::Compute" shape="rect" coords="174,168,338,192"> <area href="classsc_1_1DescribedClass.html" alt="sc::DescribedClass" shape="rect" coords="0,112,164,136"> <area href="classsc_1_1RefCount.html" alt="sc::RefCount" shape="rect" coords="0,56,164,80"> <area href="classsc_1_1Identity.html" alt="sc::Identity" shape="rect" coords="0,0,164,24"> <area href="classsc_1_1ConnollyShape.html" alt="sc::ConnollyShape" shape="rect" coords="0,392,164,416"> <area href="classsc_1_1UnionShape.html" alt="sc::UnionShape" shape="rect" coords="174,392,338,416"> <area href="classsc_1_1DiscreteConnollyShape.html" alt="sc::DiscreteConnollyShape" shape="rect" coords="87,448,251,472"> <area href="classsc_1_1VDWShape.html" alt="sc::VDWShape" shape="rect" coords="261,448,425,472"> </map> </div> <p> <a href="classsc_1_1Shape-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0"> <tr><td></td></tr> <tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5c22bb22ec15f659f51e577cdb20c4d7"></a><!-- doxytag: member="sc::Shape::Shape" ref="5c22bb22ec15f659f51e577cdb20c4d7" args="(const Ref< KeyVal > &keyval)" --> </td><td class="memItemRight" valign="bottom"><b>Shape</b> (const <a class="el" href="classsc_1_1Ref.html">Ref</a>< <a class="el" href="classsc_1_1KeyVal.html">KeyVal</a> > &keyval)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2e19d9999f45149cf85b43fb7ffef069"></a><!-- doxytag: member="sc::Shape::distance_to_surface" ref="2e19d9999f45149cf85b43fb7ffef069" args="(const SCVector3 &r, SCVector3 *grad=0) const =0" --> virtual double </td><td class="memItemRight" valign="bottom"><b>distance_to_surface</b> (const SCVector3 &r, SCVector3 *grad=0) const =0</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="30be243f2b6c49bf7b8d1c47149e3f3f"></a><!-- doxytag: member="sc::Shape::is_outside" ref="30be243f2b6c49bf7b8d1c47149e3f3f" args="(const SCVector3 &r) const " --> virtual int </td><td class="memItemRight" valign="bottom"><b>is_outside</b> (const SCVector3 &r) const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Shape.html#e6781a2c36b01c0570b6d8f612410499">compute</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Recompute at least the results that have compute true and are not already computed. <a href="#e6781a2c36b01c0570b6d8f612410499"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="79c8d5e03b7f4244ab57b068a6f4fb87"></a><!-- doxytag: member="sc::Shape::interpolate" ref="79c8d5e03b7f4244ab57b068a6f4fb87" args="(const SCVector3 &p1, const SCVector3 &p2, double val, SCVector3 &result)" --> void </td><td class="memItemRight" valign="bottom"><b>interpolate</b> (const SCVector3 &p1, const SCVector3 &p2, double val, SCVector3 &result)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Shape.html#f100ff00459dad5b7a549671ee7aab5f">value_implemented</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Information about the availability of values, gradients, and hessians. <a href="#f100ff00459dad5b7a549671ee7aab5f"></a><br></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> A <a class="el" href="classsc_1_1Shape.html" title="A Shape is a Volume represents an 3D solid.">Shape</a> is a <a class="el" href="classsc_1_1Volume.html" title="A Volume is a Function of three variables.">Volume</a> represents an 3D solid. <p> The value of the <a class="el" href="classsc_1_1Shape.html" title="A Shape is a Volume represents an 3D solid.">Shape</a> at each point in space is the distance to the surface. The distance is negative if the point is inside the solid. For <a class="el" href="classsc_1_1Shape.html" title="A Shape is a Volume represents an 3D solid.">Shape</a> specializations that cannot compute the distance to the surface, the value will be 1.0 outside and -1.0 inside the solid. <hr><h2>Member Function Documentation</h2> <a class="anchor" name="e6781a2c36b01c0570b6d8f612410499"></a><!-- doxytag: member="sc::Shape::compute" ref="e6781a2c36b01c0570b6d8f612410499" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void sc::Shape::compute </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Recompute at least the results that have compute true and are not already computed. <p> This should only be called by Result's members. <p>Implements <a class="el" href="classsc_1_1Volume.html#021d39d50208f5fbaf57f84f81fbbaf4">sc::Volume</a>.</p> </div> </div><p> <a class="anchor" name="f100ff00459dad5b7a549671ee7aab5f"></a><!-- doxytag: member="sc::Shape::value_implemented" ref="f100ff00459dad5b7a549671ee7aab5f" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int sc::Shape::value_implemented </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const<code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Information about the availability of values, gradients, and hessians. <p> <p>Reimplemented from <a class="el" href="classsc_1_1Function.html#54f1ed14490ca8bc4658989d6a78c1dc">sc::Function</a>.</p> </div> </div><p> <hr>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="shape_8h_source.html">shape.h</a></ul> </div> <hr> <address> <small> Generated at Wed Oct 14 14:12:15 2009 for <a href="http://www.mpqc.org">MPQC</a> 2.3.1 using the documentation package <a href="http://www.doxygen.org">Doxygen</a> 1.5.9. </small> </address> </body> </html>