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 177 178 179 180 181 182 183 184 185 186 187 188
|
<!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: CastleSceneCore: Class TX3DBindableStack</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="TX3DBindableStack"></a><h1 class="cio">Class TX3DBindableStack</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>Fields</td><td><a class="section" href="#PasDoc-Methods">Methods</a></td><td><a class="section" href="#PasDoc-Properties">Properties</a></td></tr></table>
<a name="PasDoc-Description"></a><h2 class="unit">Unit</h2>
<p class="unitlink">
<a href="CastleSceneCore.html">CastleSceneCore</a></p>
<h2 class="declaration">Declaration</h2>
<p class="declaration">
<code>type TX3DBindableStack = class(<a class="normal" href="X3DNodes.TX3DBindableStackBasic.html">TX3DBindableStackBasic</a>)</code></p>
<h2 class="description">Description</h2>
<p>
Stack of bindable nodes (only the top, bound, node is used for rendering/navigation). This keeps a stack of <a class="normal" href="X3DNodes.TAbstractBindableNode.html">TAbstractBindableNode</a>, with comfortable routines to examine top and push/pop from top. The stack is actually stored as a list, with the last item being the top one.</p>
<a name="PasDoc-Hierarchy"></a><h2 class="hierarchy">Hierarchy</h2>
<ul class="hierarchy"><li class="ancestor">TFPGObjectList</li>
<li class="ancestor"><a class="normal" href="X3DNodes.TX3DNodeList.html">TX3DNodeList</a></li>
<li class="ancestor"><a class="normal" href="X3DNodes.TX3DBindableStackBasic.html">TX3DBindableStackBasic</a></li>
<li class="thisitem">TX3DBindableStack</li></ul><h2 class="overview">Overview</h2>
<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>procedure <b><a href="CastleSceneCore.TX3DBindableStack.html#DoBoundChanged">DoBoundChanged</a></b>; virtual;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a href="legend.html"><img src="protected.gif" alt="Protected" title="Protected"></a></td>
<td class="itemcode"><code>procedure <b><a href="CastleSceneCore.TX3DBindableStack.html#DoScheduleBoundChanged">DoScheduleBoundChanged</a></b>;</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="CastleSceneCore.TX3DBindableStack.html#Create">Create</a></b>(AParentScene: <a href="CastleSceneCore.TCastleSceneCore.html">TCastleSceneCore</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>function <b><a href="CastleSceneCore.TX3DBindableStack.html#Top">Top</a></b>: <a href="X3DNodes.TAbstractBindableNode.html">TAbstractBindableNode</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="CastleSceneCore.TX3DBindableStack.html#PushIfEmpty">PushIfEmpty</a></b>(Node: <a href="X3DNodes.TAbstractBindableNode.html">TAbstractBindableNode</a>; SendEvents: boolean);</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="CastleSceneCore.TX3DBindableStack.html#CheckForDeletedNodes">CheckForDeletedNodes</a></b>(const RootNode: <a href="X3DNodes.TX3DRootNode.html">TX3DRootNode</a>; const SendEvents: boolean);</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="CastleSceneCore.TX3DBindableStack.html#Set_Bind">Set_Bind</a></b>(Node: <a href="X3DNodes.TAbstractBindableNode.html">TAbstractBindableNode</a>; const Value: boolean); override;</code></td>
</tr>
</table>
<a name="PasDoc-Properties"></a><h3 class="summary">Properties</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>property <b><a href="CastleSceneCore.TX3DBindableStack.html#ParentScene">ParentScene</a></b>: <a href="CastleSceneCore.TCastleSceneCore.html">TCastleSceneCore</a> read FParentScene;</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>property <b><a href="CastleSceneCore.TX3DBindableStack.html#OnBoundChanged">OnBoundChanged</a></b>: <a href="CastleSceneCore.html#TSceneNotification">TSceneNotification</a>
read FOnBoundChanged write FOnBoundChanged;</code></td>
</tr>
</table>
<h2 class="description">Description</h2>
<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="DoBoundChanged"></a><code>procedure <b>DoBoundChanged</b>; virtual;</code></td>
</tr>
<tr><td colspan="2">
<p>
Notification when the currently bound node, that is <a class="normal" href="CastleSceneCore.TX3DBindableStack.html#Top">Top</a>, changed. In this class, just calls <a class="normal" href="CastleSceneCore.TX3DBindableStack.html#OnBoundChanged">OnBoundChanged</a> if assigned.</p>
</td></tr>
</table>
<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="DoScheduleBoundChanged"></a><code>procedure <b>DoScheduleBoundChanged</b>;</code></td>
</tr>
<tr><td colspan="2">
<p>
Call <a class="normal" href="CastleSceneCore.TX3DBindableStack.html#DoBoundChanged">DoBoundChanged</a> at the nearest comfortable time. Either now (when not inside BeginChangesSchedule / EndChangesSchedule) or at a closing EndChangesSchedule.</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="Create"></a><code>constructor <b>Create</b>(AParentScene: <a href="CastleSceneCore.TCastleSceneCore.html">TCastleSceneCore</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="Top"></a><code>function <b>Top</b>: <a href="X3DNodes.TAbstractBindableNode.html">TAbstractBindableNode</a>;</code></td>
</tr>
<tr><td colspan="2">
<p>
Returns top item on this stack, or <code>Nil</code> if not present.</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="PushIfEmpty"></a><code>procedure <b>PushIfEmpty</b>(Node: <a href="X3DNodes.TAbstractBindableNode.html">TAbstractBindableNode</a>; SendEvents: boolean);</code></td>
</tr>
<tr><td colspan="2">
<p>
Add new node to the top, but only if stack is currently empty. If SendEvents, then isBound = true and bindTime events will be send to newly bound node.</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="CheckForDeletedNodes"></a><code>procedure <b>CheckForDeletedNodes</b>(const RootNode: <a href="X3DNodes.TX3DRootNode.html">TX3DRootNode</a>; const SendEvents: boolean);</code></td>
</tr>
<tr><td colspan="2">
<p>
Use when you suspect that some nodes on the stack are no longer present in VRML/X3D graph RootNode (they were deleted). In this case, they have to be removed from stack.
<p>If this will change the currently bound node, then the new bound node will receive isBound = true and bindTime events (the old node will not receive any <a class="normal" href="CastleSceneCore.TX3DBindableStack.html#Set_Bind">set_bind</a> = false or isBound = false events, since it may be destroyed by now).</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="Set_Bind"></a><code>procedure <b>Set_Bind</b>(Node: <a href="X3DNodes.TAbstractBindableNode.html">TAbstractBindableNode</a>; const Value: boolean); override;</code></td>
</tr>
<tr><td colspan="2">
<p>
Handle <code>set_bind</code> event send to given Node. This always generates appropriate events.</p>
</td></tr>
</table>
<h3 class="detail">Properties</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="ParentScene"></a><code>property <b>ParentScene</b>: <a href="CastleSceneCore.TCastleSceneCore.html">TCastleSceneCore</a> read FParentScene;</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="OnBoundChanged"></a><code>property <b>OnBoundChanged</b>: <a href="CastleSceneCore.html#TSceneNotification">TSceneNotification</a>
read FOnBoundChanged write FOnBoundChanged;</code></td>
</tr>
<tr><td colspan="2">
<p>
Notification when the currently bound node, that is <a class="normal" href="CastleSceneCore.TX3DBindableStack.html#Top">Top</a>, changed. This also includes notification when <a class="normal" href="CastleSceneCore.TX3DBindableStack.html#Top">Top</a> changed to (or from) <code>Nil</code>, that is when no node becomes bound or when some node is initially bound.</p>
</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:11</em>
</span>
</td></tr></table></body></html>
|