#X3D V4.0 utf8 PROFILE Immersive # [X3D] version=4.0 # [X3D] noNamespaceSchemaLocation=/specifications/x3d-4.0.xsd # X3D-to-ClassicVRML XSL translation autogenerated by X3dToClassicVrmlEncoding.xslt and X3dToVrml97.xslt # /x3d/content/X3dToClassicVrmlEncoding.xslt # /x3d/content/X3dToVrml97.xslt # Transformation using XSLT processor: Saxonica # [head] META "title" "ExtrusionEdgeCases.x3d" META "description" "Scene incorporating extrusion edge cases" META "creator" "Vsevolod Alekseyev, Vince Marchetti, Roy Walmsley, Leonard Daly, Dick Puk, Joe Williams, Don Brutzman" META "created" "29 January 2016" META "modified" "29 September 2025" META "reference" "/wiki/index.php/Extrusion_Edge_Cases" META "TODO" "add descriptions why each case holds special interest" META "TODO" "add named Viewpoints with name for each case" META "TODO" "X3D-public email thread http://web3d.org/pipermail/x3d-public_web3d.org/2016-January/004184.html" META "TODO" "Mantis issue 923 /member-only/mantis/view.php?id=923" META "specificationSection" "X3D encodings, ISO/IEC 19775-1.4, Part 1: Architecture and base components, Clause 13 Geometry3D component, Topic 13.3.5 Extrusion, Section 13.3.5.4 Special cases" META "specificationUrl" "/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/geometry3D.html#Extrusion" META "identifier" "/x3d/content/examples/Basic/X3dSpecifications/ExtrusionEdgeCases.x3d" META "generator" "X3D-Edit 4.0, /x3d/tools/X3D-Edit" META "license" "../license.html" # [Scene] ========== ========== ========== WorldInfo { title "ExtrusionEdgeCases.x3d" } Viewpoint { description "ExtrusionEdgeCases.x3d" position 9 7 40 } DEF TriangularSquiggle Group { children [ Transform { translation 2 10 0 children [ Shape { appearance Appearance { material Material { diffuseColor 0.8 0.1 0.05 } } geometry Extrusion { crossSection [ -1 0 0 1 1 0 -1 0 ] scale [ 1 1 1 1 1 1 2 2 3 3 3 3 ] spine [ -5 0 0 0 0 0 4 4 0 4 4 0 4 4 0 8 0 0 ] # spine is open, crossSection is closed } } ] } ] } Group { children [ Transform { scale 2 2 2 translation -2 -2 0 children [ Shape { appearance Appearance { material Material { diffuseColor 0 0.8 0.1 } } geometry Extrusion { crossSection [ -1 0 0 2 1 0 -1 0 ] solid FALSE # spine is open, crossSection is closed } } ] } ] } Group { children [ Transform { scale 2 2 2 translation 2 -2 0 children [ Shape { appearance Appearance { material Material { diffuseColor 0 0.8 0.1 } } geometry Extrusion { crossSection [ -1 0 0 2 1 0 -1 0 ] solid FALSE spine [ 3 1 0 3 0 0 ] # spine is open, crossSection is closed } } ] } ] } Group { children [ Transform { scale 1.5 1.5 1.5 translation 20 0 0 children [ Shape { appearance Appearance { material Material { diffuseColor 0.1 0 0.8 } } # spine is closed with only 3 points, thus 2 independent points. Sounds like a potential problem but is actually legitimate (i.e. not geometrically degenerate) for many cases. geometry Extrusion { beginCap FALSE endCap FALSE scale [ 1 1 1.2 1.2 1.4 1.4 ] solid FALSE spine [ 0 0 0 0 1 0 0 0 0 ] # spine is closed, crossSection is closed } } ] } ] }