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
|
<!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 TAbstractGroupingNode</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="TAbstractGroupingNode"></a><h1 class="cio">Class TAbstractGroupingNode</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>Properties</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 TAbstractGroupingNode = class(<a class="normal" href="X3DNodes.TAbstractChildNode.html">TAbstractChildNode</a>)</code></p>
<h2 class="description">Description</h2>
<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="thisitem">TAbstractGroupingNode</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>function <b><a href="X3DNodes.TAbstractGroupingNode.html#SeparateGroup">SeparateGroup</a></b>: boolean; 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="X3DNodes.TAbstractGroupingNode.html#BeforeTraverse">BeforeTraverse</a></b>(StateStack: <a href="X3DNodes.TX3DGraphTraverseStateStack.html">TX3DGraphTraverseStateStack</a>); override;</code></td>
</tr>
<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.TAbstractGroupingNode.html#AfterTraverse">AfterTraverse</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="protected.gif" alt="Protected" title="Protected"></a></td>
<td class="itemcode"><code>procedure <b><a href="X3DNodes.TAbstractGroupingNode.html#ApplyTransform">ApplyTransform</a></b>(State: <a href="X3DNodes.TX3DGraphTraverseState.html">TX3DGraphTraverseState</a>); virtual;</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="SeparateGroup"></a><code>function <b>SeparateGroup</b>: boolean; virtual;</code></td>
</tr>
<tr><td colspan="2">
<p>
If <code>True</code> (default implementation in this class), then this really behaves like a grouping node. If <code>False</code>, this allows everything to "leak out" (transform changes, VRML 1.0 state changes etc.). Possibility useful for VRML 1.0 extension <a href="http://castle-engine.sourceforge.net/x3d_extensions.php#section_ext_wwwinline_separate">http://castle-engine.sourceforge.net/x3d_extensions.php#section_ext_wwwinline_separate</a></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="BeforeTraverse"></a><code>procedure <b>BeforeTraverse</b>(StateStack: <a href="X3DNodes.TX3DGraphTraverseStateStack.html">TX3DGraphTraverseStateStack</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="protected.gif" alt="Protected" title="Protected"></a></td>
<td class="itemcode"><a name="AfterTraverse"></a><code>procedure <b>AfterTraverse</b>(StateStack: <a href="X3DNodes.TX3DGraphTraverseStateStack.html">TX3DGraphTraverseStateStack</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="protected.gif" alt="Protected" title="Protected"></a></td>
<td class="itemcode"><a name="ApplyTransform"></a><code>procedure <b>ApplyTransform</b>(State: <a href="X3DNodes.TX3DGraphTraverseState.html">TX3DGraphTraverseState</a>); virtual;</code></td>
</tr>
<tr><td colspan="2">
<p>
Change State.Transform for children nodes.
<p>This should be done here, not in overriden <a class="normal" href="X3DNodes.TAbstractGroupingNode.html#BeforeTraverse">BeforeTraverse</a>. Reason: for storing ClipPlanes transformations, we need to know transformed matrix inside <a class="normal" href="X3DNodes.TAbstractGroupingNode.html#BeforeTraverse">TAbstractGroupingNode.BeforeTraverse</a> implementation. And we also do StateStack.Push inside <a class="normal" href="X3DNodes.TAbstractGroupingNode.html#BeforeTraverse">TAbstractGroupingNode.BeforeTraverse</a> implementation... So <code>ApplyTransform</code> must happen in the middle of <a class="normal" href="X3DNodes.TAbstractGroupingNode.html#BeforeTraverse">TAbstractGroupingNode.BeforeTraverse</a> call.</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:14</em>
</span>
</td></tr></table></body></html>
|