<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.2//EN" "https://www.web3d.org/specifications/x3d-3.2.dtd">
<X3D profile='Immersive' version='3.2' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='https://www.web3d.org/specifications/x3d-3.2.xsd'>
  <head>
    <meta content='ExtrusionCrossSectionExampleTorus.x3d' name='title'/>
    <meta content='Don Brutzman' name='creator'/>
    <meta content='31 August 2003' name='created'/>
    <meta content='9 October 2023' name='modified'/>
    <meta content='Torus example demonstrating cross-section prototype for Extrusion node that also draws spine line plus oriented, scaled cross sections at each spine point.' name='description'/>
    <meta content='Utilize ExtrusionCrossSection ProtoInstance as a Shape node (with containerField="children") rather than an Extrusion node (with containerField="geometry").' name='hint'/>
    <meta content='ExtrusionExampleShip.x3d' name='reference'/>
    <meta content='ExtrusionCrossSectionExampleShip.x3d' name='reference'/>
    <meta content='ExtrusionCrossSectionPrototype.x3d' name='reference'/>
    <meta content='https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter30-Scripts/Figure30.5ScriptTorusBuilder.x3d' name='reference'/>
    <meta content='VRML 97 Specification, 6.18 Extrusion' name='reference'/>
    <meta content='https://www.web3d.org/technicalinfo/specifications/vrml97/part1/nodesRef.html#Extrusion' name='reference'/>
    <meta content='VRML 97 Specification, Figure 6.6' name='Image'/>
    <meta content='https://www.web3d.org/technicalinfo/specifications/vrml97/Images/Extrusion.gif' name='Image'/>
    <meta content='http://realism.com/Web3D/Examples/Extrusion/_frame.html' name='reference'/>
    <meta content='http://www.cs.brown.edu/~gss/vrml/drawpoly.html' name='reference'/>
    <meta content='ExtrusionXj3dGoldberg1999.java' name='reference'/>
    <meta content='http://web3d.metrolink.com/cgi-bin/cvsweb.cgi/x3d/src/com/sun/j3d/loaders/vrml97/impl/Attic/Extrusion.java' name='reference'/>
    <meta content='https://www.web3d.org/x3d/content/examples/Basic/course/ExtrusionCrossSectionExampleTorus.x3d' name='identifier'/>
    <meta content='X3D-Edit 4.0, https://www.web3d.org/x3d/tools/X3D-Edit' name='generator'/>
    <meta content='../license.html' name='license'/>
  </head>
  <Scene>
    <!-- Utilize ExtrusionCrossSection ProtoInstance as a Shape node (with containerField="children") rather than an Extrusion node (with containerField="geometry"). -->
    <WorldInfo title='ExtrusionCrossSectionExampleTorus.x3d'/>
    <ExternProtoDeclare appinfo='Shape prototype for Extrusion node that also draws spine line plus oriented scaled cross sections at each spine point' documentation='https://www.web3d.org/x3d/content/examples/Basic/course/ExtrusionCrossSectionPrototype.x3d' name='ExtrusionCrossSection' url='"ExtrusionCrossSectionPrototype.x3d#ExtrusionCrossSection" "https://www.web3d.org/x3d/content/examples/Basic/course/ExtrusionCrossSectionPrototype.x3d#ExtrusionCrossSection" "ExtrusionCrossSectionPrototype.wrl#ExtrusionCrossSection" "https://www.web3d.org/x3d/content/examples/Basic/course/ExtrusionCrossSectionPrototype.wrl#ExtrusionCrossSection"'>
      <!-- run-time eventIn Extrusion-modification interfaces for VRML 97 compatibility -->
      <field accessType='initializeOnly' appinfo='Extrusion name' name='name' type='SFString'/>
      <field accessType='initializeOnly' appinfo='Extrusion field' name='crossSection' type='MFVec2f'/>
      <field accessType='initializeOnly' appinfo='Extrusion field' name='spine' type='MFVec3f'/>
      <field accessType='initializeOnly' appinfo='Extrusion field' name='scale' type='MFVec2f'/>
      <field accessType='initializeOnly' appinfo='Extrusion field' name='orientation' type='MFRotation'/>
      <field accessType='initializeOnly' appinfo='Extrusion field' name='beginCap' type='SFBool'/>
      <field accessType='initializeOnly' appinfo='Extrusion field' name='endCap' type='SFBool'/>
      <field accessType='initializeOnly' appinfo='Extrusion field' name='ccw' type='SFBool'/>
      <field accessType='initializeOnly' appinfo='Extrusion field' name='convex' type='SFBool'/>
      <field accessType='initializeOnly' appinfo='Extrusion field' name='creaseAngle' type='SFFloat'/>
      <field accessType='initializeOnly' appinfo='Extrusion field' name='solid' type='SFBool'/>
      <field accessType='inputOutput' appinfo='emissiveColor of spine' name='spineColor' type='SFColor'/>
      <field accessType='inputOutput' appinfo='diffuseColor of crossSection' name='crossSectionColor' type='SFColor'/>
      <field accessType='inputOutput' appinfo='transparency of crossSection' name='crossSectionTransparency' type='SFFloat'/>
      <field accessType='inputOutput' appinfo='diffuseColor of extrusion hull' name='extrusionColor' type='SFColor'/>
      <field accessType='inputOutput' appinfo='transparency of extrusion hull' name='extrusionTransparency' type='SFFloat'/>
      <field accessType='initializeOnly' appinfo='Image to apply to Extrusion' name='extrusionImageTexture' type='SFNode'/>
      <field accessType='initializeOnly' appinfo='TextureTransform coordinates of image applied to Extrusion' name='extrusionTextureTransform' type='SFNode'/>
      <field accessType='inputOnly' appinfo='Extrusion field' name='set_crossSection' type='MFVec2f'/>
      <field accessType='inputOnly' appinfo='Extrusion field' name='set_spine' type='MFVec3f'/>
      <field accessType='inputOnly' appinfo='Extrusion field' name='set_scale' type='MFVec2f'/>
      <field accessType='inputOnly' appinfo='Extrusion field' name='set_orientation' type='MFRotation'/>
      <field accessType='initializeOnly' appinfo='Whether to provide initialization trace statements showing node construction' name='traceEnabled' type='SFBool'/>
    </ExternProtoDeclare>
    <!-- ==================== -->
    <!-- Example instance adapted from Figure15.12Torus.x3d -->
    <!-- https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter15-Extrusion/Figure15.12Torus.x3d -->
    <Viewpoint description='Torus crossSections, spine and hull' orientation='-0.351 0.926 0.14 0.81' position='10 5 10'/>
    <ProtoInstance name='ExtrusionCrossSection'>
      <fieldValue name='name' value='Torus'/>
      <fieldValue name='crossSection' value='0 1 0.38 0.92 0.71 0.71 0.92 0.38 1 0 0.92 -0.38 0.71 -0.71 0.38 -0.92 0 -1 -0.38 -0.92 -0.71 -0.71 -0.92 -0.38 -1 0 -0.92 0.38 -0.71 0.71 -0.38 0.92 0 1'/>
      <fieldValue name='spine' value='2.00 0.0 0.00 1.85 0.0 0.77 1.41 0.0 1.41 0.77 0.0 1.85 0.00 0.0 2.00 -0.77 0.0 1.85 -1.41 0.0 1.41 -1.85 0.0 0.77 -2.00 0.0 0.00 -1.85 0.0 -0.77 -1.41 0.0 -1.41 -0.77 0.0 -1.85 0.00 0.0 -2.00 0.77 0.0 -1.85 1.41 0.0 -1.41 1.85 0.0 -0.77 2.00 0.0 0.00'/>
      <fieldValue name='beginCap' value='false'/>
      <fieldValue name='endCap' value='false'/>
      <fieldValue name='creaseAngle' value='1.57'/>
      <fieldValue name='spineColor' value='1 1 1'/>
      <fieldValue name='crossSectionColor' value='0.8 0.8 0'/>
      <fieldValue name='crossSectionTransparency' value='0.1'/>
      <fieldValue name='extrusionColor' value='1 0 1'/>
      <fieldValue name='extrusionTransparency' value='0.8'/>
      <fieldValue name='traceEnabled' value='false'/>
    </ProtoInstance>
    <Transform scale='4 4 4'>
      <Inline DEF='CoordinateAxes' url='"../../X3dForWebAuthors/Chapter03Grouping/CoordinateAxes.x3d" "../../Savage/Tools/Authoring/CoordinateAxes.x3d" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter03Grouping/CoordinateAxes.x3d" "../../X3dForWebAuthors/Chapter03Grouping/CoordinateAxes.wrl" "../../Savage/Tools/Authoring/CoordinateAxes.wrl" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter03Grouping/CoordinateAxes.wrl" "https://www.web3d.org/x3d/content/examples/Savage/Tools/Authoring/CoordinateAxes.x3d" "https://www.web3d.org/x3d/content/examples/Savage/Tools/Authoring/CoordinateAxes.wrl"'/>
    </Transform>
  </Scene>
</X3D>