<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Helvetica;
        panose-1:2 11 6 4 2 2 2 2 2 4;}
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.apple-tab-span
        {mso-style-name:apple-tab-span;}
span.EmailStyle23
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:156657444;
        mso-list-template-ids:1099853882;}
@list l0:level1
        {mso-level-number-format:alpha-upper;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level2
        {mso-level-number-format:alpha-upper;
        mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level3
        {mso-level-number-format:alpha-upper;
        mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level4
        {mso-level-number-format:alpha-upper;
        mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level5
        {mso-level-number-format:alpha-upper;
        mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level6
        {mso-level-number-format:alpha-upper;
        mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level7
        {mso-level-number-format:alpha-upper;
        mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level8
        {mso-level-number-format:alpha-upper;
        mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level9
        {mso-level-number-format:alpha-upper;
        mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1
        {mso-list-id:833885617;
        mso-list-type:hybrid;
        mso-list-template-ids:288114892 898953958 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l1:level1
        {mso-level-start-at:16;
        mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;
        mso-fareast-font-family:Calibri;
        mso-bidi-font-family:"Times New Roman";}
@list l1:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l1:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l1:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
@list l1:level5
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l1:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l1:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
@list l1:level8
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l1:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l2
        {mso-list-id:1026175334;
        mso-list-template-ids:-1557223098;}
@list l2:level1
        {mso-level-number-format:alpha-upper;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l2:level2
        {mso-level-number-format:alpha-upper;
        mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l2:level3
        {mso-level-number-format:alpha-upper;
        mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l2:level4
        {mso-level-number-format:alpha-upper;
        mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l2:level5
        {mso-level-number-format:alpha-upper;
        mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l2:level6
        {mso-level-number-format:alpha-upper;
        mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l2:level7
        {mso-level-number-format:alpha-upper;
        mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l2:level8
        {mso-level-number-format:alpha-upper;
        mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l2:level9
        {mso-level-number-format:alpha-upper;
        mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l3
        {mso-list-id:1282105055;
        mso-list-template-ids:-605398666;}
@list l3:level1
        {mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l3:level2
        {mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l3:level3
        {mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l3:level4
        {mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l3:level5
        {mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l3:level6
        {mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l3:level7
        {mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l3:level8
        {mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l3:level9
        {mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l4
        {mso-list-id:1652830787;
        mso-list-template-ids:-8985244;}
@list l4:level1
        {mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l4:level2
        {mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l4:level3
        {mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l4:level4
        {mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l4:level5
        {mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l4:level6
        {mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l4:level7
        {mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l4:level8
        {mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l4:level9
        {mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal">Thanks for implementation analysis of nested prototypes.  Historically this has always seemed sufficiently well defined but difficult to implement, especially with nested IS/connect of Script nodes.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Roy, for your A-B-C-D-E execution order below, am wondering if that is sufficient.  I’d expect internal initialization of default values for fields to essential take place as you suggest, but then expect another round of initialization
 (from outside to inside) when a ProtoInstance instantiation applies initial fieldValue settings that ripple inward via any defined IS/connect, and then Script initialize(), all occurring before “time 0” rendering and event-generating behaviors of the composed
 prototype block itself.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">If your investigations reveal that further clarifying prose appears necessary in X3D4 Architecture to resolve potential ambiguities, please advise.  We will be able to consider final editorial improvements in the coming months as we transition
 editing of Committee Draft CD1 into final-draft review and final-specification approval by ISO national bodies.<o:p></o:p></p>
<ul type="disc">
<li class="MsoListParagraph" style="mso-list:l1 level1 lfo7">X3D4 Architecture, Clause 4 Concepts, 4.4.4 Prototype semantics<o:p></o:p></li><li class="MsoListParagraph" style="mso-list:l1 level1 lfo7">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/concepts.html#PrototypeSemantics<o:p></o:p></li></ul>
<p class="MsoNormal">As a reminder the X3D Validator includes a number of diagnostics for X3D prototypes, at least to the first level, that should confirm correctness of constructs below (at least when expressed in XML form).  Most Schematron rules for quality
 assurance (QA) should scalably recurse just fine when nested, but this has not been tested very much. 
<o:p></o:p></p>
<ul type="disc">
<li class="MsoListParagraph" style="mso-list:l1 level1 lfo7">X3D Validator<o:p></o:p></li><li class="MsoListParagraph" style="mso-list:l1 level1 lfo7">https://savage.nps.edu/X3dValidator<o:p></o:p></li></ul>
<p class="MsoNormal">The X3D Scene Authoring Hints and X3D Tooltips might also offer insight (or deserve improvement) as well.  These are not normative, but do try to complement the X3D4 Architecture specification with concise summaries and identification of
 good practices.  Each has evolved steadily through mailing-list discussion.  Suggested additions and issue reports are always welcome.<o:p></o:p></p>
<ul type="disc">
<li class="MsoListParagraph" style="mso-list:l1 level1 lfo7">X3D Scene Authoring Hints: Inlines and Prototypes, Scripts<o:p></o:p></li><li class="MsoListParagraph" style="mso-list:l1 level1 lfo7">https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Inlines<o:p></o:p></li><li class="MsoListParagraph" style="mso-list:l1 level1 lfo7">https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Scripts<o:p></o:p></li><li class="MsoListParagraph" style="mso-list:l1 level1 lfo7"><o:p> </o:p></li><li class="MsoListParagraph" style="mso-list:l1 level1 lfo7">X3D Tooltips: ProtoDeclare  ProtoInterface ProtoBody  ProtoInstance ExternProtoDeclare Script field fieldValue   <o:p></o:p></li><li class="MsoListParagraph" style="mso-list:l1 level1 lfo7">https://www.web3d.org/x3d/content/X3dTooltips.html<o:p></o:p></li></ul>
<p class="MsoNormal">Prototypes are a big part of the extensibility X in X3D, and the signature achievement of most major computer languages is the ability to extend the language itself.  Efforts to confirm this X3D language capability are much appreciated.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Happy New Year everyone!  8)<o:p></o:p></p>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">all the best, Don<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">-- <o:p>
</o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">Don Brutzman  Naval Postgraduate School, Code USW/Br        brutzman@nps.edu<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">X3D graphics, virtual worlds, navy robotics https://</span>
<span style="font-size:10.0pt;font-family:"Courier New"">faculty.nps.edu/brutzman<o:p></o:p></span></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> x3d-public <x3d-public-bounces@web3d.org> <b>On Behalf Of
</b>roy.walmsley@gmail.com<br>
<b>Sent:</b> Thursday, December 16, 2021 11:12 AM<br>
<b>To:</b> 'Holger Seelig' <holger.seelig@yahoo.de><br>
<b>Cc:</b> 'X3D' <x3d-public@web3d.org><br>
<b>Subject:</b> Re: [x3d-public] Nested prototypes with scripts execution ordering query<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span lang="EN-GB">Thank you Holger. However, with respect, that does not answer the questions I posed.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">I will indeed try along the lines you suggested – I did in fact try once and failed, but I probably made a mistake (as usual), and plan to try again.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">Roy<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> Holger Seelig <<a href="mailto:holger.seelig@yahoo.de">holger.seelig@yahoo.de</a>>
<br>
<b>Sent:</b> 16 December 2021 18:36<br>
<b>To:</b> <a href="mailto:roy.walmsley@gmail.com">roy.walmsley@gmail.com</a><br>
<b>Cc:</b> X3D <<a href="mailto:x3d-public@web3d.org">x3d-public@web3d.org</a>><br>
<b>Subject:</b> Re: [x3d-public] Nested prototypes with scripts execution ordering query<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><span lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">If you set a field in a Script node and want the proto to react on field changes the field must be an inputOutput field and in the  Script also, and then create a field handler with ’set_fieldName’.<o:p></o:p></span></p>
<div>
<p class="MsoNormal"><span lang="EN-GB"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-GB">Example:<o:p></o:p></span></p>
</div>
<div>
<div>
<p class="MsoNormal"><span lang="EN-GB"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-GB">PROTO Door [<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span class="apple-tab-span"><span lang="EN-GB">               
</span></span><span lang="EN-GB">inputOutput SFVec2f doorSize 1 1<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-GB">]<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-GB">{<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span class="apple-tab-span"><span lang="EN-GB">               
</span></span><span lang="EN-GB">Script {<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span class="apple-tab-span"><span lang="EN-GB">                               
</span></span><span lang="EN-GB" style="color:black">inputOutput SFVec2f doorSize IS dooSize</span><span lang="EN-GB"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span class="apple-tab-span"><span lang="EN-GB" style="color:black">                               
</span></span><span lang="EN-GB" style="color:black">url „</span><span lang="EN-GB"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-GB" style="color:black">function set_doorSize (value, time)</span><span lang="EN-GB"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-GB" style="color:black">{</span><span lang="EN-GB"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span class="apple-tab-span"><span lang="EN-GB" style="color:black">               
</span></span><span lang="EN-GB" style="color:black">// handle change</span><span lang="EN-GB"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-GB" style="color:black">}</span><span lang="EN-GB"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-GB" style="color:black">"</span><span lang="EN-GB"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span class="apple-tab-span"><span lang="EN-GB">               
</span></span><span lang="EN-GB">}<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-GB">}<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-GB"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-GB">Holger<o:p></o:p></span></p>
</div>
<div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span lang="EN-GB"><o:p> </o:p></span></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal"><span lang="EN-GB">Am 16.12.2021 um 14:42 schrieb <a href="mailto:roy.walmsley@gmail.com">
roy.walmsley@gmail.com</a>:<o:p></o:p></span></p>
</div>
<p class="MsoNormal"><span lang="EN-GB"><o:p> </o:p></span></p>
<div>
<div>
<p class="MsoNormal"><span lang="EN-GB">Hi,<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-GB"> <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-GB">I would like to clarify the order of execution to be expected with nested prototypes and scripts. To clarify, here is an example about a kitchen cabinet.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-GB"> <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-GB">I have a top-level X3D file that has an EXTERNPROTO defined for a DoubleFloorCabinet. I have a field in the prototype definition (among others) named cabinetWidth that is used to pass the width of the cabinet. I create
 a ProtoInstance of DoubleFloorCabinet, and specify the desired width in the field cabinetWidth.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-GB"> <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-GB">I have a second X3D file that contains the DoubleFloorCabinet prototype. This has a Script node, with a field cabinetWidth, with IS Connected to the prototype field cabinetWidth. The initialize function of this Script
 node calculates the required translations, rotations, sizes, etc., of all the Box nodes required to draw the cabinet at the desired width. This all works fine.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-GB"> <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-GB">Now, I want my cabinet to have doors, which might have different appearances, hence doors are drawn with a separate prototype. So my DoubleFloorCabinet has an EXTERNPROTO defined for CabinetDoor. I then create prototype
 instances, as necessary, and the previously mentioned Script calculates the door sizes, and hinge locations, etc., as required for the size of cabinet requested. So the CabinetDoor prototype has a SFVec2f field for doorSize, which is set by the Script during
 its initialize function.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-GB"> <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-GB">Finally, I have a third file CabinetDoor to draw a single door, which defines the CabinetDoor prototype. This draws a single door, at the requested size, and with the specified hinge location, etc.. All necessary calculations
 are currently carried out in the initialize function of this Script, and the appropriate transforms, extrusions, boxes, etc., are adjusted to draw the door as requested.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-GB"> <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-GB">Does it work? The door will be drawn the correct size if there is only one level of prototyping involved. However, with nested prototypes it fails, simply drawing the door, in the right place, but only at the default
 size. I’m assuming this may be because of the order of execution of the initialize functions in the Scripts in the nested prototypes. So:<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-GB"> <o:p></o:p></span></p>
</div>
<ol style="margin-top:0in" start="1" type="1">
<li class="MsoListParagraph" style="margin-top:0in;margin-bottom:0in;mso-list:l4 level1 lfo3">
<span lang="EN-GB">Is the execution order as follows? If not, what is it?<o:p></o:p></span></li><li class="MsoListParagraph" style="margin-top:0in;margin-bottom:0in;mso-list:l4 level1 lfo3">
<span lang="EN-GB">Is the ordering clearly specified in the standard?<o:p></o:p></span></li></ol>
<div>
<p class="MsoNormal"><span lang="EN-GB"> <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><b><u><span lang="EN-GB">EXECUTION ORDER</span></u></b><span lang="EN-GB"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><b><span lang="EN-GB"> </span></b><span lang="EN-GB"><o:p></o:p></span></p>
</div>
<ol style="margin-top:0in" start="1" type="A">
<li class="MsoListParagraph" style="margin-top:0in;margin-bottom:0in;mso-list:l0 level1 lfo6">
<span lang="EN-GB">Instantiate top level ProtoInstance<o:p></o:p></span></li><li class="MsoListParagraph" style="margin-top:0in;margin-bottom:0in;mso-list:l0 level1 lfo6">
<span lang="EN-GB">Instantiate nested level ProtoInstance<o:p></o:p></span></li><li class="MsoListParagraph" style="margin-top:0in;margin-bottom:0in;mso-list:l0 level1 lfo6">
<span lang="EN-GB">Call Script initialize function in nested level ProtoInstance<o:p></o:p></span></li><li class="MsoListParagraph" style="margin-top:0in;margin-bottom:0in;mso-list:l0 level1 lfo6">
<span lang="EN-GB">Call Script initialize function in top level ProtoInstance<o:p></o:p></span></li><li class="MsoListParagraph" style="margin-top:0in;margin-bottom:0in;mso-list:l0 level1 lfo6">
<span lang="EN-GB">Present Scene to browser.<o:p></o:p></span></li></ol>
<div>
<p class="MsoNormal"><span lang="EN-GB"> <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-GB">Thank you in advance for your comments,<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-GB">Roy<o:p></o:p></span></p>
</div>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:9.0pt;font-family:"Helvetica",sans-serif">_______________________________________________<br>
x3d-public mailing list<br>
</span><span lang="EN-GB"><a href="mailto:x3d-public@web3d.org"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif">x3d-public@web3d.org</span></a></span><span lang="EN-GB" style="font-size:9.0pt;font-family:"Helvetica",sans-serif"><br>
</span><span lang="EN-GB"><a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</span></a><o:p></o:p></span></p>
</div>
</blockquote>
</div>
<p class="MsoNormal"><span lang="EN-GB"><o:p> </o:p></span></p>
</div>
</div>
</div>
</body>
</html>