File: X3DNodes.TX3DInterfaceDeclaration.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 (290 lines) | stat: -rw-r--r-- 19,684 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
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
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
<!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 TX3DInterfaceDeclaration</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="TX3DInterfaceDeclaration"></a><h1 class="cio">Class TX3DInterfaceDeclaration</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 TX3DInterfaceDeclaration = class(<a class="normal" href="X3DFields.TX3DFileItem.html">TX3DFileItem</a>)</code></p>
<h2 class="description">Description</h2>
<p>
Interface declaration, used in VRML/X3D (exposed) prototypes and for nodes with dynamic fields (Script, ComposedShader). See VRML 2.0 and X3D specs.

<p>Each interface specification is a field or an event, stored in <a class="normal" href="X3DNodes.TX3DInterfaceDeclaration.html#FieldOrEvent">FieldOrEvent</a>. <a class="normal" href="X3DNodes.TX3DInterfaceDeclaration.html#FieldOrEvent">FieldOrEvent</a> is <code>Nil</code> before parsing.

<p>Field value is not initialized if you passed FieldValue = <code>False</code> to <a class="normal" href="X3DNodes.TX3DInterfaceDeclaration.html#Parse">Parse</a> (although IsClauseNames will always be initialized). FieldValue = <code>True</code> is used for prototype (not external) declarations and nodes with interface declarations (Script, ComposedShader etc.). In the future maybe some property like FieldValueInitialized will be exposed here, if needed at some point.

<p>Interface declaration doesn't have much properties, since all the information is contained within <a class="normal" href="X3DNodes.TX3DInterfaceDeclaration.html#FieldOrEvent">FieldOrEvent</a> instance, like Name, field class type, out or in (in case of event), exposed or not (in case of field), IsClauseNames.</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="thisitem">TX3DInterfaceDeclaration</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="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>constructor <b><a  href="X3DNodes.TX3DInterfaceDeclaration.html#Create">Create</a></b>(AParentNode: <a  href="X3DNodes.TX3DNode.html">TX3DNode</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>destructor <b><a  href="X3DNodes.TX3DInterfaceDeclaration.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="X3DNodes.TX3DInterfaceDeclaration.html#CopyFieldOrEvent">CopyFieldOrEvent</a></b>(NewParentNode: <a  href="X3DNodes.TX3DNode.html">TX3DNode</a>): <a  href="X3DFields.TX3DFieldOrEvent.html">TX3DFieldOrEvent</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="X3DNodes.TX3DInterfaceDeclaration.html#CopyAndAddFieldOrEvent">CopyAndAddFieldOrEvent</a></b>(Node: <a  href="X3DNodes.TX3DNode.html">TX3DNode</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="X3DNodes.TX3DInterfaceDeclaration.html#AddFieldOrEvent">AddFieldOrEvent</a></b>(Node: <a  href="X3DNodes.TX3DNode.html">TX3DNode</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="X3DNodes.TX3DInterfaceDeclaration.html#Parse">Parse</a></b>(Lexer: <a  href="X3DLexer.TX3DLexer.html">TX3DLexer</a>; Reader: <a  href="X3DNodes.TX3DReaderNames.html">TX3DReaderNames</a>; FieldValue, IsClauseAllowed: 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="X3DNodes.TX3DInterfaceDeclaration.html#ParseXML">ParseXML</a></b>(Element: TDOMElement; Reader: <a  href="X3DNodes.TX3DReaderNames.html">TX3DReaderNames</a>; FieldValue: 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="X3DNodes.TX3DInterfaceDeclaration.html#IDeclSaveToStream">IDeclSaveToStream</a></b>(Writer: <a  href="X3DFields.TX3DWriter.html">TX3DWriter</a>; FieldValue: 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="X3DNodes.TX3DInterfaceDeclaration.html#SaveToStream">SaveToStream</a></b>(Writer: <a  href="X3DFields.TX3DWriter.html">TX3DWriter</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="X3DNodes.TX3DInterfaceDeclaration.html#AccessType">AccessType</a></b>: <a  href="X3DNodes.html#TX3DAccessType">TX3DAccessType</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>function <b><a  href="X3DNodes.TX3DInterfaceDeclaration.html#DeepCopy">DeepCopy</a></b>(NewParentNode: <a  href="X3DNodes.TX3DNode.html">TX3DNode</a>; CopyState: <a  href="X3DNodes.TX3DNodeDeepCopyState.html">TX3DNodeDeepCopyState</a>): <a  href="X3DNodes.TX3DInterfaceDeclaration.html">TX3DInterfaceDeclaration</a>;</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.TX3DInterfaceDeclaration.html#ParentNode">ParentNode</a></b>: <a  href="X3DNodes.TX3DNode.html">TX3DNode</a> read FParentNode;</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.TX3DInterfaceDeclaration.html#FieldOrEvent">FieldOrEvent</a></b>: <a  href="X3DFields.TX3DFieldOrEvent.html">TX3DFieldOrEvent</a>
      read FFieldOrEvent write SetFieldOrEvent;</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.TX3DInterfaceDeclaration.html#Field">Field</a></b>: <a  href="X3DFields.TX3DField.html">TX3DField</a> read FField;</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.TX3DInterfaceDeclaration.html#Event">Event</a></b>: <a  href="X3DFields.TX3DEvent.html">TX3DEvent</a> read FEvent;</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="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Create"></a><code>constructor <b>Create</b>(AParentNode: <a  href="X3DNodes.TX3DNode.html">TX3DNode</a>);</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="Destroy"></a><code>destructor <b>Destroy</b>; 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="CopyFieldOrEvent"></a><code>function <b>CopyFieldOrEvent</b>(NewParentNode: <a  href="X3DNodes.TX3DNode.html">TX3DNode</a>): <a  href="X3DFields.TX3DFieldOrEvent.html">TX3DFieldOrEvent</a>;</code></td>
