<!-- TODO clockwise or counterclockwise -->
<WorldInfo title='MobiusExtrusion.x3d'/>
<Background skyColor='0 0.6784314 0.8'/>
<Viewpoint description='Mobius strip extrusion, plus cross-sectional view' orientation='1 0 0 -0.46365' position='0 5 10'/>
<Viewpoint description='Mobius strip from above' orientation='1 0 0 -1.5707999' position='0 10 0'/>
<Viewpoint description='Mobius strip from side'/>
<Transform DEF='MobiusStrip' scale='2 2 2' translation='-3 2 0'>
<PointLight DEF='InteriorLight' global='false'/>
<Shape>
<Extrusion creaseAngle='0.7854' crossSection='-0.2 -0.1 0.2 -0.1 0.2 0.1 -0.2 0.1 -0.2 -0.1' orientation='0 1 0 -1.5707999 0 1 0 -1.309 0 1 0 -1.0472 0 1 0 -0.7854 0 1 0 -0.5236 0 1 0 -0.2618 0 1 0 0 0 1 0 0.2618 0 1 0 0.5236 0 1 0 0.7854 0 1 0 1.0472 0 1 0 1.309 0 1 0 1.5707999 0 1 0 1.8326 0 1 0 2.0943999 0 1 0 2.3562 0 1 0 2.618 0 1 0 2.8798001 0 1 0 3.1415999 0 1 0 3.4033999 0 1 0 3.6652 0 1 0 3.927 0 1 0 4.1887999 0 1 0 4.4506001 0 1 0 4.7124' solid='false' spine='0 0 1 0.259 0 0.966 0.5 0 0.866 0.707 0 0.707 0.866 0 0.5 0.966 0 0.259 1 0 0 0.966 0 -0.259 0.866 0 -0.5 0.707 0 -0.707 0.5 0 -0.866 0.259 0 -0.966 0 0 -1 -0.259 0 -0.966 -0.5 0 -0.866 -0.707 0 -0.707 -0.866 0 -0.5 -0.966 0 -0.259 -1 0 -0 -0.966 0 0.259 -0.866 0 0.5 -0.707 0 0.707 -0.5 0 0.866 -0.259 0 0.966 0 0 1'/>
<!-- illustrated by follow-on ExtrusionCrossSection visualization -->
<Appearance>
<Material diffuseColor='0.4431373 0.1803922 1'/>
<!-- TODO add ruled ImageTexture -->
</Appearance>
</Shape>
</Transform>
<ExternProtoDeclare name='ExtrusionCrossSection' 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
'
url='
"../../Basic/course/ExtrusionCrossSectionPrototype.x3d#ExtrusionCrossSection"
"https://www.web3d.org/x3d/content/examples/Basic/course/ExtrusionCrossSectionPrototype.x3d#ExtrusionCrossSection" '>
<field name='name' type='SFString' accessType='initializeOnly'
appinfo='Extrusion name'/>
<field name='crossSection' type='MFVec2f' accessType='initializeOnly'
appinfo='Extrusion field'/>
<field name='spine' type='MFVec3f' accessType='initializeOnly'
appinfo='Extrusion field'/>
<field name='scale' type='MFVec2f' accessType='initializeOnly'
appinfo='Extrusion field'/>
<field name='orientation' type='MFRotation' accessType='initializeOnly'
appinfo='Extrusion field'/>
<field name='beginCap' type='SFBool' accessType='initializeOnly'
appinfo='Extrusion field'/>
<field name='endCap' type='SFBool' accessType='initializeOnly'
appinfo='Extrusion field'/>
<field name='ccw' type='SFBool' accessType='initializeOnly'
appinfo='Extrusion field'/>
<field name='convex' type='SFBool' accessType='initializeOnly'
appinfo='Extrusion field'/>
<field name='creaseAngle' type='SFFloat' accessType='initializeOnly'
appinfo='Extrusion field'/>
<field name='solid' type='SFBool' accessType='initializeOnly'
appinfo='Extrusion field'/>
<field name='spineColor' type='SFColor' accessType='inputOutput'
appinfo='emissiveColor of spine'/>
<field name='crossSectionColor' type='SFColor' accessType='inputOutput'
appinfo='diffuseColor of crossSection'/>
<field name='crossSectionTransparency' type='SFFloat' accessType='inputOutput'
appinfo='transparency of crossSection'/>
<field name='extrusionColor' type='SFColor' accessType='inputOutput'
appinfo='diffuseColor of extrusion hull'/>
<field name='extrusionTransparency' type='SFFloat' accessType='inputOutput'
appinfo='transparency of extrusion hull'/>
<field name='extrusionImageTexture' type='SFNode' accessType='initializeOnly'
appinfo='Image to apply to Extrusion'/>
<field name='extrusionTextureTransform' type='SFNode' accessType='initializeOnly'
appinfo='TextureTransform coordinates of image applied to Extrusion'/>
<field name='set_crossSection' type='MFVec2f' accessType='inputOnly'
appinfo='Extrusion field'/>
<field name='set_spine' type='MFVec3f' accessType='inputOnly'
appinfo='Extrusion field'/>
<field name='set_scale' type='MFVec2f' accessType='inputOnly'
appinfo='Extrusion field'/>
<field name='set_orientation' type='MFRotation' accessType='inputOnly'
appinfo='Extrusion field'/>
<field name='traceEnabled' type='SFBool' accessType='initializeOnly'
appinfo='Whether to provide initialization trace statements showing node construction'/>
</ExternProtoDeclare>
<Transform DEF='MobiusStripExploded' scale='2 2 2' translation='3 2 0'>
<PointLight USE='InteriorLight'/>
<!-- ==================== -->
<Switch whichChoice='0'>
<ProtoInstance name='ExtrusionCrossSection'>
<fieldValue name='name' value='MobiusStrip'/>
<fieldValue name='crossSection' value='-0.2 -0.1 0.2 -0.1 0.2 0.1 -0.2 0.1 -0.2 -0.1'/>
<fieldValue name='spine' value='0 0 1 0.259 0 0.966 0.5 0 0.866 0.707 0 0.707 0.866 0 0.5 0.966 0 0.259 1 0 0 0.966 0 -0.259 0.866 0 -0.5 0.707 0 -0.707 0.5 0 -0.866 0.259 0 -0.966 0 0 -1 -0.259 0 -0.966 -0.5 0 -0.866 -0.707 0 -0.707 -0.866 0 -0.5 -0.966 0 -0.259 -1 0 -0 -0.966 0 0.259 -0.866 0 0.5 -0.707 0 0.707 -0.5 0 0.866 -0.259 0 0.966 0 0 1'/>
<fieldValue name='scale' value='1 1'/>
<fieldValue name='orientation' value='0 1 0 -1.5707999 0 1 0 -1.309 0 1 0 -1.0472 0 1 0 -0.7854 0 1 0 -0.5236 0 1 0 -0.2618 0 1 0 0 0 1 0 0.2618 0 1 0 0.5236 0 1 0 0.7854 0 1 0 1.0472 0 1 0 1.309 0 1 0 1.5707999 0 1 0 1.8326 0 1 0 2.0943999 0 1 0 2.3562 0 1 0 2.618 0 1 0 2.8798001 0 1 0 3.1415999 0 1 0 3.4033999 0 1 0 3.6652 0 1 0 3.927 0 1 0 4.1887999 0 1 0 4.4506001 0 1 0 4.7124'/>
<fieldValue name='beginCap' value='true'/>
<fieldValue name='endCap' value='true'/>
<fieldValue name='ccw' value='true'/>
<fieldValue name='convex' value='true'/>
<fieldValue name='creaseAngle' value='0.524'/>
<fieldValue name='solid' value='false'/>
<fieldValue name='spineColor' value='1 0.8 0.0'/>
<fieldValue name='crossSectionColor' value='0.5 0.5 0.5'/>
<fieldValue name='crossSectionTransparency' value='0.26666668'/>
<fieldValue name='extrusionColor' value='0.8 0.6 0.0'/>
<fieldValue name='extrusionTransparency' value='0.8'/>
<fieldValue name='traceEnabled' value='false'/>
</ProtoInstance>
<!-- Add any ROUTEs here that connect ProtoInstance to/from prior nodes in Scene -->
<!-- Example use: https://www.web3d.org/x3d/content/examples/Basic/course/ExtrusionCrossSectionExample.x3d
-->
</Switch>
<!-- ==================== -->
</Transform>
<Transform DEF='UntwistedStrip' scale='2 2 2' translation='-3 -2 0'>
<PointLight USE='InteriorLight'/>
<Shape>
<Extrusion creaseAngle='0.524' crossSection='-0.2 -0.1 0.2 -0.1 0.2 0.1 -0.2 0.1 -0.2 -0.1' solid='false' spine='0 0 1 0.259 0 0.966 0.5 0 0.866 0.707 0 0.707 0.866 0 0.5 0.966 0 0.259 1 0 0 0.966 0 -0.259 0.866 0 -0.5 0.707 0 -0.707 0.5 0 -0.866 0.259 0 -0.966 0 0 -1 -0.259 0 -0.966 -0.5 0 -0.866 -0.707 0 -0.707 -0.866 0 -0.5 -0.966 0 -0.259 -1 0 -0 -0.966 0 0.259 -0.866 0 0.5 -0.707 0 0.707 -0.5 0 0.866 -0.259 0 0.966 0 0 1'/>
<!-- illustrated by follow-on ExtrusionCrossSection visualization -->
<Appearance>
<Material diffuseColor='0 0.1490196 0.9411765'/>
<!-- TODO add ruled ImageTexture -->
</Appearance>
</Shape>
</Transform>
<Transform DEF='UntwistedStripExploded' scale='2 2 2' translation='3 -2 0'>
<PointLight USE='InteriorLight'/>
<ProtoInstance name='ExtrusionCrossSection'>
<fieldValue name='name' value='UntwistedStrip'/>
<fieldValue name='crossSection' value='-0.2 -0.1 0.2 -0.1 0.2 0.1 -0.2 0.1 -0.2 -0.1'/>
<fieldValue name='spine' value='0 0 1 0.259 0 0.966 0.5 0 0.866 0.707 0 0.707 0.866 0 0.5 0.966 0 0.259 1 0 0 0.966 0 -0.259 0.866 0 -0.5 0.707 0 -0.707 0.5 0 -0.866 0.259 0 -0.966 0 0 -1 -0.259 0 -0.966 -0.5 0 -0.866 -0.707 0 -0.707 -0.866 0 -0.5 -0.966 0 -0.259 -1 0 -0 -0.966 0 0.259 -0.866 0 0.5 -0.707 0 0.707 -0.5 0 0.866 -0.259 0 0.966 0 0 1'/>
<fieldValue name='scale' value='1 1'/>
<fieldValue name='beginCap' value='true'/>
<fieldValue name='endCap' value='true'/>
<fieldValue name='ccw' value='true'/>
<fieldValue name='convex' value='true'/>
<fieldValue name='creaseAngle' value='0.524'/>
<fieldValue name='solid' value='false'/>
<fieldValue name='spineColor' value='1 0.8 0.0'/>
<fieldValue name='crossSectionColor' value='0 0.1490196 0.9411765'/>
<fieldValue name='crossSectionTransparency' value='0.26666668'/>
<fieldValue name='extrusionColor' value='0.8 0.6 0.0'/>
<fieldValue name='extrusionTransparency' value='0.8'/>
<fieldValue name='traceEnabled' value='false'/>
</ProtoInstance>
</Transform>