File: X3DFields.TX3DFileItem.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 (127 lines) | stat: -rw-r--r-- 9,007 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
<!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: X3DFields: Class TX3DFileItem</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="TX3DFileItem"></a><h1 class="cio">Class TX3DFileItem</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="X3DFields.html">X3DFields</a></p>
<h2 class="declaration">Declaration</h2>
<p class="declaration">
<code>type TX3DFileItem = class(<a class="normal" href="CastleInterfaces.TNonRefCountedInterfacedPersistent.html">TNonRefCountedInterfacedPersistent</a>)</code></p>
<h2 class="description">Description</h2>
<p>
Base class for any item within VRML/X3D file: a node, a field, a route, a prototype etc. We need a common base class for all such things to store <a class="normal" href="X3DFields.TX3DFileItem.html#PositionInParent">PositionInParent</a>.

<p>About ancestry: <a class="normal" href="X3DFields.TX3DFieldOrEvent.html">TX3DFieldOrEvent</a> make use of Assign mechanism and so need to descend from TPersistent. <a class="normal" href="X3DNodes.TX3DNode.html">TX3DNode</a> make use of interfaces and so must descend from something like TNonRefCountedInterfacedXxx. These are the only reasons, for now, why this descends from <a class="normal" href="CastleInterfaces.TNonRefCountedInterfacedPersistent.html">TNonRefCountedInterfacedPersistent</a>.</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="thisitem">TX3DFileItem</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="X3DFields.TX3DFileItem.html#Create">Create</a></b>;</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="X3DFields.TX3DFileItem.html#SaveToStream">SaveToStream</a></b>(Writer: <a  href="X3DFields.TX3DWriter.html">TX3DWriter</a>); virtual; abstract;</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="X3DFields.TX3DFileItem.html#SaveToXml">SaveToXml</a></b>: <a  href="X3DFields.html#TSaveToXmlMethod">TSaveToXmlMethod</a>; virtual;</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="X3DFields.TX3DFileItem.html#PositionInParent">PositionInParent</a></b>: Integer
      read FPositionInParent write FPositionInParent default -1;</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>;</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="SaveToStream"></a><code>procedure <b>SaveToStream</b>(Writer: <a  href="X3DFields.TX3DWriter.html">TX3DWriter</a>); virtual; abstract;</code></td>
</tr>
<tr><td colspan="2">
<p>
Save to stream.</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="SaveToXml"></a><code>function <b>SaveToXml</b>: <a  href="X3DFields.html#TSaveToXmlMethod">TSaveToXmlMethod</a>; virtual;</code></td>
</tr>
<tr><td colspan="2">
<p>
How is this saved to X3D XML encoding. This determines when <a class="normal" href="X3DFields.TX3DFileItem.html#SaveToStream">SaveToStream</a> is called. It also cooperates with some <a class="normal" href="X3DFields.TX3DFileItem.html#SaveToStream">SaveToStream</a> implementations, guiding how the item is actually saved. By default it is sxChildElement.</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="PositionInParent"></a><code>property <b>PositionInParent</b>: Integer
      read FPositionInParent write FPositionInParent default -1;</code></td>
</tr>
<tr><td colspan="2">
<p>
Position of this item within parent VRML/X3D node, used for saving the VRML/X3D graph to file. Default value -1 means &quot;undefined&quot;.

<p>For normal usage and processing of VRML graph, this is totally not needed. This position doesn't dictate actual meaning of VRML graph. If you're looking to change order of nodes, you probably want to rather look at something like ReplaceItems within <a class="normal" href="X3DNodes.TMFNode.html">TMFNode</a> or such.

<p>This field is purely a hint when encoding VRML file how to order VRML items (nodes, fields, routes, protos) within parent node or the VRML file. Reason: VRML allows non-unique node names. Each DEF XXX overrides all previous (&quot;previous&quot; in lexical sense, i.e. normal order of tokens in the file) DEF XXX with the same XXX, thus hiding previous node name &quot;XXX&quot;. This means that when saving VRML file we have to be very careful about the order of items, such that e.g. all routes are specified when appropriate node names are bound.

<p>This is a relative position, relative to other <code>PositionInParent</code> value of other <a class="normal" href="X3DFields.TX3DFileItem.html">TX3DFileItem</a> items. So it's not necessary to keep all <code>PositionInParent</code> different or successive within some parent. When saving, we will sort everything according to <code>PositionInParent</code>.

<p>See e.g. ../../../demo_models/x3d/tricky_def_use.x3dv for tests of some tricky layout. When reading such file we have to record <code>PositionInParent</code> to be able to save such file correctly.</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&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:13</em>
</span>
</td></tr></table></body></html>