</tr>
<tr><td colspan="2">
<p>
Create a copy of current <a class="normal" href="X3DNodes.TX3DInterfaceDeclaration.html#FieldOrEvent">FieldOrEvent</a>. Sets NewParentNode as Result.ParentNode. Note the new copy will not have ParentIntefaceDeclaration set (as the idea is that you own created copy, not this <a class="normal" href="X3DNodes.TX3DInterfaceDeclaration.html">TX3DInterfaceDeclaration</a> instance).</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="CopyAndAddFieldOrEvent"></a><code>procedure <b>CopyAndAddFieldOrEvent</b>(Node: <a  href="X3DNodes.TX3DNode.html">TX3DNode</a>);</code></td>
</tr>
<tr><td colspan="2">
<p>
Create a copy of current <a class="normal" href="X3DNodes.TX3DInterfaceDeclaration.html#FieldOrEvent">FieldOrEvent</a>, and add it to Node.Fields or Node.Events.</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="AddFieldOrEvent"></a><code>procedure <b>AddFieldOrEvent</b>(Node: <a  href="X3DNodes.TX3DNode.html">TX3DNode</a>);</code></td>
</tr>
<tr><td colspan="2">
<p>
Copies only reference to <a class="normal" href="X3DNodes.TX3DInterfaceDeclaration.html#FieldOrEvent">FieldOrEvent</a>, adding it to Node.Fields or Node.Events.</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="Parse"></a><code>procedure <b>Parse</b>(Lexer: <a  href="X3DLexer.TX3DLexer.html">TX3DLexer</a>; Reader: <a  href="X3DNodes.TX3DReaderNames.html">TX3DReaderNames</a>; FieldValue, IsClauseAllowed: boolean);</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="ParseXML"></a><code>procedure <b>ParseXML</b>(Element: TDOMElement; Reader: <a  href="X3DNodes.TX3DReaderNames.html">TX3DReaderNames</a>; FieldValue: boolean);</code></td>
</tr>
<tr><td colspan="2">
<p>
Parse interface declaration encoded in XML.

<p>Note that classic VRML parser has here IsClauseAllowed: boolean parameter, this was set to <code>True</code> when parsing InterfaceDeclarations of special nodes (Script, ComposedShader etc.), since they could have IS clause (at least, as far as I understood the spec). But for X3D XML encoding, it's not available, since (AFAI understand the X3D XML encoding spec) the &lt;IS&gt; element inside node body may point from nodeField to any interface field of this node, including InterfaceDeclarations. So ParseISStatement handles this.</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="IDeclSaveToStream"></a><code>procedure <b>IDeclSaveToStream</b>(Writer: <a  href="X3DFields.TX3DWriter.html">TX3DWriter</a>; FieldValue: boolean);</code></td>
</tr>
<tr><td colspan="2">
<p>
Save this interface declaration to stream. This assumes that it starts at the beginning of the line, and at the end always writes <a class="normal" href="CastleUtils.html#NL">NL</a>, so at the end it's also at the beginning of some line.

