File: X3DNodes.TAbstractBindableNode.html

package info (click to toggle)
castle-game-engine 5.2.0-3
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 185,428 kB
  • sloc: pascal: 260,781; cpp: 1,363; objc: 713; makefile: 537; xml: 496; sh: 480; php: 4
file content (161 lines) | stat: -rw-r--r-- 10,615 bytes parent folder | download
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
<!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: X3DNodes: Class TAbstractBindableNode</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="TAbstractBindableNode"></a><h1 class="cio">Class TAbstractBindableNode</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="X3DNodes.html">X3DNodes</a></p>
<h2 class="declaration">Declaration</h2>
<p class="declaration">
<code>type TAbstractBindableNode = class(<a class="normal" href="X3DNodes.TAbstractChildNode.html">TAbstractChildNode</a>)</code></p>
<h2 class="description">Description</h2>
<div class="nodescription">no description available, TAbstractChildNode description follows</div><div class="nodescription">no description available, TAbstractNode description follows</div><p>
Base X3D node.

<p>Almost all X3D nodes inherit from this. (Exception: X3DMetadataObject. So you cannot have metadata of metadata of...)</p>
<a name="PasDoc-Hierarchy"></a><h2 class="hierarchy">Hierarchy</h2>
<ul class="hierarchy"><li class="ancestor">TPersistent</li>
<li class="ancestor"><a class="normal" href="CastleInterfaces.TNonRefCountedInterfacedPersistent.html">TNonRefCountedInterfacedPersistent</a></li>
<li class="ancestor"><a class="normal" href="X3DFields.TX3DFileItem.html">TX3DFileItem</a></li>
<li class="ancestor"><a class="normal" href="X3DNodes.TX3DNode.html">TX3DNode</a></li>
<li class="ancestor"><a class="normal" href="X3DNodes.TAbstractNode.html">TAbstractNode</a></li>
<li class="ancestor"><a class="normal" href="X3DNodes.TAbstractChildNode.html">TAbstractChildNode</a></li>
<li class="thisitem">TAbstractBindableNode</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="X3DNodes.TAbstractBindableNode.html#BeforeTraverse">BeforeTraverse</a></b>(StateStack: <a  href="X3DNodes.TX3DGraphTraverseStateStack.html">TX3DGraphTraverseStateStack</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>procedure <b><a  href="X3DNodes.TAbstractBindableNode.html#CreateNode">CreateNode</a></b>; 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="X3DNodes.TAbstractBindableNode.html#EventSet_bind">EventSet_bind</a></b>: <a  href="X3DFields.TSFBoolEvent.html">TSFBoolEvent</a> read FEventSet_bind;</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="X3DNodes.TAbstractBindableNode.html#EventBindTime">EventBindTime</a></b>: <a  href="X3DFields.TSFTimeEvent.html">TSFTimeEvent</a> read FEventBindTime;</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>property <b><a  href="X3DNodes.TAbstractBindableNode.html#EventIsBound">EventIsBound</a></b>: <a  href="X3DFields.TSFBoolEvent.html">TSFBoolEvent</a> read FEventIsBound;</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="X3DNodes.TAbstractBindableNode.html#Transform">Transform</a></b>: <a  href="CastleVectors.html#TMatrix4Single">TMatrix4Single</a> read FTransform;</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>property <b><a  href="X3DNodes.TAbstractBindableNode.html#TransformScale">TransformScale</a></b>: Single read FTransformScale;</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="BeforeTraverse"></a><code>procedure <b>BeforeTraverse</b>(StateStack: <a  href="X3DNodes.TX3DGraphTraverseStateStack.html">TX3DGraphTraverseStateStack</a>); override;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</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="CreateNode"></a><code>procedure <b>CreateNode</b>; override;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</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="EventSet_bind"></a><code>property <b>EventSet_bind</b>: <a  href="X3DFields.TSFBoolEvent.html">TSFBoolEvent</a> read FEventSet_bind;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</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="EventBindTime"></a><code>property <b>EventBindTime</b>: <a  href="X3DFields.TSFTimeEvent.html">TSFTimeEvent</a> read FEventBindTime;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</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="EventIsBound"></a><code>property <b>EventIsBound</b>: <a  href="X3DFields.TSFBoolEvent.html">TSFBoolEvent</a> read FEventIsBound;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</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="Transform"></a><code>property <b>Transform</b>: <a  href="CastleVectors.html#TMatrix4Single">TMatrix4Single</a> read FTransform;</code></td>
</tr>
<tr><td colspan="2">
<p>
Transformation of this bindable node.

<p>Bound nodes cannot be instantiated multiple number of times (this would make simple event like &quot;set_bind&quot; not possible, as it would not be known in what coordinate space the node is bound), so it's perfectly safe and comfortable to just keep their transformation here, a their property.

<p>It is gathered during traversing. Last <a class="normal" href="X3DNodes.TAbstractBindableNode.html#BeforeTraverse">BeforeTraverse</a> call for this node sets Transform properties. By default, these represent identity transformation.

<p>Note that using <a class="normal" href="X3DNodes.TAbstractBindableNode.html#TransformScale">TransformScale</a> for bindable nodes like fog is a little simplification. Theoretically, the scale can be non-uniform, and around an arbitrary axis. So to apply e.g. fog, we should transform the 3D world back into local fog coordinate system, and calculate the distances there. Instead right now we do the opposite: transform stuff like fog VisibilityRange by <a class="normal" href="X3DNodes.TAbstractBindableNode.html#TransformScale">TransformScale</a>, and calculate distances in world coordinate system. This is a simplification, but in practice it's perfect (who uses non-uniform fog scale?) and it can be expressed for renderers (OpenGL) without any problems.

<p></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="TransformScale"></a><code>property <b>TransformScale</b>: Single read FTransformScale;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</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&amp;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:14</em>
</span>
</td></tr></table></body></html>