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
|
<!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 TAnchorNode</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="TAnchorNode"></a><h1 class="cio">Class TAnchorNode</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 TAnchorNode = class(<a class="normal" href="X3DNodes.TAbstractX3DGroupingNode.html">TAbstractX3DGroupingNode</a>)</code></p>
<h2 class="description">Description</h2>
<div class="nodescription">no description available, TAbstractX3DGroupingNode description follows</div><div class="nodescription">no description available, TAbstractGroupingNode description follows</div><p>
This is a VRML/X3D >= 2.0 grouping node. This will push/pop full <a class="normal" href="X3DNodes.TX3DGraphTraverseState.html">TX3DGraphTraverseState</a> in Before/<a class="normal" href="X3DNodes.TAbstractGroupingNode.html#AfterTraverse">AfterTraverse</a>. It also propagates DirectionalLights in any child to all children in VRML2ActiceLights.
<p>To keep X3D hierarchy, this descends from X3DChildNode. This way <a class="normal" href="X3DNodes.TAbstractX3DGroupingNode.html">TAbstractX3DGroupingNode</a> and <a class="normal" href="X3DNodes.TStaticGroupNode.html">TStaticGroupNode</a> inherit also from X3DChildNode.</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="ancestor"><a class="normal" href="X3DNodes.TAbstractGroupingNode.html">TAbstractGroupingNode</a></li>
<li class="ancestor"><a class="normal" href="X3DNodes.TAbstractX3DGroupingNode.html">TAbstractX3DGroupingNode</a></li>
<li class="thisitem">TAnchorNode</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.TAnchorNode.html#DirectEnumerateActive">DirectEnumerateActive</a></b>( Func: <a href="X3DNodes.html#TEnumerateChildrenFunction">TEnumerateChildrenFunction</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.TAnchorNode.html#CreateNode">CreateNode</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>class function <b><a href="X3DNodes.TAnchorNode.html#ClassNodeTypeName">ClassNodeTypeName</a></b>: 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>class function <b><a href="X3DNodes.TAnchorNode.html#URNMatching">URNMatching</a></b>(const URN: string): boolean; 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.TAnchorNode.html#LoadAnchor">LoadAnchor</a></b>( out NewRootNode: <a href="X3DNodes.TX3DRootNode.html">TX3DRootNode</a>; out NewViewpoint: <a href="X3DNodes.TAbstractViewpointNode.html">TAbstractViewpointNode</a>; CurrentRootNode: <a href="X3DNodes.TX3DRootNode.html">TX3DRootNode</a>): boolean;</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.TAnchorNode.html#FdDescription">FdDescription</a></b>: <a href="X3DFields.TSFString.html">TSFString</a> read FFdDescription;</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.TAnchorNode.html#FdParameter">FdParameter</a></b>: <a href="X3DFields.TMFString.html">TMFString</a> read FFdParameter;</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.TAnchorNode.html#FdUrl">FdUrl</a></b>: <a href="X3DFields.TMFString.html">TMFString</a> read FFdUrl;</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="DirectEnumerateActive"></a><code>procedure <b>DirectEnumerateActive</b>( Func: <a href="X3DNodes.html#TEnumerateChildrenFunction">TEnumerateChildrenFunction</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="CreateNode"></a><code>procedure <b>CreateNode</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="ClassNodeTypeName"></a><code>class function <b>ClassNodeTypeName</b>: 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="URNMatching"></a><code>class function <b>URNMatching</b>(const URN: string): boolean; 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="LoadAnchor"></a><code>function <b>LoadAnchor</b>( out NewRootNode: <a href="X3DNodes.TX3DRootNode.html">TX3DRootNode</a>; out NewViewpoint: <a href="X3DNodes.TAbstractViewpointNode.html">TAbstractViewpointNode</a>; CurrentRootNode: <a href="X3DNodes.TX3DRootNode.html">TX3DRootNode</a>): boolean;</code></td>
</tr>
<tr><td colspan="2">
<p>
Load the document, world and/or viewpoint referenced by this Anchor node.
<p>This iterates over url field, for each URL trying to load referenced file. If URL specifies viewpoint name within 3D file (or current 3D world), we also search for viewpoint. If it will succeed for some URL, returns <code>True</code>, setting output parameters. Returns <code>False</code> if no loadable URL is found.
<p>Output NewRootNode is the loaded world, or <code>Nil</code> if actually we should stay within the same world. <code>Nil</code> happens for URLs like <code>#ViewpointName</code>, or when URL refers to some non-3D document (that is opened with appropriate application on user system).
<p>NewViewpoint is the new viewpoint that should be bound, or <code>Nil</code> if URL doesn't specify viewpoint name within 3D file. This viewpoint is part of NewRootNode graph, if NewRootNode <> <code>Nil</code>, or is part of CurrentRootNode if we should stay within current world (NewRootNode = <code>Nil</code>).
<p>Note that this means that NewRootNode = nil and NewViewpoint = nil are valid output from this method, and indicate that nothing should be done.
<p>CurrentRootNode is required to detect invalid viewpoint names within current file. An explanation why this is needed follows:
<p>Invalid viewpoint names within newly loaded files are harmless, that is newly loaded file is accepted anyway and invalid viewpoint name is ignored. X3D spec says this explicitly.
<p>But what should happen for invalid viewpoint names within current file? X3D spec doesn't say anything clear here (the part before "#" is valid in this case, since it just indicates current file, so someone could argue that URL is valid, only viewpoint name is wrong and so it should be ignored...). Consider url field like
<p></p>
<pre class="preformatted">
[ "#NotExistingViewpoint", "#ExistingViewpoint" ]
</pre>
<p>
<p>It seems sensible that we detect "#NotExistingViewpoint" as invalid, and move on to the next URL (which may be local or not). That's why we need CurrentRootNode instance. When CurrentRootNode = nil, we understand that no file is currently loaded (at least, you don't have it's X3D graph). It means that any "#Viewpoint" within current model is considered invalid.</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="FdDescription"></a><code>property <b>FdDescription</b>: <a href="X3DFields.TSFString.html">TSFString</a> read FFdDescription;</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="FdParameter"></a><code>property <b>FdParameter</b>: <a href="X3DFields.TMFString.html">TMFString</a> read FFdParameter;</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="FdUrl"></a><code>property <b>FdUrl</b>: <a href="X3DFields.TMFString.html">TMFString</a> read FFdUrl;</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:14</em>
</span>
</td></tr></table></body></html>
|