Files
opennurbs/6/df/dc9/class_o_n___bounding_box_cache.html
Bozo db96b72945 Publish!
Generated from v6.0.11315.11111-test12
2018-01-31 14:46:11 -08:00

369 lines
20 KiB
HTML

<!-- HTML header for doxygen 1.8.13-->
<!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"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>openNURBS SDK Help: ON_BoundingBoxCache Class Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
<!-- <script type="text/javascript" src="../../jquery.js"></script> -->
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<script type="text/javascript" src="../../dynsections.js"></script>
<link href="../../doxygen.css" rel="stylesheet" type="text/css" />
<link href="../../customdoxygen.css" rel="stylesheet" type="text/css"/>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<!-- smartmenus -->
<link href="../../jquery.smartmenus.bootstrap.css" rel="stylesheet">
<script type="text/javascript" src="../../jquery.smartmenus.js"></script>
<script type="text/javascript" src="../../jquery.smartmenus.bootstrap.js"></script>
</head>
<body>
<!-- navbar -->
<div class="navbar navbar-default navbar-static top" role="navigation">
<div class="navbar-header">
<a class="navbar-brand">openNURBS SDK Help 6.0</a>
</div>
</div>
<div class="container">
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div class="page-content">
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('../../',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="../../db/d5d/class_o_n___bounding_box_cache-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">ON_BoundingBoxCache Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><code>#include &lt;<a class="el" href="../../db/dda/opennurbs__bounding__box_8h_source.html">opennurbs_bounding_box.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:af2bbf8416cadeef49dd12377be04790a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dc9/class_o_n___bounding_box_cache.html#af2bbf8416cadeef49dd12377be04790a">ON_BoundingBoxCache</a> ()=default</td></tr>
<tr class="separator:af2bbf8416cadeef49dd12377be04790a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa2ac68876fc93a87d3a77962a880daf5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dc9/class_o_n___bounding_box_cache.html#aa2ac68876fc93a87d3a77962a880daf5">ON_BoundingBoxCache</a> (const <a class="el" href="../../df/dc9/class_o_n___bounding_box_cache.html">ON_BoundingBoxCache</a> &amp;)=default</td></tr>
<tr class="separator:aa2ac68876fc93a87d3a77962a880daf5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af0be31ea89d0b1d68d28df61df3a2644"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dc9/class_o_n___bounding_box_cache.html#af0be31ea89d0b1d68d28df61df3a2644">~ON_BoundingBoxCache</a> ()=default</td></tr>
<tr class="separator:af0be31ea89d0b1d68d28df61df3a2644"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ac0387114f9c40c6de5156e3fe0fdef"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dc9/class_o_n___bounding_box_cache.html#a4ac0387114f9c40c6de5156e3fe0fdef">AddBoundingBox</a> (const <a class="el" href="../../d1/d17/class_o_n___bounding_box.html">ON_BoundingBox</a> &amp;bbox, const <a class="el" href="../../dd/ddf/class_o_n___s_h_a1___hash.html">ON_SHA1_Hash</a> &amp;hash)</td></tr>
<tr class="separator:a4ac0387114f9c40c6de5156e3fe0fdef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf595e79625ab64cc48cb9a27461d451"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dc9/class_o_n___bounding_box_cache.html#abf595e79625ab64cc48cb9a27461d451">AddBoundingBox</a> (const <a class="el" href="../../d5/da2/class_o_n___bounding_box_and_hash.html">ON_BoundingBoxAndHash</a> &amp;bbox_and_hash)</td></tr>
<tr class="separator:abf595e79625ab64cc48cb9a27461d451"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3e39b3c204df497f853df622125fdc6a"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dc9/class_o_n___bounding_box_cache.html#a3e39b3c204df497f853df622125fdc6a">BoundingBoxCount</a> () const</td></tr>
<tr class="separator:a3e39b3c204df497f853df622125fdc6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a675038848e67b3fb79997f67194a965e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dc9/class_o_n___bounding_box_cache.html#a675038848e67b3fb79997f67194a965e">GetBoundingBox</a> (const <a class="el" href="../../dd/ddf/class_o_n___s_h_a1___hash.html">ON_SHA1_Hash</a> &amp;hash, <a class="el" href="../../d1/d17/class_o_n___bounding_box.html">ON_BoundingBox</a> &amp;bbox) const</td></tr>
<tr class="separator:a675038848e67b3fb79997f67194a965e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a27c1dabc6aafd46c039be8109a45fc2d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../df/dc9/class_o_n___bounding_box_cache.html">ON_BoundingBoxCache</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dc9/class_o_n___bounding_box_cache.html#a27c1dabc6aafd46c039be8109a45fc2d">operator=</a> (const <a class="el" href="../../df/dc9/class_o_n___bounding_box_cache.html">ON_BoundingBoxCache</a> &amp;)=default</td></tr>
<tr class="separator:a27c1dabc6aafd46c039be8109a45fc2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8febc3c1e83fad9b55e385f2f67b03a5"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dc9/class_o_n___bounding_box_cache.html#a8febc3c1e83fad9b55e385f2f67b03a5">Read</a> (class <a class="el" href="../../db/d16/class_o_n___binary_archive.html">ON_BinaryArchive</a> &amp;archive)</td></tr>
<tr class="separator:a8febc3c1e83fad9b55e385f2f67b03a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6554ab8bfaee25036dc98220e62dbdac"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dc9/class_o_n___bounding_box_cache.html#a6554ab8bfaee25036dc98220e62dbdac">RemoveAllBoundingBoxes</a> ()</td></tr>
<tr class="separator:a6554ab8bfaee25036dc98220e62dbdac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a495b00d260a7600756aaf1b9a0379a48"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dc9/class_o_n___bounding_box_cache.html#a495b00d260a7600756aaf1b9a0379a48">RemoveBoundingBox</a> (const <a class="el" href="../../dd/ddf/class_o_n___s_h_a1___hash.html">ON_SHA1_Hash</a> &amp;hash)</td></tr>
<tr class="separator:a495b00d260a7600756aaf1b9a0379a48"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a29959fe84112f3119730d807d937c76b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dc9/class_o_n___bounding_box_cache.html#a29959fe84112f3119730d807d937c76b">Write</a> (class <a class="el" href="../../db/d16/class_o_n___binary_archive.html">ON_BinaryArchive</a> &amp;archive) const</td></tr>
<tr class="separator:a29959fe84112f3119730d807d937c76b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>A class that caches 8 bounding box - hash pairs and keeps the most frequently used bounding boxes. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="af2bbf8416cadeef49dd12377be04790a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af2bbf8416cadeef49dd12377be04790a">&#9670;&nbsp;</a></span>ON_BoundingBoxCache() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ON_BoundingBoxCache::ON_BoundingBoxCache </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">default</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="af0be31ea89d0b1d68d28df61df3a2644"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af0be31ea89d0b1d68d28df61df3a2644">&#9670;&nbsp;</a></span>~ON_BoundingBoxCache()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ON_BoundingBoxCache::~ON_BoundingBoxCache </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">default</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="aa2ac68876fc93a87d3a77962a880daf5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa2ac68876fc93a87d3a77962a880daf5">&#9670;&nbsp;</a></span>ON_BoundingBoxCache() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ON_BoundingBoxCache::ON_BoundingBoxCache </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="../../df/dc9/class_o_n___bounding_box_cache.html">ON_BoundingBoxCache</a> &amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">default</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a4ac0387114f9c40c6de5156e3fe0fdef"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4ac0387114f9c40c6de5156e3fe0fdef">&#9670;&nbsp;</a></span>AddBoundingBox() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ON_BoundingBoxCache::AddBoundingBox </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="../../d1/d17/class_o_n___bounding_box.html">ON_BoundingBox</a> &amp;&#160;</td>
<td class="paramname"><em>bbox</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="../../dd/ddf/class_o_n___s_h_a1___hash.html">ON_SHA1_Hash</a> &amp;&#160;</td>
<td class="paramname"><em>hash</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Description: Add a bounding box that can be found from a hash value. Parameters: bbox - [in] hash - [in] A hash of the information needed to create this bounding box. </p>
</div>
</div>
<a id="abf595e79625ab64cc48cb9a27461d451"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abf595e79625ab64cc48cb9a27461d451">&#9670;&nbsp;</a></span>AddBoundingBox() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ON_BoundingBoxCache::AddBoundingBox </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="../../d5/da2/class_o_n___bounding_box_and_hash.html">ON_BoundingBoxAndHash</a> &amp;&#160;</td>
<td class="paramname"><em>bbox_and_hash</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a3e39b3c204df497f853df622125fdc6a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3e39b3c204df497f853df622125fdc6a">&#9670;&nbsp;</a></span>BoundingBoxCount()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned int ON_BoundingBoxCache::BoundingBoxCount </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns: Number of cached boxes. </p>
</div>
</div>
<a id="a675038848e67b3fb79997f67194a965e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a675038848e67b3fb79997f67194a965e">&#9670;&nbsp;</a></span>GetBoundingBox()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ON_BoundingBoxCache::GetBoundingBox </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="../../dd/ddf/class_o_n___s_h_a1___hash.html">ON_SHA1_Hash</a> &amp;&#160;</td>
<td class="paramname"><em>hash</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="../../d1/d17/class_o_n___bounding_box.html">ON_BoundingBox</a> &amp;&#160;</td>
<td class="paramname"><em>bbox</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Description: Get a cached bounding box. Parameters: hash - [in] bbox - [out] If the hash identifies a bounding box in the cache, then that bounding box is returned. Otherwise <a class="el" href="../../d1/d17/class_o_n___bounding_box.html#a638a489b986da528eccc0d252662ee7e" title="all coordinates are ON_DBL_QNAN ">ON_BoundingBox::NanBoundingBox</a> is returned. Returns: true - cached bounding box returned false - bounding box not in cache. </p>
</div>
</div>
<a id="a27c1dabc6aafd46c039be8109a45fc2d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a27c1dabc6aafd46c039be8109a45fc2d">&#9670;&nbsp;</a></span>operator=()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="../../df/dc9/class_o_n___bounding_box_cache.html">ON_BoundingBoxCache</a>&amp; ON_BoundingBoxCache::operator= </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="../../df/dc9/class_o_n___bounding_box_cache.html">ON_BoundingBoxCache</a> &amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">default</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a8febc3c1e83fad9b55e385f2f67b03a5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8febc3c1e83fad9b55e385f2f67b03a5">&#9670;&nbsp;</a></span>Read()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ON_BoundingBoxCache::Read </td>
<td>(</td>
<td class="paramtype">class <a class="el" href="../../db/d16/class_o_n___binary_archive.html">ON_BinaryArchive</a> &amp;&#160;</td>
<td class="paramname"><em>archive</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a6554ab8bfaee25036dc98220e62dbdac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6554ab8bfaee25036dc98220e62dbdac">&#9670;&nbsp;</a></span>RemoveAllBoundingBoxes()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ON_BoundingBoxCache::RemoveAllBoundingBoxes </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Description: Removes all bounding boxes. Remarks: If the hash values you are using are correctly computed and include all information that the bouding box depends on, then you never need to remove bounding boxes. Unused ones will get removed as new ones are added. If the hash does not include all information required to compute the bounding boxes, then call <a class="el" href="../../df/dc9/class_o_n___bounding_box_cache.html#a6554ab8bfaee25036dc98220e62dbdac">RemoveAllBoundingBoxes()</a> when the non-hashed information changes. </p>
</div>
</div>
<a id="a495b00d260a7600756aaf1b9a0379a48"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a495b00d260a7600756aaf1b9a0379a48">&#9670;&nbsp;</a></span>RemoveBoundingBox()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ON_BoundingBoxCache::RemoveBoundingBox </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="../../dd/ddf/class_o_n___s_h_a1___hash.html">ON_SHA1_Hash</a> &amp;&#160;</td>
<td class="paramname"><em>hash</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Description: Remove a bounding box that can be found from a hash value. Parameters: hash - [in] Returns: true - hash was in the cache and removed. false - hash was not in the cache. Remarks: If the hash values you are using are correctly computed and include all information that the bouding box depends on, then you never need to remove bounding boxes. Unused ones will get removed as new ones are added. </p>
</div>
</div>
<a id="a29959fe84112f3119730d807d937c76b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a29959fe84112f3119730d807d937c76b">&#9670;&nbsp;</a></span>Write()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ON_BoundingBoxCache::Write </td>
<td>(</td>
<td class="paramtype">class <a class="el" href="../../db/d16/class_o_n___binary_archive.html">ON_BinaryArchive</a> &amp;&#160;</td>
<td class="paramname"><em>archive</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div><!-- contents -->
<!-- HTML footer for doxygen 1.8.13-->
<!-- start footer part -->
</div> <!-- page-content -->
</div> <!-- container -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Jan 31 2018 14:45:39 for openNURBS SDK Help by <a href="http://www.doxygen.org/index.html">
<!-- <img class="footer" src="../../doxygen.png" alt="doxygen"/> -->
Doxygen
</a> 1.8.13
</small></address>
<script type="text/javascript" src="../../doxy-boot.js"></script>
</body>
</html>