<p>For XML encoding, IS clauses are not saved here. They must be saved by containing node.

<p></p>
<h6 class="description_section">Parameters</h6>
<dl class="parameters">
<dt>FieldValue</dt>
<dd>If <code>True</code> then we will always save Field value or (if classic encoding) IS clauses to stream, along with this interface declaration (if this interface declaration has the Field set). Otherwise, field's value will not be saved, only IS clauses if present.</dd>
</dl>
</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="SaveToStream"></a><code>procedure <b>SaveToStream</b>(Writer: <a  href="X3DFields.TX3DWriter.html">TX3DWriter</a>); override;</code></td>
</tr>
<tr><td colspan="2">
<p>
Save this interface declaration to stream. </p>
<h6 class="description_section">See also</h6>
<dl class="see_also">
  <dt><a class="normal" href="X3DNodes.TX3DInterfaceDeclaration.html#IDeclSaveToStream">IDeclSaveToStream</a></dt>
  <dd>Save this interface declaration to stream.</dd>
</dl>
</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="AccessType"></a><code>function <b>AccessType</b>: <a  href="X3DNodes.html#TX3DAccessType">TX3DAccessType</a>;</code></td>
</tr>
<tr><td colspan="2">
<p>
Returns access type, corresponding to current <a class="normal" href="X3DNodes.TX3DInterfaceDeclaration.html#Event">Event</a> and <a class="normal" href="X3DNodes.TX3DInterfaceDeclaration.html#Field">Field</a> values.

<p>Result is undefined if both Event and Field are <code>Nil</code> (which may happen when it's not initialized (e.g. parsed) yet) or when both are non-nil (which should never happen).</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="DeepCopy"></a><code>function <b>DeepCopy</b>(NewParentNode: <a  href="X3DNodes.TX3DNode.html">TX3DNode</a>; CopyState: <a  href="X3DNodes.TX3DNodeDeepCopyState.html">TX3DNodeDeepCopyState</a>): <a  href="X3DNodes.TX3DInterfaceDeclaration.html">TX3DInterfaceDeclaration</a>;</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="ParentNode"></a><code>property <b>ParentNode</b>: <a  href="X3DNodes.TX3DNode.html">TX3DNode</a> read FParentNode;</code></td>
</tr>
<tr><td colspan="2">
<p>
Containing node, if any, for this VRML interface declaration. This must also be set to FieldOrEvent.ParentNode created for this interface declaration.</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="FieldOrEvent"></a><code>property <b>FieldOrEvent</b>: <a  href="X3DFields.TX3DFieldOrEvent.html">TX3DFieldOrEvent</a>
      read FFieldOrEvent write SetFieldOrEvent;</code></td>
</tr>
<tr><td colspan="2">
<p>
Field or event of this interface declaration. Is non-nil after parsing.

<p>You can assign to this property, to constructs interface declarations (and so also prototypes) in your own code (e.g. this is used X3D XML reader). Just be careful, and remember that this object owns <code>FieldOrEvent</code> (that is, will free it at destruction).</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="Field"></a><code>property <b>Field</b>: <a  href="X3DFields.TX3DField.html">TX3DField</a> read FField;</code></td>
</tr>
<tr><td colspan="2">
<p>
Return <a class="normal" href="X3DNodes.TX3DInterfaceDeclaration.html#FieldOrEvent">FieldOrEvent</a> casted as appropriate class. <code>Nil</code> if such cast is not possible, for example when <a class="normal" href="X3DNodes.TX3DInterfaceDeclaration.html#FieldOrEvent">FieldOrEvent</a> is an event and you try to use Field method. </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="Event"></a><code>property <b>Event</b>: <a  href="X3DFields.TX3DEvent.html">TX3DEvent</a> read FEvent;</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:17</em>
</span>
</td></tr></table></body></html>