<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN" "http://www.web3d.org/specifications/x3d-3.0.dtd">
<![CDATA[
ecmascript: function initialize( ) { generateCrossSection( ); generateSpine( ); } function set_crossSectionRadius( csr, ts ) { crossSectionRadius = csr; // Browser.print ('crossSectionRadius =' + crossSectionRadius); generateCrossSection( ); } function set_spineRadius( sr, ts ) { spineRadius = sr; // Browser.print ('spineRadius =' + spineRadius); generateSpine( ); } function generateCrossSection( ) { newCrossSection = new MFVec2f(); // temporary hold variable angle = 0.0; delta = 6.28 / crossSectionResolution; for ( i = 0; i <= crossSectionResolution + 1; i++ ) { newCrossSection[i][0] = crossSectionRadius * Math.cos( angle ); newCrossSection[i][1] = -crossSectionRadius * Math.sin( angle ); angle += delta; } // make ends meet newCrossSection[crossSectionResolution + 1][0] = newCrossSection[0][0]; newCrossSection[crossSectionResolution + 1][1] = newCrossSection[0][1]; crossSection_changed = newCrossSection; } function generateSpine( ) { newSpine = new MFVec3f(); // temporary hold variable angle = 0.0; delta = (2 * 3.141592653) / spineResolution; for ( i = 0; i <= spineResolution; i++ ) { newSpine[i][0] = spineRadius * Math.cos( angle ); newSpine[i][1] = 0.0; newSpine[i][2] = -spineRadius * Math.sin( angle ); angle += delta; } // make ends meet newSpine[spineResolution + 1][0] = newSpine[0][0]; newSpine[spineResolution + 1][1] = 0.0; newSpine[spineResolution + 1][2] = newSpine[0][2]; spine_changed = newSpine; }
]]>
<!-- Color key: <X3dNode DEF='idName' field='value'/> matches <XmlElement DEF='idName' attribute='value'/> <Prototype name='ProtoName'> <field name='fieldName'/> </Prototype> -->
<!-- Additional help information about X3D scenes: X3D Resources, X3D Scene Authoring Hints and X3D Tooltips -->