<html dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
</head>
<body bgcolor="#FFFFFF" fpstyle="1" ocsi="0">
<div style="direction: ltr;font-family: Tahoma;color: #000000;font-size: 10pt;">
<div><span style="font-size: 10pt;">> </span><span style="font-family: 'Times New Roman'; font-size: 16px;">The old content would still be there, you would just be able to say with authority that the content was invalid or incorrect.</span></div>
<div><span style="font-family: 'Times New Roman'; font-size: 16px;"><br>
</span></div>
<div><span style="font-family: 'Times New Roman'; font-size: medium;">That's exactly what I'm after. Right now, X3DOM misrenders the Harrier plane (the wings are backwards), and I can't even file a bug, because there's no legitimate answer as to what's incorrect
 here - the scene or X3DOM. I find that situation rather unsatisfactory, contrary to the way software specs are supposed to work.</span></div>
<div><span style="font-family: 'Times New Roman'; font-size: medium;"><br>
</span></div>
<div><span style="font-family: 'Times New Roman'; font-size: 16px;">> If so, is there anything that the WG should include in the definition that would solve this problem or (at least) make your job easier?</span></div>
<div><span style="font-family: 'Times New Roman'; font-size: 16px;"><br>
</span></div>
<div><span style="font-family: 'Times New Roman'; font-size: 16px;">Don has already addressed some of my concerns on 1/27.</span></div>
<div><span style="font-family: 'Times New Roman'; font-size: 16px;"><br>
</span></div>
<div><font face="Times New Roman"><span style="font-size: 16px;">On #1 (-Y spine), he was no help, I'm afraid. Of course the SCP would be perpendicular to the spine, but what are the axes? There's a whole [0..2Pi) worth of freedom there.</span></font></div>
<div><br>
</div>
<div><span style="font-family: 'Times New Roman'; font-size: 16px;">On #2 (coincident points in the middle), he amended the angle rule to use previous/next *distinct* spine point(s) for SCP vector calculation instead of physically previous/next ones. This is
 what I thought all along was the best resolution of the conundrum, but that's not what I have in code, since it would contradict the existing wording of the standard.</span></div>
<div><span style="font-family: 'Times New Roman'; font-size: 16px;"><br>
</span></div>
<div><span style="font-family: 'Times New Roman'; font-size: 16px;">On #3 (collinear, but not straight spine) I'm frankly not sure what did he mean.</span></div>
<div><span style="font-family: 'Times New Roman'; font-size: 16px;"><br>
</span></div>
<div><span style="font-family: 'Times New Roman'; font-size: 16px;">When I wrote my tl;dr question, I expected the answer to be in form of vectors. Or a drawing. Since the WG won't provide reference code as a matter of principle (we've discussed that the other
 day), a reference *result* would be the next best thing. I think it would help both me and the WG's clarity of thought if someone from the WG would take some time to make the calculations by hand and produce the numeric answer to my question. Draw the spine,
 apply the rules, etc.</span></div>
<div><span style="font-family: 'Times New Roman'; font-size: 16px;"><br>
</span></div>
<div><br>
</div>
<div><br>
</div>
<br>
<div style="font-family: Times New Roman; color: #000000; font-size: 16px">
<hr tabindex="-1">
<div id="divRpF349162" style="direction: ltr;"><font face="Tahoma" size="2" color="#000000"><b>From:</b> Leonard Daly [Leonard.Daly@realism.com]<br>
<b>Sent:</b> Wednesday, February 03, 2016 9:17 PM<br>
<b>To:</b> Alekseyev, Vsevolod (NIH/NIAID) [E]; x3d-public@web3d.org<br>
<b>Subject:</b> Re: [x3d-public] Extrusions, take 3: initial proposed spec changes<br>
</font><br>
</div>
<div></div>
<div>
<div class="moz-cite-prefix">Seva,<br>
<br>
<br>
</div>
<blockquote type="cite"><style type="text/css" id="owaParaStyle"></style>
<div style="direction:ltr; font-family:Tahoma; color:#000000; font-size:10pt">I'm *importing* X3Ds into Blender, not exporting them. Extrusion is a part of the X3D standard. Whether a scene was written by hand or generated by a tool, Blender shouldn't choke
 on it, or produce meshes that are inconsistent with other X3D implementations. Right now it does both, because the standard is incomplete.
