mirror of
https://github.com/mcneel/opennurbs.git
synced 2026-04-01 08:46:54 +08:00
Publish!
Generated from v6.0.11315.11111-test10
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
<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.14"/>
|
||||
<meta name="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>openNURBS SDK Help: ON_ClassArray< T > Class Template Reference</title>
|
||||
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
|
||||
@@ -22,6 +22,7 @@
|
||||
<tr style="height: 56px;">
|
||||
<td id="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">openNURBS SDK Help
|
||||
 <span id="projectnumber">6.0</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -29,21 +30,18 @@
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.14 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="../../menudata.js"></script>
|
||||
<script type="text/javascript" src="../../menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('../../',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</script>
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
@@ -385,9 +383,8 @@ template<class T> </div>
|
||||
</div><div class="memdoc">
|
||||
<p>Append copy of element. Increments count by 1. </p>
|
||||
<p>< (int) cast is for 64 bit pointers</p>
|
||||
<p>26 Sep 2005 Dale Lear User passed in an element of the m_a[] that will get reallocated by the call to Reserve(newcapacity). <br />
|
||||
<br />
|
||||
< ON_*Array<> templates do not require robust copy constructor.</p>
|
||||
<p>26 Sep 2005 Dale Lear User passed in an element of the m_a[] that will get reallocated by the call to Reserve(newcapacity).</p>
|
||||
<p>< ON_*Array<> templates do not require robust copy constructor.</p>
|
||||
<p>< ON_*Array<> templates require a robust operator=. </p>
|
||||
|
||||
</div>
|
||||
@@ -993,8 +990,8 @@ template<class T> </div>
|
||||
|
||||
<p>Insert called with a reference uses operator =. </p>
|
||||
<p>Insert copy of element. Uses memmove() to perform any necessary moving. Increases count by 1. </p>
|
||||
<p>This call to memset is ok even when T has a vtable because in-place construction is used later. <br />
|
||||
< uses T::operator=() to copy x to array </p>
|
||||
<p>This call to memset is ok even when T has a vtable because in-place construction is used later.</p>
|
||||
<p>< uses T::operator=() to copy x to array </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -1103,8 +1100,8 @@ template<class T > </div>
|
||||
|
||||
<p>implimentation ////////////////////////////////////////////////////// </p>
|
||||
<p>array operations //////////////////////////////////////////////////// </p>
|
||||
<p>private function for moving blocks of array memory caller is responsible for updating m_count and managing destruction/creation. <br />
|
||||
This call to memmove is ok, even when T is a class with a vtable because the it doesn't change the vtable for the class. Classes that have back pointers, like <a class="el" href="../../d5/d55/class_o_n___user_data.html">ON_UserData</a>, are handled elsewhere and cannot be in ON_ClassArray<>s. </p>
|
||||
<p>private function for moving blocks of array memory caller is responsible for updating m_count and managing destruction/creation.</p>
|
||||
<p>This call to memmove is ok, even when T is a class with a vtable because the it doesn't change the vtable for the class. Classes that have back pointers, like <a class="el" href="../../d5/d55/class_o_n___user_data.html">ON_UserData</a>, are handled elsewhere and cannot be in ON_ClassArray<>s. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -1125,12 +1122,9 @@ template<class T > </div>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>is < current <a class="el" href="../../dd/d40/class_o_n___class_array.html#a1845abffe10408c4ce46046d9232f8e8" title="query /////////////////////////////////////////////////////////////// ">Count()</a>, then count is reduced to value. When the dynamic array needs to grow, this calculates the new value for m_capacity. </p>
|
||||
<p>Note: This code appears in <a class="el" href="../../dc/dfe/class_o_n___simple_array.html#a5d2395da5bc042c230d799ed92c9c564">ON_SimpleArray<T>::NewCapacity()</a> and <a class="el" href="../../dd/d40/class_o_n___class_array.html#a39b36908b477ca9e79dd435d1802237a">ON_ClassArray<T>::NewCapacity()</a>. Changes made to either function should be made to both functions. Because this code is template code that has to support dynamic linking and the code is defined in a header, I'm using copy-and-paste rather than a static. <br />
|
||||
<br />
|
||||
<br />
|
||||
This function returns 2*m_count unless that will result in an additional allocation of more than cap_size bytes. The cap_size concept was added in January 2010 because some calculations on enormous models were slightly underestimating the initial <a class="el" href="../../dd/d40/class_o_n___class_array.html#a619516bde2761154d967c96ee6c2b044" title="memory managment ///////////////////////////////////////////////// ">Reserve()</a> size and then wasting gigabytes of memory. <br />
|
||||
<br />
|
||||
cap_size = 128 MB on 32-bit os, 256 MB on 64 bit os</p>
|
||||
<p>Note: This code appears in <a class="el" href="../../dc/dfe/class_o_n___simple_array.html#a5d2395da5bc042c230d799ed92c9c564">ON_SimpleArray<T>::NewCapacity()</a> and <a class="el" href="../../dd/d40/class_o_n___class_array.html#a39b36908b477ca9e79dd435d1802237a">ON_ClassArray<T>::NewCapacity()</a>. Changes made to either function should be made to both functions. Because this code is template code that has to support dynamic linking and the code is defined in a header, I'm using copy-and-paste rather than a static.</p>
|
||||
<p>This function returns 2*m_count unless that will result in an additional allocation of more than cap_size bytes. The cap_size concept was added in January 2010 because some calculations on enormous models were slightly underestimating the initial <a class="el" href="../../dd/d40/class_o_n___class_array.html#a619516bde2761154d967c96ee6c2b044" title="memory managment ///////////////////////////////////////////////// ">Reserve()</a> size and then wasting gigabytes of memory.</p>
|
||||
<p>cap_size = 128 MB on 32-bit os, 256 MB on 64 bit os</p>
|
||||
<p>Growing the array will increase the memory use by more than cap_size. </p>
|
||||
|
||||
</div>
|
||||
@@ -1498,8 +1492,8 @@ template<class T > </div>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>Removes element. Uses memmove() to perform any necessary shifting. Decrements count by 1. Does not change capacity </p>
|
||||
<p>This call to memset is ok even when T has a vtable because in-place construction is used later. <br />
|
||||
This call to memset is ok even when T has a vtable because in-place construction is used later. </p>
|
||||
<p>This call to memset is ok even when T has a vtable because in-place construction is used later.</p>
|
||||
<p>This call to memset is ok even when T has a vtable because in-place construction is used later. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -1656,20 +1650,12 @@ template<class T > </div>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>Shrink/grows capacity. If value </p>
|
||||
<p>Allow "expert" users of ON_SimpleArray<>.SetArray(*,*,0) to clean up after themselves and deals with the case when the forget to clean up after themselves. <br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
uses "placement" for class construction/destruction</p>
|
||||
<p>Allow "expert" users of ON_SimpleArray<>.SetArray(*,*,0) to clean up after themselves and deals with the case when the forget to clean up after themselves.</p>
|
||||
<p>uses "placement" for class construction/destruction</p>
|
||||
<p>growing</p>
|
||||
<p>initialize new elements with default constructor</p>
|
||||
<p>even when m_a is an array of classes with vtable pointers, this call to memset(..., 0, ...) is what I want to do because in-place construction will be used when needed on this memory. <br />
|
||||
<br />
|
||||
<br />
|
||||
memory allocation failed</p>
|
||||
<p>even when m_a is an array of classes with vtable pointers, this call to memset(..., 0, ...) is what I want to do because in-place construction will be used when needed on this memory.</p>
|
||||
<p>memory allocation failed</p>
|
||||
<p>shrinking</p>
|
||||
<p>memory allocation failed </p>
|
||||
|
||||
@@ -1794,10 +1780,8 @@ template<class T> </div>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>Description: <a class="el" href="../../dd/d40/class_o_n___class_array.html#acc32ae1ba071b666ae49a9d2c2a041e7">Sort()</a> fills in the index[] array so that array[index[i]] <= array[index[i+1]]. <br />
|
||||
The array is not modified. <br />
|
||||
Parameters: sort_algorithm - [in] <br />
|
||||
ON::sort_algorithm::quick_sort (best in general) or ON::sort_algorithm::heap_sort Use ON::sort_algorithm::heap_sort only if you have done extensive testing with optimized release builds and are confident heap sort is significantly faster. index - [out] an array of length <a class="el" href="../../dd/d40/class_o_n___class_array.html#a1845abffe10408c4ce46046d9232f8e8" title="query /////////////////////////////////////////////////////////////// ">Count()</a> that is returned with some permutation of (0,1,...,<a class="el" href="../../dd/d40/class_o_n___class_array.html#a1845abffe10408c4ce46046d9232f8e8" title="query /////////////////////////////////////////////////////////////// ">Count()</a>-1). compare - [in] compare function compare(a,b) should return <0 if a<b, 0, if a==b, and >0 if a>b.</p>
|
||||
<p>Description: <a class="el" href="../../dd/d40/class_o_n___class_array.html#acc32ae1ba071b666ae49a9d2c2a041e7">Sort()</a> fills in the index[] array so that array[index[i]] <= array[index[i+1]]. The array is not modified.</p>
|
||||
<p>Parameters: sort_algorithm - [in] ON::sort_algorithm::quick_sort (best in general) or ON::sort_algorithm::heap_sort Use ON::sort_algorithm::heap_sort only if you have done extensive testing with optimized release builds and are confident heap sort is significantly faster. index - [out] an array of length <a class="el" href="../../dd/d40/class_o_n___class_array.html#a1845abffe10408c4ce46046d9232f8e8" title="query /////////////////////////////////////////////////////////////// ">Count()</a> that is returned with some permutation of (0,1,...,<a class="el" href="../../dd/d40/class_o_n___class_array.html#a1845abffe10408c4ce46046d9232f8e8" title="query /////////////////////////////////////////////////////////////// ">Count()</a>-1). compare - [in] compare function compare(a,b) should return <0 if a<b, 0, if a==b, and >0 if a>b.</p>
|
||||
<p>Returns: true if successful </p>
|
||||
|
||||
</div>
|
||||
@@ -1841,10 +1825,8 @@ template<class T> </div>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>Description: <a class="el" href="../../dd/d40/class_o_n___class_array.html#acc32ae1ba071b666ae49a9d2c2a041e7">Sort()</a> fills in the index[] array so that array[index[i]] <= array[index[i+1]]. <br />
|
||||
The array is not modified. <br />
|
||||
Parameters: sort_algorithm - [in] <br />
|
||||
ON::sort_algorithm::quick_sort (best in general) or ON::sort_algorithm::heap_sort Use ON::sort_algorithm::heap_sort only if you have done extensive testing with optimized release builds and are confident heap sort is significantly faster. index - [out] an array of length <a class="el" href="../../dd/d40/class_o_n___class_array.html#a1845abffe10408c4ce46046d9232f8e8" title="query /////////////////////////////////////////////////////////////// ">Count()</a> that is returned with some permutation of (0,1,...,<a class="el" href="../../dd/d40/class_o_n___class_array.html#a1845abffe10408c4ce46046d9232f8e8" title="query /////////////////////////////////////////////////////////////// ">Count()</a>-1). compare - [in] compare function compare(a,b,p) should return <0 if a<b, 0, if a==b, and >0 if a>b. p - [in] pointer passed as third argument to compare.</p>
|
||||
<p>Description: <a class="el" href="../../dd/d40/class_o_n___class_array.html#acc32ae1ba071b666ae49a9d2c2a041e7">Sort()</a> fills in the index[] array so that array[index[i]] <= array[index[i+1]]. The array is not modified.</p>
|
||||
<p>Parameters: sort_algorithm - [in] ON::sort_algorithm::quick_sort (best in general) or ON::sort_algorithm::heap_sort Use ON::sort_algorithm::heap_sort only if you have done extensive testing with optimized release builds and are confident heap sort is significantly faster. index - [out] an array of length <a class="el" href="../../dd/d40/class_o_n___class_array.html#a1845abffe10408c4ce46046d9232f8e8" title="query /////////////////////////////////////////////////////////////// ">Count()</a> that is returned with some permutation of (0,1,...,<a class="el" href="../../dd/d40/class_o_n___class_array.html#a1845abffe10408c4ce46046d9232f8e8" title="query /////////////////////////////////////////////////////////////// ">Count()</a>-1). compare - [in] compare function compare(a,b,p) should return <0 if a<b, 0, if a==b, and >0 if a>b. p - [in] pointer passed as third argument to compare.</p>
|
||||
<p>Returns: true if successful </p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
@@ -2011,9 +1993,9 @@ template<class T> </div>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Fri Jan 26 2018 12:38:21 for openNURBS SDK Help by  <a href="http://www.doxygen.org/index.html">
|
||||
Generated on Fri Jan 26 2018 04:54:30 for openNURBS SDK Help by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="../../doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.14
|
||||
</a> 1.8.13
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user