<div dir="auto"><div dir="auto"><a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD/Part01/components/geometry3D.html#NumberOfDistinctSpinePoints">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD/Part01/components/geometry3D.html#NumberOfDistinctSpinePoints</a></div><div dir="auto"><br></div><div dir="auto">says at least 2 non-coincident points are required. The question was if it would make sense to define also the one point case. The Rotations example may suggest that it does.</div><div dir="auto"><br></div><div data-smartmail="gmail_signature" dir="auto"><div dir="ltr">Andreas <br></div></div><br><div class="gmail_quote gmail_quote_container" dir="auto"><div dir="ltr" class="gmail_attr">On Fri, Jul 11, 2025, 5:35 AM Holger Seelig <<a href="mailto:holger.seelig@yahoo.de">holger.seelig@yahoo.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="line-break:after-white-space"><div>The specification of Extrusion has a section „<span style="color:rgb(0,0,0)">Coincident spine points</span>“ which describes the case when there are coincident spine points and different orientation or scale values:</div><div><br></div><div>13.3.5.4.4 Coincident spine points</div><div><br></div><a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD/Part01/components/geometry3D.html#CoincidentSpinePoints" target="_blank" rel="noreferrer">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD/Part01/components/geometry3D.html#CoincidentSpinePoints</a><br id="m_8759070379740609254lineBreakAtBeginningOfMessage"><div>
<div dir="auto" style="text-align:start;text-indent:0px;line-break:after-white-space"><div dir="auto" style="text-align:start;text-indent:0px;line-break:after-white-space"><div dir="auto" style="text-align:start;text-indent:0px;line-break:after-white-space"><div dir="auto" style="text-align:start;text-indent:0px;line-break:after-white-space"><div dir="auto" style="text-align:start;text-indent:0px;line-break:after-white-space"><div dir="auto" style="text-align:start;text-indent:0px;line-break:after-white-space"><div dir="auto" style="text-align:start;text-indent:0px;line-break:after-white-space"><div dir="auto" style="text-align:start;text-indent:0px;line-break:after-white-space"><div dir="auto" style="text-align:start;text-indent:0px;line-break:after-white-space"><div dir="auto" style="text-align:start;text-indent:0px;line-break:after-white-space"><div dir="auto" style="text-align:start;text-indent:0px;line-break:after-white-space"><div><br></div><div><font color="#000000">And this is a test for this case for coincident spine points and only orientations, as Andreas already mentioned:</font></div><div><br></div><div><a href="https://create3000.github.io/x_ite/playground/?url=https://create3000.github.io/Library/Tests/Components/Extrusion/Rotations.x3d" target="_blank" rel="noreferrer">https://create3000.github.io/x_ite/playground/?url=https://create3000.github.io/Library/Tests/Components/Extrusion/Rotations.x3d</a></div><div><br></div><div>Same with coincident spine points and only scales:</div><div><br></div><div><a href="https://create3000.github.io/x_ite/playground/?url=https://create3000.github.io/Library/Tests/Components/Extrusion/Scales.x3d" target="_blank" rel="noreferrer">https://create3000.github.io/x_ite/playground/?url=https://create3000.github.io/Library/Tests/Components/Extrusion/Scales.x3d</a></div><div><br></div><div>Best regards,</div><div>Holger</div><div><br></div><div><font color="#000000"><span>—</span></font></div><div style="color:rgb(0,0,0);letter-spacing:normal;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none">Holger Seelig<br><a href="mailto:holger.seelig@yahoo.de" target="_blank" rel="noreferrer">holger.seelig@yahoo.de</a><br><br></div></div></div></div></div></div></div></div></div></div></div></div>
</div>
<div><br><blockquote type="cite"><div>Am 11.07.2025 um 07:11 schrieb Andreas Plesch via x3d-public <<a href="mailto:x3d-public@web3d.org" target="_blank" rel="noreferrer">x3d-public@web3d.org</a>>:</div><br><div><div dir="ltr"><div>Extrusions are useful but have many edge cases.</div><div><br></div><div>Looking into how to improve a bit x3dom's implementation I came across:</div><div><br></div><div><a href="https://www.web3d.org/x3d/content/examples/ConformanceNist/Geometry/Extrusion/test_YZextrusionIndex.html" target="_blank" rel="noreferrer">https://www.web3d.org/x3d/content/examples/ConformanceNist/Geometry/Extrusion/test_YZextrusionIndex.html</a></div><div><br></div><div>The beginning of the spine here has a weird 180 degree flip in direction, from -1 to -2 back to 0 on the y axis.</div><div><br></div><div>I am wondering if adding this flip was unintentional since it is not mentioned in the description?</div><div><br></div><div>Removing the colinearity of these first spine points to isolate the effect of flipping direction results in:</div><div><br></div><div><a href="https://andreasplesch.github.io/Library/Viewer/index.html?url=data:text/plain;base64,PFgzRD4KICA8U2NlbmU+CiAgICAgIDxTaGFwZT4KICAgICAgICA8QXBwZWFyYW5jZT4KICAgICAgICAgIDxNYXRlcmlhbC8+CiAgICAgICAgPC9BcHBlYXJhbmNlPgogICAgICAgIDxFeHRydXNpb24gYmVnaW5DYXA9J2ZhbHNlJyBjcm9zc1NlY3Rpb249JzEgMCAwLjc1IDAuNjYgMC41IDAuODcgMC4yNSAwLjk3IDAgMSAtMC4yNSAwLjk3IC0wLjUgMC44NyAtMC43NSAwLjY2IC0xIDAgLTAuNzUgLTAuNjYgLTAuNSAtMC44NyAtMC4yNSAtMC45NyAwLjI1IC0wLjk3IDAuNSAtMC44NyAwLjc1IC0wLjY2IDEgMCcgZW5kQ2FwPSdmYWxzZScgc29saWQ9J2ZhbHNlJyBzcGluZT0nMCAwIC0xLCAwIDAuMDEgLTIsIDAgMCAwJy8+CiAgICAgIDwvU2hhcGU+CiAgICAgIDwvU2NlbmU+CjwvWDNEPg==" target="_blank" rel="noreferrer">https://andreasplesch.github.io/Library/Viewer/index.html?url=data:text/plain;base64,PFgzRD4KICA8U2NlbmU+CiAgICAgIDxTaGFwZT4KICAgICAgICA8QXBwZWFyYW5jZT4KICAgICAgICAgIDxNYXRlcmlhbC8+CiAgICAgICAgPC9BcHBlYXJhbmNlPgogICAgICAgIDxFeHRydXNpb24gYmVnaW5DYXA9J2ZhbHNlJyBjcm9zc1NlY3Rpb249JzEgMCAwLjc1IDAuNjYgMC41IDAuODcgMC4yNSAwLjk3IDAgMSAtMC4yNSAwLjk3IC0wLjUgMC44NyAtMC43NSAwLjY2IC0xIDAgLTAuNzUgLTAuNjYgLTAuNSAtMC44NyAtMC4yNSAtMC45NyAwLjI1IC0wLjk3IDAuNSAtMC44NyAwLjc1IC0wLjY2IDEgMCcgZW5kQ2FwPSdmYWxzZScgc29saWQ9J2ZhbHNlJyBzcGluZT0nMCAwIC0xLCAwIDAuMDEgLTIsIDAgMCAwJy8+CiAgICAgIDwvU2hhcGU+CiAgICAgIDwvU2NlbmU+CjwvWDNEPg==</a></div><div><br></div><div>x_ite interpretes this differently. Extreme spine direction reversals are probably out of spec. scope so I think the Nist Conformance example may have a typo.</div><div><br></div><div>Another, not well defined but potentially useful edge case is a spine with only coincident points:</div><div><br></div><div><a href="https://create3000.github.io/x_ite/playground/?url=https://raw.githubusercontent.com/create3000/Library/8f64c4caf4fcc9fc9e429d213caef2feba008efb/Tests/Components/Geometry3D/Extrusion/Rotations.x3d" target="_blank" rel="noreferrer">https://create3000.github.io/x_ite/playground/?url=https://raw.githubusercontent.com/create3000/Library/8f64c4caf4fcc9fc9e429d213caef2feba008efb/Tests/Components/Geometry3D/Extrusion/Rotations.x3d</a></div><div><br></div><div>The extrusions are solely based on changes in orientations.</div><div><br></div><div>Since there is no way to define a unique SCP, these extrusions are undefined. It may be worth defining this edge case explicitly by declaring the SCP axes to align with the local coordinate system. But I think this would require a spec. amendment. Would it be worth considering ?</div><div><br></div><div>Andreas</div><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div>Andreas Plesch<br>Waltham, MA 02453</div></div></div></div>
_______________________________________________<br>x3d-public mailing list<br><a href="mailto:x3d-public@web3d.org" target="_blank" rel="noreferrer">x3d-public@web3d.org</a><br><a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" target="_blank" rel="noreferrer">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><br></div></blockquote></div><br></div></blockquote></div></div>