</div>
</blockquote>
<br>
<br>
I'm sorry I misunderstood. I thought you were trying to create X3D content that contained an extrusion object. Suppose there was a complete standard for Extrusion, and suppose it agreed exactly with what Blender does. Would that really change anything? The
 old content would still be there, you would just be able to say with authority that the content was invalid or incorrect. Would you still be required to deal with the old incorrect/invalid content? If so, is there anything that the WG should include in the
 definition that would solve this problem or (at least) make your job easier?<br>
<br>
<br>
Leonard Daly<br>
<br>
<br>
<br>
<br>
<blockquote type="cite">
<div style="direction:ltr; font-family:Tahoma; color:#000000; font-size:10pt">
<div><br>
<div><br>
</div>
<div><br>
<div style="font-family:Times New Roman; color:#000000; font-size:16px">
<hr tabindex="-1">
<div id="divRpF830955" style="direction:ltr"><font color="#000000" size="2" face="Tahoma"><b>From:</b> Leonard Daly [<a class="moz-txt-link-abbreviated" href="mailto:Leonard.Daly@realism.com" target="_blank">Leonard.Daly@realism.com</a>]<br>
<b>Sent:</b> Wednesday, February 03, 2016 5:38 PM<br>
<b>To:</b> Alekseyev, Vsevolod (NIH/NIAID) [E]; <a class="moz-txt-link-abbreviated" href="mailto:x3d-public@web3d.org" target="_blank">
x3d-public@web3d.org</a><br>
<b>Subject:</b> Re: [x3d-public] Extrusions, take 3: initial proposed spec changes<br>
</font><br>
</div>
<div>
<div class="moz-cite-prefix">Seva,<br>
<br>
Clarifying the details for V3.x is good and important for historical purposes.<br>
<br>
What code produces Extrusion nodes? I checked the Blender file out (for .blend at
<a class="moz-txt-link-freetext" href="http://archive.blender.org/development/architecture/blender-file-format/" target="_blank">
http://archive.blender.org/development/architecture/blender-file-format/</a> and <a class="moz-txt-link-freetext" href="http://www.atmind.nl/blender/blender-sdna.html" target="_blank">
http://www.atmind.nl/blender/blender-sdna.html</a>) and did not find any reference to an extrusion node. I don't think the X3D exporter does either.
<br>
<br>
If you have a very limited set of extrusion generators, it would be helpful to know. There are edge cases in all simple extrusions and it may be possible to write the specification to match they way those applications generated it.<br>
<br>
<br>
Leonard Daly<br>
<br>
<br>
</div>
<blockquote type="cite"><style>
<!--
@font-face
        {font-family:"MS Mincho"}
@font-face
        {font-family:Mangal}
@font-face
        {font-family:Mangal}
@font-face
        {font-family:Calibri}
@font-face
        {font-family:Consolas}
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;
        color:black}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline}
pre
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";
        color:black}
span.HTMLPreformattedChar
        {font-family:"Consolas",serif;
        color:black}
