1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
<html>
<head>
<title>Castle Game Engine: CastleTriangleOctree: Class TTriangleOctree</title>
<meta name="generator" content="PasDoc 0.13.0">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<link rel="StyleSheet" type="text/css" href="pasdoc.css">
</head>
<body>
<table class="container"><tr><td class="navigation">
<h2>Castle Game Engine</h2><p><a href="introduction.html" class="navigation">Introduction</a></p><p><a href="AllUnits.html" class="navigation">Units</a></p><p><a href="ClassHierarchy.html" class="navigation">Class Hierarchy</a></p><p><a href="AllClasses.html" class="navigation">Classes, Interfaces, Objects and Records</a></p><p><a href="AllTypes.html" class="navigation">Types</a></p><p><a href="AllVariables.html" class="navigation">Variables</a></p><p><a href="AllConstants.html" class="navigation">Constants</a></p><p><a href="AllFunctions.html" class="navigation">Functions and Procedures</a></p><p><a href="AllIdentifiers.html" class="navigation">Identifiers</a></p></td><td class="content">
<a name="TTriangleOctree"></a><h1 class="cio">Class TTriangleOctree</h1>
<table class="sections wide_list">
<tr>
<td><a class="section" href="#PasDoc-Description">Description</a></td><td><a class="section" href="#PasDoc-Hierarchy">Hierarchy</a></td><td><a class="section" href="#PasDoc-Fields">Fields</a></td><td><a class="section" href="#PasDoc-Methods">Methods</a></td><td>Properties</td></tr></table>
<a name="PasDoc-Description"></a><h2 class="unit">Unit</h2>
<p class="unitlink">
<a href="CastleTriangleOctree.html">CastleTriangleOctree</a></p>
<h2 class="declaration">Declaration</h2>
<p class="declaration">
<code>type TTriangleOctree = class(<a class="normal" href="X3DTriangles.TBaseTrianglesOctree.html">TBaseTrianglesOctree</a>)</code></p>
<h2 class="description">Description</h2>
<p>
Octree based on triangles. Allows for fast collision-detection with a set of triangles. Each triangle is a <a class="normal" href="X3DTriangles.TTriangle.html">TTriangle</a> structure, that keeps triangle geometry in 3D space, and links to parent VRML Shapes and such.</p>
<a name="PasDoc-Hierarchy"></a><h2 class="hierarchy">Hierarchy</h2>
<ul class="hierarchy"><li class="ancestor">TObject</li>
<li class="ancestor"><a class="normal" href="CastleOctree.TOctree.html">TOctree</a></li>
<li class="ancestor"><a class="normal" href="X3DTriangles.TBaseTrianglesOctree.html">TBaseTrianglesOctree</a></li>
<li class="thisitem">TTriangleOctree</li></ul><h2 class="overview">Overview</h2>
<a name="PasDoc-Fields"></a><h3 class="summary">Fields</h3>
<table class="summary wide_list">
<tr class="list">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code><b><a href="CastleTriangleOctree.TTriangleOctree.html#Triangles">Triangles</a></b>: <a href="X3DTriangles.html#TTriangleList">TTriangleList</a>;</code></td>
</tr>
</table>
<a name="PasDoc-Methods"></a><h3 class="summary">Methods</h3>
<table class="summary wide_list">
<tr class="list">
<td class="visibility"><a href="legend.html"><img src="protected.gif" alt="Protected" title="Protected"></a></td>
<td class="itemcode"><code>function <b><a href="CastleTriangleOctree.TTriangleOctree.html#StatisticsBonus">StatisticsBonus</a></b>( const LeavesCount, ItemsCount, NonLeafNodesCount: Int64): string; override;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>constructor <b><a href="CastleTriangleOctree.TTriangleOctree.html#Create">Create</a></b>(const ARootBox: <a href="CastleBoxes.TBox3D.html">TBox3D</a>); overload;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>constructor <b><a href="CastleTriangleOctree.TTriangleOctree.html#Create">Create</a></b>(const ALimits: <a href="CastleOctree.TOctreeLimits.html">TOctreeLimits</a>; const ARootBox: <a href="CastleBoxes.TBox3D.html">TBox3D</a>); overload;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>destructor <b><a href="CastleTriangleOctree.TTriangleOctree.html#Destroy">Destroy</a></b>; override;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>function <b><a href="CastleTriangleOctree.TTriangleOctree.html#TreeRoot">TreeRoot</a></b>: <a href="CastleTriangleOctree.TTriangleOctreeNode.html">TTriangleOctreeNode</a>;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>procedure <b><a href="CastleTriangleOctree.TTriangleOctree.html#AddItemTriangle">AddItemTriangle</a></b>(Shape: TObject; const Position: <a href="CastleTriangles.html#TTriangle3Single">TTriangle3Single</a>; const Normal: <a href="CastleTriangles.html#TTriangle3Single">TTriangle3Single</a>; const TexCoord: <a href="CastleTriangles.html#TTriangle4Single">TTriangle4Single</a>; const Face: <a href="CastleTriangles.TFaceIndex.html">TFaceIndex</a>);</code></td>
</tr>
<tr class="list">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>procedure <b><a href="CastleTriangleOctree.TTriangleOctree.html#EnumerateTriangles">EnumerateTriangles</a></b>(EnumerateTriangleFunc: <a href="X3DTriangles.html#TEnumerateTriangleFunc">TEnumerateTriangleFunc</a>); override;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>function <b><a href="CastleTriangleOctree.TTriangleOctree.html#TrianglesCount">TrianglesCount</a></b>: Cardinal; override;</code></td>
</tr>
</table>
<h2 class="description">Description</h2>
<h3 class="detail">Fields</h3>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Triangles"></a><code><b>Triangles</b>: <a href="X3DTriangles.html#TTriangleList">TTriangleList</a>;</code></td>
</tr>
<tr><td colspan="2">
<p>
All our triangles.
<p>By keeping a list of triangles here, and only keeping indexes to this table in leafs (in ItemsIndices) we conserve a lot of memory. This also allows to use mailboxes and fast TriangleToIgnore (because every triangle has a unique index, and a pointer too, shared even if this triangle is placed in multiple leaves).</p>
</td></tr>
</table>
<h3 class="detail">Methods</h3>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a href="legend.html"><img src="protected.gif" alt="Protected" title="Protected"></a></td>
<td class="itemcode"><a name="StatisticsBonus"></a><code>function <b>StatisticsBonus</b>( const LeavesCount, ItemsCount, NonLeafNodesCount: Int64): string; override;</code></td>
</tr>
<tr><td colspan="2">
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Create"></a><code>constructor <b>Create</b>(const ARootBox: <a href="CastleBoxes.TBox3D.html">TBox3D</a>); overload;</code></td>
</tr>
<tr><td colspan="2">
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Create"></a><code>constructor <b>Create</b>(const ALimits: <a href="CastleOctree.TOctreeLimits.html">TOctreeLimits</a>; const ARootBox: <a href="CastleBoxes.TBox3D.html">TBox3D</a>); overload;</code></td>
</tr>
<tr><td colspan="2">
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Destroy"></a><code>destructor <b>Destroy</b>; override;</code></td>
</tr>
<tr><td colspan="2">
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="TreeRoot"></a><code>function <b>TreeRoot</b>: <a href="CastleTriangleOctree.TTriangleOctreeNode.html">TTriangleOctreeNode</a>;</code></td>
</tr>
<tr><td colspan="2">
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="AddItemTriangle"></a><code>procedure <b>AddItemTriangle</b>(Shape: TObject; const Position: <a href="CastleTriangles.html#TTriangle3Single">TTriangle3Single</a>; const Normal: <a href="CastleTriangles.html#TTriangle3Single">TTriangle3Single</a>; const TexCoord: <a href="CastleTriangles.html#TTriangle4Single">TTriangle4Single</a>; const Face: <a href="CastleTriangles.TFaceIndex.html">TFaceIndex</a>);</code></td>
</tr>
<tr><td colspan="2">
<p>
Add a single triangle. Automatically checks whether <a class="normal" href="CastleTriangles.html#IsValidTriangle">IsValidTriangle</a>. Before adding a lot of triangles, it's suggested to increase Triangles.AllowedCapacityCount.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="EnumerateTriangles"></a><code>procedure <b>EnumerateTriangles</b>(EnumerateTriangleFunc: <a href="X3DTriangles.html#TEnumerateTriangleFunc">TEnumerateTriangleFunc</a>); override;</code></td>
</tr>
<tr><td colspan="2">
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="TrianglesCount"></a><code>function <b>TrianglesCount</b>: Cardinal; override;</code></td>
</tr>
<tr><td colspan="2">
</td></tr>
</table>
<!-- Piwik -->
<script type="text/javascript">
var _paq = _paq || [];
_paq.push(["trackPageView"]);
_paq.push(["enableLinkTracking"]);
(function() {
var u=(("https:" == document.location.protocol) ? "https" : "http") + "://michalis.ii.uni.wroc.pl/piwik-castle-engine/";
_paq.push(["setTrackerUrl", u+"piwik.php"]);
_paq.push(["setSiteId", "1"]);
var d=document, g=d.createElement("script"), s=d.getElementsByTagName("script")[0]; g.type="text/javascript";
g.defer=true; g.async=true; g.src=u+"piwik.js"; s.parentNode.insertBefore(g,s);
})();
</script>
<!-- End Piwik Code -->
<noscript>
<!-- Piwik Image Tracker -->
<img src="http://michalis.ii.uni.wroc.pl/piwik-castle-engine/piwik.php?idsite=1&rec=1" style="border:0" alt="" />
<!-- End Piwik -->
</noscript>
<hr noshade size="1"><span class="appinfo"><em>Generated by <a href="http://pasdoc.sourceforge.net/">PasDoc 0.13.0</a> on 2015-06-15 04:43:12</em>
</span>
</td></tr></table></body></html>
|