<div dir="ltr">Cool, Andreas!</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Aug 14, 2023 at 2:58 PM Andreas Plesch <<a href="mailto:andreasplesch@gmail.com">andreasplesch@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><a href="https://andreasplesch.github.io/Library/Viewer/index.html?url=https://gist.githubusercontent.com/andreasplesch/df593e4f82b3fbd99148583ecb235edd/raw/d21237d4ee23a419eb28853ca9cd8fd96e1f5e0b/hyper_6_4_2.x3d" rel="noreferrer" target="_blank">https://andreasplesch.github.io/Library/Viewer/index.html?url=https://gist.githubusercontent.com/andreasplesch/df593e4f82b3fbd99148583ecb235edd/raw/d21237d4ee23a419eb28853ca9cd8fd96e1f5e0b/hyper_6_4_2.x3d</a><br>
<br>
is another conversion from <a href="http://bulatov.org/vrml/" rel="noreferrer" target="_blank">http://bulatov.org/vrml/</a>, a hyperbolic<br>
kaleidoscope with some minor changes.<br>
<br>
In addition to the use of Protos it shows how to use shared<br>
initialization and variable scope across multiple script output<br>
functions/fields as the original vrml script does the same, in a<br>
single script node.<br>
<br>
Cheers, Andreas<br>
<br>
On Sat, Aug 12, 2023 at 12:07 AM Andreas Plesch <<a href="mailto:andreasplesch@gmail.com" target="_blank">andreasplesch@gmail.com</a>> wrote:<br>
><br>
> Another vrml conversion from <a href="http://bulatov.org/vrml/easter/index.html" rel="noreferrer" target="_blank">http://bulatov.org/vrml/easter/index.html</a><br>
><br>
> <a href="https://andreasplesch.github.io/Library/Viewer/index.html?url=https://gist.githubusercontent.com/andreasplesch/df593e4f82b3fbd99148583ecb235edd/raw/7d3caceb31b83484711d56bc00d4c5d8107fa6bf/egg10.x3d" rel="noreferrer" target="_blank">https://andreasplesch.github.io/Library/Viewer/index.html?url=https://gist.githubusercontent.com/andreasplesch/df593e4f82b3fbd99148583ecb235edd/raw/7d3caceb31b83484711d56bc00d4c5d8107fa6bf/egg10.x3d</a><br>
><br>
> A few interesting x3dom related aspects here are:<br>
><br>
> - Protos work pretty well in x3dom, even if complicated<br>
> - For IS protofields it is sometimes necessary to provide appropriate<br>
> default values also in the Protobody (not just in the ProtoInterface)<br>
> in case the x3d default values cause problems. This happened here<br>
> because the TextureCoordinate node does not have point coordinates by<br>
> default. x3dom probably should ignore TextureCoordinate nodes with an<br>
> empty point field and treat that as if there is no TextureCoordinate<br>
> node.<br>
> - X3D scripts can be converted to DOM javascripts almost 1:1. ROUTEs<br>
> become the onoutputchange attribute with a function to call for the<br>
> fromNode, and the script itself finds the toNode in directOutput<br>
> style. The conversion shows a more complicated example which includes<br>
> use of wrapper function to avoid global (page wide) variables.<br>
> - HTML weirdness: Script DOM nodes generated 'from scratch' and then<br>
> appended to the page document execute when this happens. However,<br>
> Script DOM nodes generated with the builtin DOMParser or with<br>
> outer/innerHTML parsing are marked and do not execute when appended to<br>
> the page document. There is another, more obscure parsing method which<br>
> does generate executable Script nodes. This is what the editor now<br>
> uses.<br>
><br>
> Andreas<br>
><br>
> On Sat, Aug 5, 2023 at 4:44 PM Andreas Plesch <<a href="mailto:andreasplesch@gmail.com" target="_blank">andreasplesch@gmail.com</a>> wrote:<br>
> ><br>
> > Slightly adapted from <a href="http://bulatov.org/vrml/:after" rel="noreferrer" target="_blank">http://bulatov.org/vrml/:after</a> conversion to xml<br>
> > with x-ite:<br>
> ><br>
> > <a href="https://andreasplesch.github.io/Library/Viewer/index.html?url=https://gist.githubusercontent.com/andreasplesch/df593e4f82b3fbd99148583ecb235edd/raw/821419402327bd6927d2701174a29c5d078edc18/eversion.x3d" rel="noreferrer" target="_blank">https://andreasplesch.github.io/Library/Viewer/index.html?url=https://gist.githubusercontent.com/andreasplesch/df593e4f82b3fbd99148583ecb235edd/raw/821419402327bd6927d2701174a29c5d078edc18/eversion.x3d</a><br>
> ><br>
> > <a href="https://andreasplesch.github.io/Library/Viewer/index.html?url=https://gist.githubusercontent.com/andreasplesch/df593e4f82b3fbd99148583ecb235edd/raw/3af8bc0d53e157c9289eb18831672f8ef1ca033a/dodecahedron.x3d" rel="noreferrer" target="_blank">https://andreasplesch.github.io/Library/Viewer/index.html?url=https://gist.githubusercontent.com/andreasplesch/df593e4f82b3fbd99148583ecb235edd/raw/3af8bc0d53e157c9289eb18831672f8ef1ca033a/dodecahedron.x3d</a><br>
> ><br>
> > Cheers, Andreas<br>
> > --<br>
> > Andreas Plesch<br>
> > Waltham, MA 02453<br>
><br>
><br>
><br>
> --<br>
> Andreas Plesch<br>
> Waltham, MA 02453<br>
<br>
<br>
<br>
-- <br>
Andreas Plesch<br>
Waltham, MA 02453<br>
<br>
<br>
_______________________________________________<br>
X3dom-users mailing list<br>
<a href="mailto:X3dom-users@lists.sourceforge.net" target="_blank">X3dom-users@lists.sourceforge.net</a><br>
<a href="https://lists.sourceforge.net/lists/listinfo/x3dom-users" rel="noreferrer" target="_blank">https://lists.sourceforge.net/lists/listinfo/x3dom-users</a><br>
</blockquote></div>