span.EmailStyle19
        {font-family:"Calibri",sans-serif;
        color:#1F497D}
.MsoChpDefault
        {font-size:10.0pt}
@page WordSection1
        {margin:56.7pt 42.5pt 56.7pt 85.05pt}
-->
</style>
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt; font-family:"Calibri",sans-serif; color:#1F497D">I am putting together an X3D importer for Blender, and, potentially, for another open source project. As a part of that effort, I have to convert X3D geometries,
 all 15 of them, into vertex/face arrays. As long as there are X3D 3.3 scenes out there, Extrusion support is not going away.</span></p>
<p class="MsoNormal"><span style="font-size:11.0pt; font-family:"Calibri",sans-serif; color:#1F497D"> </span></p>
<p class="MsoNormal"><span style="font-size:11.0pt; font-family:"Calibri",sans-serif; color:#1F497D">I’m not *<b>using</b>* extrusions in any meaningful sense. All I want is a standard that covers the entire parameter space. Is that too much to ask for?</span></p>
<p class="MsoNormal"><span style="font-size:11.0pt; font-family:"Calibri",sans-serif; color:#1F497D"> </span></p>
<p class="MsoNormal"><span style="font-size:11.0pt; font-family:"Calibri",sans-serif; color:#1F497D"> </span></p>
<p class="MsoNormal"><span style="font-size:11.0pt; font-family:"Calibri",sans-serif; color:#1F497D"> </span></p>
<div>
<div style="border:none; border-top:solid #E1E1E1
                        1.0pt; padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:11.0pt; font-family:"Calibri",sans-serif; color:windowtext">From:</span></b><span style="font-size:11.0pt; font-family:"Calibri",sans-serif; color:windowtext"> Leonard Daly [<a class="moz-txt-link-freetext" href="mailto:Leonard.Daly@realism.com" target="_blank"></a><a class="moz-txt-link-freetext" href="mailto:Leonard.Daly@realism.com" target="_blank">mailto:Leonard.Daly@realism.com</a>]
<br>
<b>Sent:</b> Wednesday, February 03, 2016 11:04 AM<br>
<b>To:</b> <a class="moz-txt-link-abbreviated" href="mailto:x3d-public@web3d.org" target="_blank">
x3d-public@web3d.org</a><br>
<b>Subject:</b> Re: [x3d-public] Extrusions, take 3: initial proposed spec changes</span></p>
</div>
</div>
<p class="MsoNormal"> </p>
<div>
<p class="MsoNormal">Seva,<br>
<br>
What do you use Extrusion for? <br>
<br>
I am thinking that the node may not be needed anymore. There are a couple of use cases that I haven't figured out yet and I wish to make sure your uses are understood and a functional solution exists in V4.<br>
<br>
<br>
Leonard Daly<br>
<br>
<br>
<br>
<br>
On 2/3/2016 5:36 AM, Alekseyev, Vsevolod (NIH/NIAID) [E] wrote:</p>
</div>
<blockquote style="margin-top:5.0pt; margin-bottom:5.0pt">
<blockquote style="margin-top:5.0pt; margin-bottom:5.0pt">
<pre>"If only 2 non-coincident spine points are provided, the corresponding SCP planes for each are perpendicular to the vector defined by these two points."</pre>
</blockquote>
<pre> </pre>
<pre>That doesn't help clarify the issue at all. First, this language adds nothing to the "coincident spine -> rotate the XZ" rule, second, axes in the plane must be defined, not just the plane itself. And, as we all can see from the misplaced wings on <a href="http://www.jishop.com/temp/x3d/#AV8bHarrier" target="_blank">http://www.jishop.com/temp/x3d/#AV8bHarrier</a> , the choice of axes does matter.</pre>
<pre> </pre>
<pre> </pre>
<pre> </pre>
<pre> </pre>
<pre> </pre>
<pre>________________________________________</pre>
<pre>From: Don Brutzman [<a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a>]</pre>
<pre>Sent: Wednesday, January 27, 2016 12:44 PM</pre>
<pre>To: Alekseyev, Vsevolod (NIH/NIAID) [E]; x3d public mailing list</pre>
<pre>Subject: Re: [x3d-public] Extrusions, take 3: initial proposed spec changes</pre>
<pre> </pre>
<pre>Thanks again Seva for the excellent test cases.</pre>
<pre> </pre>
<pre>Dick, Leonard, Roy and I worked on today's weekly X3D Working Group teleconference to craft improved specification prose.  Details follow.</pre>
<pre> </pre>
<pre>Next week we would like to continue with the prior wiki page examples, plus the long series of emails on this and related threads.</pre>
<pre><a href="http://www.web3d.org/wiki/index.php/Extrusion_Edge_Cases" target="_blank">http://www.web3d.org/wiki/index.php/Extrusion_Edge_Cases</a></pre>
<pre> </pre>
<pre>Together we created new Mantis issue 923 from the mail, with responses as follows.  Review and comment welcome.</pre>
<pre> </pre>
<pre>Access note:  Web3D members have access to all issues.</pre>
<pre> </pre>
<pre>Issue 0000923: 13.3.5 Extrusion - Edge cases</pre>
<pre><a href="http://www.web3d.org/member-only/mantis/view.php?id=923" target="_blank">http://www.web3d.org/member-only/mantis/view.php?id=923</a></pre>
<pre> </pre>
<pre>==========================================================================</pre>
<pre>==========================================================================</pre>
<pre>==========================================================================</pre>
<pre>Description:</pre>
<pre> </pre>
<pre>Hi X3D community,</pre>
<pre> </pre>
<pre><a href="http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/geometry3D.html#Extrusion" target="_blank">http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/geometry3D.html#Extrusion</a> [^]</pre>
<pre> </pre>
<pre>I've tried and failed twice to explain the problems with the definition of the Extrusion node. So here's a tl;dr version:</pre>
<pre> </pre>
<pre>Dear authors of the X3D standard, please take a careful look at the standard and answer me:</pre>
<pre> </pre>
<pre>1) When the spine goes (0,0,0)-(0,-1,0), what is the SCP?</pre>
<pre>Note: all answers but one will render one of the reference models in the Savage archive invalid.</pre>
<pre> </pre>
<pre>2) When the spine goes (0,0,0)-(0,1,0)-(0,0,0), what is the SCP?</pre>
<pre> </pre>
<pre>3) When the spine goes (0,0,0)-(1,1,0)-(1,1,0)-(1,1,0)-(2,0,0), what is the SCP for the three middle points?</pre>
<pre>==========================================================================</pre>
<pre>==========================================================================</pre>
<pre>==========================================================================</pre>
<pre> </pre>
<pre>Case (1). Need to clearly define SCP when only 2 spine points are defined.</pre>
<pre> </pre>
<pre>13.3.5.3 Algorithmic description</pre>
<pre><a href="http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/geometry3D.html#Algorithmicdescription" target="_blank">http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/geometry3D.html#Algorithmicdescription</a> [^]</pre>
<pre> </pre>
<pre>Suggested prose additions:</pre>
<pre>"If only 2 non-coincident spine points are provided, the corresponding SCP planes for each are perpendicular to the vector defined by these two points."</pre>
<pre> </pre>
<pre>"If fewer than 2 non-coincident spine points are provided, the extrusion is not well defined and no results are rendered."</pre>
<pre> </pre>
<pre>======================================</pre>
<pre> </pre>
<pre>Case (2), first consideration. The prose for orientation is inserted in the middle of the SCP definition. This muddles the definition for SCP.</pre>
<pre> </pre>
<pre>Suggested move for existing sentences:</pre>
<pre>     "The SCP is then rotated by the corresponding orientation value. This rotation is performed relative to the SCP. For example, to impart twist in the cross-section, a rotation about the Y-axis (0 1 0) would be used. Other orientations are valid and rotate the cross-section out of the SCP."</pre>
<pre> </pre>
<pre>Place these as a new paragraph at the end of the section, after the complete definition of SCP. With slight modification:</pre>
<pre> </pre>
<pre>     "Each SCP is then rotated by the corresponding orientation value. This rotation is performed relative to the SCP itself. For example, to impart twist in the cross-section, a rotation about the local Y-axis (0 1 0) would be used. Other orientation values are valid and may rotate the cross-section out of the plane of the original SCP."</pre>
<pre> </pre>
<pre>======================================</pre>
<pre> </pre>
<pre>Case (2), second consideration. Does the existing algorithm handle the example in question, in that three sequential spine points are defined where the first and third are coincident? This is a kind of reflection upon itself.</pre>
<pre> </pre>
<pre>We would expect to have 3 SCPs, each parallel, where the first and third are coincident. We further need to be careful with plane orientation (direction of normal) for each of these SCPs.</pre>
<pre> </pre>
<pre>When 2 vectors are coincident head-to-tail (and vice versa) the cross product does not appear to be well defined, since many perpendiculars are possible. A similiar situation may occur if they two vectors are parallel. These appear to be a special case.</pre>
<pre> </pre>
<pre>These circumstances appear to be addressed in the following section.</pre>
<pre>13.3.5.4 Special cases</pre>
<pre><a href="http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/geometry3D.html#Specialcases" target="_blank">http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/geometry3D.html#Specialcases</a> [^]</pre>
<pre> </pre>
<pre>======================================</pre>
<pre> </pre>
<pre>Case (3). Suggested specification prose revision.</pre>
<pre> </pre>
<pre>     "If two points are coincident, they both have the same SCP."</pre>
<pre> </pre>
<pre>is better expressed by</pre>
<pre> </pre>
<pre>     "If two or more sequential points in a spine array are coincident, they are each treated as a single point when computing the corresponding SCP, and each will have an identical SCP.</pre>
<pre> </pre>
<pre>NOTE. This case is useful when animating the spine array without needed to simultaneously modify the corresponding orientation and scale arrays."</pre>
<pre> </pre>
<pre>======================================</pre>
<pre>Additional change A.</pre>
<pre> </pre>
<pre>Figure 13.5 title is "Spine-aligned cross-section plane at a spine point.<a href="http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/geometry3D.html#f-Spine-alignedcross-section[%5E]Needtoadd" target="_blank">"</a></pre>
<pre><span class="MsoHyperlink"><a href="http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/geometry3D.html#f-Spine-alignedcross-section[%5E]Needtoadd" target="_blank">http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/geometry3D.html#f-Spine-alignedcross-section [^]</a></span></pre>
<pre><span class="MsoHyperlink"><a href="http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/geometry3D.html#f-Spine-alignedcross-section[%5E]Needtoadd" target="_blank"><span style="text-decoration:none"> </span></a></span></pre>
<pre><span class="MsoHyperlink"><a href="http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/geometry3D.html#f-Spine-alignedcross-section[%5E]Needtoadd" target="_blank">Need to add "</a></span>(SCP)" in the figure title above.</pre>
<pre> </pre>
<pre>======================================</pre>
<pre>Additional change B.</pre>
<pre> </pre>
<pre>13.3.5.4 Special cases</pre>
<pre><a href="http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/geometry3D.html#Specialcases" target="_blank">http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/geometry3D.html#Specialcases</a> [^]</pre>
<pre> </pre>
<pre>Change</pre>
<pre>     "If two points are coincident, they both have the same SCP."</pre>
<pre> </pre>
<pre>to</pre>
<pre>     "If two sequential spine points are coincident, they both have the same SCP."</pre>
<pre> </pre>
<pre>==========================================================================</pre>
<pre>==========================================================================</pre>
<pre>==========================================================================</pre>
<pre> </pre>
<pre>all the best, Don</pre>
<pre>--</pre>
<pre>Don Brutzman  Naval Postgraduate School, Code USW/Br       <a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a></pre>
<pre>Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149</pre>
<pre>X3D graphics, virtual worlds, navy robotics <a href="http://faculty.nps.edu/brutzman" target="_blank">http://faculty.nps.edu/brutzman</a></pre>
<pre> </pre>
<pre>_______________________________________________</pre>
<pre>x3d-public mailing list</pre>
<pre><a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a></pre>
<pre><a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a></pre>
<pre> </pre>
</blockquote>
<p class="MsoNormal" style="margin-bottom:12.0pt"> </p>
<div>
<p class="MsoNormal">-- <br>
<b><span style="font-size:13.5pt; color:#333366">Leonard Daly</span></b><span style="color:#333366"><br>
3D Systems & Cloud Consultant<br>
X3D Co-Chair on Sabbatical<br>
LA ACM SIGGRAPH Chair<br>
President, Daly Realism - <i>Creating the Future</i> </span></p>
</div>
</div>
</blockquote>
<br>
<br>
<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>
X3D Co-Chair on Sabbatical<br>
LA ACM SIGGRAPH Chair<br>
President, Daly Realism - <i>Creating the Future</i> </font></div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
<br>
<br>
<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>
X3D Co-Chair on Sabbatical<br>
LA ACM SIGGRAPH Chair<br>
President, Daly Realism - <i>Creating the Future</i> </font></div>
</div>
</div>
</div>
</body>
</html>