[x3d-public] bilinear and coincident Extrusion spines
Don Brutzman
don.brutzman at gmail.com
Sun Jul 13 12:58:35 PDT 2025
This NIST Conformance example is an interesting, tricky case. Good catch!
Yes I think the spine flip was unintentional, and the internal polygons
were artifacts from the Extrusion spine doubling back over itself. Those
artifacts aren't easily noticeable unless you are checking for no
endcaps and looking around inside the extruded hull.
Looking at version control, the Extrusion values used in the example match
the originals.
- <meta content='12 June 2002' name='modified'/>
- spine='0 -1 0 0 -2 0 0 0 0 0 1 0 0 2 0 0 3 -1 0 3 -2 0 3 -3 0 3 -4 0 3
-5 0 3 -6'
-
https://sourceforge.net/p/x3d/code/180/tree/www.web3d.org/x3d/content/examples/ConformanceNist/Geometry/Extrusion/test-YZextrusion.x3d
Given that the artifacts were unintentional, I have gone ahead and
simplified this model: removed the extra layer of complication introduced
by the Transform rotation/translation, added a Viewpoint for easy
inspection, refactored the spine to be similar but much simpler.
- X3D Example Archives: Conformance Nist, Geometry, Extrusion, test
YZextrusion
- <meta name='modified' content='13 July 2025'/>
- spine='0 -3 0 0 0 0 0 1 0 0 2 0 0 3 -1 0 3 -5'
-
https://www.web3d.org/x3d/content/examples/ConformanceNist/Geometry/Extrusion/test_YZextrusionIndex.html
- version-control diff at https://sourceforge.net/p/x3d/code/37160/
Have fun with X3D Extrusion! 😀
On Thu, Jul 10, 2025 at 10:12 PM Andreas Plesch via x3d-public <
x3d-public at web3d.org> wrote:
> Extrusions are useful but have many edge cases.
>
> Looking into how to improve a bit x3dom's implementation I came across:
>
>
> https://www.web3d.org/x3d/content/examples/ConformanceNist/Geometry/Extrusion/test_YZextrusionIndex.html
>
> 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.
>
> I am wondering if adding this flip was unintentional since it is not
> mentioned in the description?
>
> Removing the colinearity of these first spine points to isolate the effect
> of flipping direction results in:
>
>
> https://andreasplesch.github.io/Library/Viewer/index.html?url=data:text/plain;base64,PFgzRD4KICA8U2NlbmU+CiAgICAgIDxTaGFwZT4KICAgICAgICA8QXBwZWFyYW5jZT4KICAgICAgICAgIDxNYXRlcmlhbC8+CiAgICAgICAgPC9BcHBlYXJhbmNlPgogICAgICAgIDxFeHRydXNpb24gYmVnaW5DYXA9J2ZhbHNlJyBjcm9zc1NlY3Rpb249JzEgMCAwLjc1IDAuNjYgMC41IDAuODcgMC4yNSAwLjk3IDAgMSAtMC4yNSAwLjk3IC0wLjUgMC44NyAtMC43NSAwLjY2IC0xIDAgLTAuNzUgLTAuNjYgLTAuNSAtMC44NyAtMC4yNSAtMC45NyAwLjI1IC0wLjk3IDAuNSAtMC44NyAwLjc1IC0wLjY2IDEgMCcgZW5kQ2FwPSdmYWxzZScgc29saWQ9J2ZhbHNlJyBzcGluZT0nMCAwIC0xLCAwIDAuMDEgLTIsIDAgMCAwJy8+CiAgICAgIDwvU2hhcGU+CiAgICAgIDwvU2NlbmU+CjwvWDNEPg==
>
> 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.
>
> Another, not well defined but potentially useful edge case is a spine with
> only coincident points:
>
>
> https://create3000.github.io/x_ite/playground/?url=https://raw.githubusercontent.com/create3000/Library/8f64c4caf4fcc9fc9e429d213caef2feba008efb/Tests/Components/Geometry3D/Extrusion/Rotations.x3d
>
> The extrusions are solely based on changes in orientations.
>
> 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 ?
>
> Andreas
> --
> Andreas Plesch
> Waltham, MA 02453
> _______________________________________________
> x3d-public mailing list
> x3d-public at web3d.org
> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20250713/2475a2cf/attachment.html>
More information about the x3d-public
mailing list