<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<div class="moz-cite-prefix">Hi Albert,</div>
<div class="moz-cite-prefix"><br>
</div>
<div class="moz-cite-prefix">The basic answer to your question
(using JavaScript) is sort-of. Whatever you do, it must use the
X3D API (aka SAI) to send a removeChildren then an addChildren
event has to send parsed X3D nodes to the Group/Transform node.
This can be done in JavaScript or Java or any other language where
there is the SAI library supported by the 3D browser. In the case
of a web browser this is only JavaScript; provided that the X3D
display library running in the web page "knows" how to do that.</div>
<div class="moz-cite-prefix"><br>
</div>
<div class="moz-cite-prefix">A non-X3D, but DOM way to do it would
be to just use the DOM methods appendChild and related ones (see
<a class="moz-txt-link-freetext" href="https://developer.mozilla.org/en-US/docs/Web/API/Node/appendChild">https://developer.mozilla.org/en-US/docs/Web/API/Node/appendChild</a>).
The X3D run-time would need to declare a mutation observer to
catch the change to the DOM and appropriate handle the scene
graph.</div>
<div class="moz-cite-prefix"><br>
</div>
<div class="moz-cite-prefix">I am concerned about your statement
relating to iframe. In DOM-land an iframe defines a new name space
with a barrier between the enclosing frame and the content frame.
It defines a rectangular region in the display where the target
has sole control (at least at the z-index where it is declared).
What you are describing is reading in content from an external
source and inserting the new content into the existing scene graph
in the same name scope. In your example, there is no exclusion
region in virtual space, nor a name scope barrier as you discuss
it.</div>
<div class="moz-cite-prefix"><br>
</div>
<div class="moz-cite-prefix">A closer analogy between HTML and X3D
would be the iframe and Inline nodes. Inline has the capability to
load and unload remote content. You can send the Inline node a new
URL. It will unload any content it loaded, then load the new
content. It maintains a semi-permeable barrier between the parent
(content with the Inline) and children (content loaded by Inline).</div>
<div class="moz-cite-prefix"><br>
</div>
<div class="moz-cite-prefix">This mechanism requires JavaScript to
process the button, but the messy work of changing content is all
handled by Inline by changing the url field.</div>
<div class="moz-cite-prefix"><br>
</div>
<div class="moz-cite-prefix">Leonard Daly</div>
<div class="moz-cite-prefix"><br>
</div>
<div class="moz-cite-prefix"><br>
</div>
<div class="moz-cite-prefix"><br>
</div>
<div class="moz-cite-prefix"><br>
</div>
<blockquote type="cite"
cite="mid:AM0PR0402MB3809B7C5004F65312EE72856DA860@AM0PR0402MB3809.eurprd04.prod.outlook.com">
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
<div style="color: rgb(0, 0, 0); font-family:
Calibri,Helvetica,sans-serif; font-size: 12pt;">
<span>One of the most useful implementations of the anchor in
our experimental XR browser was to be able to specify a
(Transform)
<span style="display: inline !important; background-color:
rgb(255, 255, 255); font-size-adjust: none">
node <span style="display: inline !important;
background-color: rgb(255, 255, 255); font-size-adjust:
none">
within the 3D scene</span> </span>as a target, where the
new x3d content would be displayed.</span></div>
<div style="color: rgb(0, 0, 0); font-family:
Calibri,Helvetica,sans-serif; font-size: 12pt;">
<span>(This mimics the functionality of the (I)frame in 2d)</span></div>
<div style="color: rgb(0, 0, 0); font-family:
Calibri,Helvetica,sans-serif; font-size: 12pt;">
<span><br>
</span></div>
<div style="color: rgb(0, 0, 0); font-family:
Calibri,Helvetica,sans-serif; font-size: 12pt;">
<span>It allowed us for example to define some objects as (3d)
buttons, each with and anchor to a X3D file containing a
model, and each having the same target specification, being a
node at a suitable presentation location.</span></div>
<div style="color: rgb(0, 0, 0); font-family:
Calibri,Helvetica,sans-serif; font-size: 12pt;">
<span>Each button would then load and display another object at
that location (replacing the former content of only that
node).</span></div>
<div style="color: rgb(0, 0, 0); font-family:
Calibri,Helvetica,sans-serif; font-size: 12pt;">
<span>This doesn't seem possible by the current specification
(except by JavaScript), or is it?</span></div>
<div style="color: rgb(0, 0, 0); font-family:
Calibri,Helvetica,sans-serif; font-size: 12pt;">
<span><br>
</span></div>
<div style="color: rgb(0, 0, 0); font-family:
Calibri,Helvetica,sans-serif; font-size: 12pt;">
<span>Regards,</span></div>
<div style="color: rgb(0, 0, 0); font-family:
Calibri,Helvetica,sans-serif; font-size: 12pt;">
<span><br>
</span></div>
<div style="color: rgb(0, 0, 0); font-family:
Calibri,Helvetica,sans-serif; font-size: 12pt;">
<span>Albert Jan wonnink</span></div>
<div style="color: rgb(0, 0, 0); font-family:
Calibri,Helvetica,sans-serif; font-size: 12pt;">
<span><br>
</span></div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<pre class="moz-quote-pre" wrap="">_______________________________________________
x3d-public mailing list
<a class="moz-txt-link-abbreviated" href="mailto:x3d-public@web3d.org">x3d-public@web3d.org</a>
<a class="moz-txt-link-freetext" href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a>
</pre>
</blockquote>
<p><br>
</p>
<div class="moz-signature">-- <br>
<font class="tahoma,arial,helvetica san serif" color="#333366">
<font size="+1"><b>Leonard Daly</b></font><br>
3D Systems & Cloud Consultant<br>
LA ACM SIGGRAPH Past Chair<br>
President, Daly Realism - <i>Creating the Future</i>
</font></div>
</body>
</html>