<?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;
generateCrossSection( );
// Browser.print ('crossSectionRadius = ' + csr);
}
function set_spineRadius( sr, ts ) {
spineRadius = sr;
generateSpine( );
// Browser.print ('spineRadius = ' + sr);
}
function generateCrossSection( ) {
angle = 0.0;
delta = (2 * 3.141592653) / crossSectionResolution;
for ( i = 0; i <= crossSectionResolution; i++ ) {
crossSection_changed[i][0] = crossSectionRadius * Math.cos( angle );
crossSection_changed[i][1] = -crossSectionRadius * Math.sin( angle );
angle += delta;
}
// added code to make ends meet
crossSection_changed[crossSectionResolution + 1][0] = crossSection_changed[0][0];
crossSection_changed[crossSectionResolution + 1][1] = crossSection_changed[0][1];
}
function generateSpine( ) {
angle = 0.0;
delta = (2 * 3.141592653) / spineResolution;
for ( i = 0; i <= spineResolution; i++ ) {
spine_changed[i][0] = spineRadius * Math.cos( angle );
spine_changed[i][1] = 0.0;
spine_changed[i][2] = -spineRadius * Math.sin( angle );
angle += delta;
}
// added code to make ends meet
spine_changed[spineResolution + 1][0] = spine_changed[0][0];
spine_changed[spineResolution + 1][1] = 0.0;
spine_changed[spineResolution + 1][2] = spine_changed[0][2];
}
]]>
<!-- Color key: <X3dNode DEF='idName' field='value'/> matches <XmlElement DEF='idName' attribute='value'/> -->
<!-- Additional help information about X3D scenes: X3D Resources, X3D Scene Authoring Hints and X3D Tooltips -->