<html>

	<head>
		<title>3DeZine</title>
		<style type="text/css"><!--
			.bold { color: #339900; font-weight: bold; font-size: 11px; font-family: Verdana, Helvetica, Arial, sans-serif; margin: 0 }
			.boldgrey { color: #cccccc; font-weight: bold; font-size: 11px; font-family: Verdana, Helvetica, Arial, sans-serif; margin: 0 }
			.content { color: #cccccc; font-style: normal; font-size: 11px; font-family: Verdana, Helvetica, Arial, sans-serif; margin: 0 }
			.link { color: #cccccc; font-style: normal; font-size: 10px; font-family: Verdana, Helvetica, Arial, sans-serif; margin: 0 }
			.small { color: #cccccc; font-style: normal; font-size: 9px; font-family: Verdana, Helvetica, Arial, sans-serif; margin: 0 }-->
		</style>

<script language="JavaScript">
var rotArray = new Array(2);
var clock = new Array (0, 1, 0, 0.3);
var countcl = new Array (0, 1, 0, -0.3);

rotArray[0] = clock;
rotArray[1] = countcl;

var started = false

var moveArray = new Array(2);
var up = new Array(0, 0.4, 0);
var down = new Array(0, -0.4, 0);

moveArray[0] = up;
moveArray[1] = down ;

function getFloatArrayFromString(theString){
	// This silly line fixes a Netscape bug
	var myString = theString+"";

	var retArray = new Array();
	var arrayCount = 0;
	var currentFloat = "";
	for (i=0; i<myString.length; i++){
		var temp = myString.substring(i, i+1);
		if (temp == " "){
			retArray[arrayCount] = parseFloat(currentFloat);
			arrayCount++;
			currentFloat = "";
		}
		else currentFloat += temp;
	}
	return retArray;
}

function getStringFromFloatArray(theArray){
	var retString = "";
	for (i=0; i<theArray.length; i++){
		retString += (theArray[i].toString()+" ");
	}
	return retString;
}


function Pan(where){
	var camerapos = document.Shout3D.getNodeByName("dad_ViewPoint1");
	if ( camerapos != null){
		var transString = camerapos.translation.getValueByString();
		var floatArray = getFloatArrayFromString(transString);
		floatArray[0] += moveArray[where][0];
		floatArray[1] += moveArray[where][1];
		floatArray[2] += moveArray[where][2];
		camerapos.translation.setValueByString(getStringFromFloatArray(floatArray));
	}
}


function anigo (){
var timespot = document.Shout3D.getNodeByName ("boxspin");
if (started == false){
	timespot.start(); started = true}
else {timespot.stop(); started = false}
}


function anitoggle () {
var timespot = document.Shout3D.getNodeByName ("boxspin");

if (started == false) {
       timespot.setPaused(true); started = true}

else  {
        timespot.setPaused(false); started = false}
}


function cam2bind () {
		var poview = document.Shout3D.getNodeByName("ViewPoint1");
		poview.isBound.setValue(true);
}

function cam1bind () {
		var poview2 = document.Shout3D.getNodeByName("ViewPoint2");
		poview2.isBound.setValue(true);
}

function textureswap1 () {
		var appearance = document.Shout3D.getNodeByName("eAppear");
        var newTex = document.Shout3D.getNodeByName("TEX_1");
        appearance.texture.setValue(newTex);
}

function textureswap2 () {
		var appearance = document.Shout3D.getNodeByName("eAppear");
        var newTex = document.Shout3D.getNodeByName("TEX_2");
        appearance.texture.setValue(newTex);
}
function rotateitem(direc){
	var item = document.Shout3D.getNodeByName("dad_Group3");
	if (item != null){
		var rotString = item.rotation.getValueByString();
		var floatArray = getFloatArrayFromString(rotString);
			floatArray[3] += rotArray [direc][3];
		 item.rotation.setValueByString(getStringFromFloatArray(floatArray));
		}

  	}



</script>
</head>



<body marginwidth="0" leftmargin="0" bgcolor="#666666" text="white" link="white" alink="black" vlink="#CCCCCC">
<table border="0" cellpadding="5" cellspacing="0">
			<tr>
				<td valign="top">
					<table border="0" cellpadding="0" cellspacing="0" width="120">
						<tr>
							<td><img height="18" width="120" src="../media/editor.gif"><br>
								<span class="small">by Timothy Martin, CEO and Editor-in-Chief <a href="../editor.html">read it<br>
								<br>
								</a></span></td>
						</tr>
						<tr>
							<td>
								<form name="poll_coverage" action="http://www.virtuworlds.com/cgi-bin/formmail.cgi" method="POST">
								<img height="18" width="120" src="../media/poll.gif"><br>
								<span class="boldgrey">What aspect of the Web 3D Industry needs more coverage?</span><br>
								<span class="small"><input type="radio" value="avatars" name="coverage"> avatars/community<br>
								<input type="radio" value="art" name="coverage"> art<br>
								<input type="radio" value="education" name="coverage"> education<br>
								<input type="radio" value="standards" name="coverage"> standards/practises<br>
								<input type="radio" value="ecommerce" name="coverage"> e-commerce<br>
								<input type="radio" value="interface" name="coverage"> interface design<br>
								<input type="radio" value="games" name="coverage"> games<br>
								<input type="radio" value="tech" name="coverage"> technology</span><input type="hidden" name="recipient" value="npolys@virtuworlds.com"><input type="hidden" name="subject" value="poll"><input type="hidden" name="env_report" value="REMOTE_HOST,HTTP_USER_AGENT"><input type="hidden" name="sort" value="order:coverage"><input type="hidden" name="return_link_url" value="http://www.virtuworlds.com/3DEZine/research.html"><input type="hidden" name="bgcolor" value="#000000"><input type="hidden" name="text_color" value="#cccccc"><input type="hidden" name="link_color" value="#0066cc"><input type="hidden" name="vlink_color" value="#cccccc"><br>
								<input type="image" src="../media/submit.gif" height="21" width="77" border="0">
								</form>
								<form name="VirtuPortal" action="http://www.virtuworlds.com/3DeZine_01/entryform.html" method="GET">
								<input src="../media/url.gif" type="image" border="0" width="120" height="18"></form></td>
						</tr>
						<tr>
							<td><span class="small">Send your url for review in the VirtuPortal!</span><input type="hidden" name="recipient" value="npolys@virtuworlds.com"><input type="hidden" name="subject" value="url"><input type="hidden" name="env_report" value="REMOTE_HOST,HTTP_USER_AGENT"><input type="hidden" name="sort" value="order:url"><input type="hidden" name="required" value="url"><br>
								<input type="text" name="url" size="18"><br>
								<br>

								<form name="email" action="http://www.virtuworlds.com/cgi-bin/formmail.cgi" method="POST">
								<img height="18" width="120" src="../media/newsletter.gif"><br>
							</form></td>
						</tr>
						<tr>
							<td><span class="small">Give us your email for regular news &amp; updates</span><input type="hidden" name="recipient" value="subscribe@virtuworlds.com"><input type="hidden" name="subject" value="email"><input type="hidden" name="env_report" value="REMOTE_HOST,HTTP_USER_AGENT"><input type="hidden" name="sort" value="order:email"><input type="hidden" name="required" value="email"><br>
								<span class="content"><input type="text" name="email" size="18"><br>
								<br>
								</span><a href="../about.html"><span class="small">about us

								</span></a></td>
						</tr>
					</table>
				</td>
				<td valign="top" width="60" rowspan="2"><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="60" height="500">
						<param name="movie" value="../media/rings.swf">
						<param name="quality" value="high">
						<param name="bgcolor" value="#676767">
						<embed src="../media/rings.swf" quality="high" bgcolor="#676767" width="60" height="500" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></embed>
					</object></td>
				<td valign="top">

      <table background="../media/bg_475.jpg" border="0" cellpadding="8" cellspacing="0">
        <tr>
          <td valign="top"><img src="media/res_big.gif"></td>
        </tr>
        <tr>
          <td valign="top">
            <div align="center">
              <table border="0" cellspacing="4" align="center">
                <tr>
                  <td colspan="2">
                    <div align="center">
                      <h2><span class="bold">Tutorial Example: </span></h2>
                      <h2><span class="bold">Javascript &amp; Shout3D scene events</span></h2>
                    </div>
                  </td>
                </tr>
                <tr>
                  <td colspan="2"></td>
                </tr>
                <tr>
                  <td colspan="2">
                    <div align="center"><applet codebase="../../3DEZine/codebase" name="Shout3D" code="applets/WalkApplet.class" archive="shout3dClasses.zip" width=320 height=240>
                        <param name="src" value="models/Shoutdemo2/Shoutdemo2.wrl">
                        <param name="gzip_src" value="models/Shoutdemo2/Shoutdemo2.wrz">
                        <param name="headlightOn" value="true">
                        <param name="backgroundColorR" value="0.46666667">
                        <param name="backgroundColorG" value="0.46666667">
                        <param name="backgroundColorB" value="1.0">
                        <param name="regcode" value="S3D00QXGC483888-054">
                        <param name="regname" value="3DEZine">
                        <param name="antiAliasingEnabled" value="true">
                        <param name="bilinearFiltering" value="false">
                        <param name="loadResourcesInSeparateThread" value="true">
                      </applet></div>
                  </td>
                </tr>
                <tr>
                  <td width="14%" class="content"><a href="javascript: cam2bind ();">Switch
                    to Camera1</a></td>
                  <td width="13%" class="content"><a href="javascript: cam1bind ();">Switch
                    to Camera 2</a></td>
                </tr>
                <tr>
                  <td class="content"><a href="javascript: textureswap1 ();">Change
                    to Texture2</a></td>
                  <td class="content"><a href="javascript: anitoggle ();">Pause/Unpause
                    animation</a></td>
                </tr>
                <tr>
                  <td class="content"><a href="javascript: textureswap2 ();">Change
                    to Texture3</a> <br>
                  </td>
                  <td class="content"><a href="javascript: anigo ();">Stop/Reset
                    the ani</a><br>
                  </td>
                </tr>
                <tr>
                  <td class="content">
                    <p><a href="javascript: rotateitem (1);">rotate <=</a></p>
                  </td>
                  <td class="content"></td>
                </tr>
                <tr>
                  <td class="content">
                    <p><a href="javascript: rotateitem (0);"> rotate =></a> </p>
                  </td>
                  <td class="content"></td>
                </tr>
                <tr>
                  <td colspan=2 class="content">
                    <form>
                      <font face="courier"> <b>Move the camera in a vertical Pan:</b><br>
                      <input onClick="javascript: Pan(0)" type="BUTTON" name="SUBMIT" value=" UP ">
                      <br>
                      <input onClick="javascript: Pan(1)" type="BUTTON" name="SUBMIT" value=" Down ">
                      </font>
                      <hr>
                      <p align="center">
                      <div align="center">
                        <p><b><i>unbranded applets appear courtesy of <a href="http://www.shout3d.com">Shout3D</a>
                          </i></b></p>
                        <p><b><i>...some shapes are redundant: with a DEF/USE
                          session, file size will be decreased...</i></b></p>
                        <p><b><i>current size: 3K zipped, 27k uncompressed</i></b></p>
                      </div>
                    </form>
                  </td>
                </tr>
              </table>
              <br>
            </div>
            <p align="center">&nbsp;</p>
          </td>
        </tr>
      </table>
				</td>
				<td valign="top"><span class="bold">
					<table border="0" cellpadding="0" cellspacing="0" width="175">
						<tr>
							<td width="175"><span class="bold">Current tutorials<br>
								</span><span class="content">* <a href="art_shout3d.html">Deploying Shout3D</a><br>
								</span>
								<p><span class="bold">Previous tutorials</span><span class="link"><br>
								* <a href="Tutorial1.html">Shading VRML Objects</a><br>
								* <a href="../features/gamestory.html">Game Programming in VRML</a></span></p>
								<div align="left">
									<p><span class="bold">Find a VRML Browser<br>
									</span><span class="content">Open up <a href="browser.html">new Dimensions</a> on the Web!</span></p>
									<p><span class="bold">FAQs</span><br>
									<span class="link">* <a href="http://www.web3d.org/faq/v_faq.htm">Web 3D Consortium's FAQs</a><br>
									* <a href="http://fly.hiwaay.net/~crispen/vrmlworks/faq.html">Comp.Lang VRML</a><br>
									* <a href="http://www.web3d.org/TaskGroups/x3d/faq/index.html">X3D FAQs</a></span></p>
									<p><span class="bold">Find a VRML browser</span><span class="link"><br>
									in our <a href="browser.html">browser</a> section.</span></p>
									<p><span class="link">Some of the best 3D resources are available online! </span></div>
							</td>
						</tr>
					</table>
					</span></td>
			</tr>
			<tr>
				<td></td>
				<td colspan="2"><img height="60" width="468" src="../media/shoutbanner.gif"></td>
			</tr>
			<tr>
				<td colspan="4">
					<center>
						<span class="small">Questions, Comments, and Suggestions about this site can be emailed to: [<a href="mailto:npolys@virtuworlds.com">webmaster</a>]<br>
						VirtuWorlds, VirtuWorld, VirtuPortal, and 3DEZine are Trademarks of VIRTUWORLDS LLC.<br>
						No unauthorized uses are permitted.<br>
						&copy; VirtuWorlds 1999, 2000</span></center>
				</td>
			</tr>
		</table>
	</body>

</html>
