diff options
Diffstat (limited to 'o3d/samples/zsorting.html')
-rw-r--r-- | o3d/samples/zsorting.html | 200 |
1 files changed, 0 insertions, 200 deletions
diff --git a/o3d/samples/zsorting.html b/o3d/samples/zsorting.html deleted file mode 100644 index 8168aaa..0000000 --- a/o3d/samples/zsorting.html +++ /dev/null @@ -1,200 +0,0 @@ -<!-- -Copyright 2009, Google Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---> - -<!-- -O3D ZSorting. ---> -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" - "http://www.w3.org/TR/html4/loose.dtd"> -<html> -<head> -<meta http-equiv="content-type" content="text/html; charset=UTF-8"> -<title> -ZSorting. -</title> -<!-- Include sample javascript library functions--> -<script type="text/javascript" src="o3djs/base.js"></script> - -<!-- Our javascript code --> -<script type="text/javascript" id="o3dscript"> -o3djs.require('o3djs.util'); -o3djs.require('o3djs.math'); -o3djs.require('o3djs.rendergraph'); -o3djs.require('o3djs.primitives'); -o3djs.require('o3djs.material'); - -// Events -// init() once the page has finished loading. -// unload() when the page is unloaded. -window.onload = init; -window.onunload = unload; - -// global variables -var g_timeMult = 1.0; -var g_framesRendered = 0; -var g_o3d; -var g_math; -var g_client; -var g_viewInfo; -var g_pack; -var g_clock = 0; -var g_finished = false; // for selenium testing -var g_groupTransforms = []; -var GROUPS_ACROSS = 2; -var UNITS_ACROSS_GROUP = 2; -var TOTAL_ACROSS = GROUPS_ACROSS * UNITS_ACROSS_GROUP; -var HALF_WIDTH = TOTAL_ACROSS * 0.0; -var UNIT_SPACING = 100; - -/** - * Make a grid of transforms and put a teapot instance on each one - * @param {!o3d.Pack} pack Pack to create transforms in. - * @param {!o3d.Shape} shape Shape to instance. - */ -function createInstances(pack, shape) { - for (var g = 0; g < GROUPS_ACROSS; g++) { - for (var h = 0; h < GROUPS_ACROSS; h++) { - for (var i = 0; i < GROUPS_ACROSS; i++) { - var groupTransform = pack.createObject('Transform'); - g_groupTransforms[g_groupTransforms.length] = groupTransform; - groupTransform.parent = g_client.root; - groupTransform.translate( - (g * UNITS_ACROSS_GROUP - HALF_WIDTH) * UNIT_SPACING, - (h * UNITS_ACROSS_GROUP - HALF_WIDTH) * UNIT_SPACING, - (i * UNITS_ACROSS_GROUP - HALF_WIDTH) * UNIT_SPACING); - for (var x = 0; x < UNITS_ACROSS_GROUP; x++) { - for (var y = 0; y < UNITS_ACROSS_GROUP; y++) { - for (var z = 0; z < UNITS_ACROSS_GROUP; z++) { - var transform = pack.createObject('Transform'); - transform.parent = groupTransform; - transform.addShape(shape); - transform.translate( - (x - UNITS_ACROSS_GROUP * 0.5) * UNIT_SPACING, - (y - UNITS_ACROSS_GROUP * 0.5) * UNIT_SPACING, - (z - UNITS_ACROSS_GROUP * 0.5) * UNIT_SPACING); - transform.createParam('diffuse', 'ParamFloat4').value = [ - (g * UNITS_ACROSS_GROUP + x) * (1 / TOTAL_ACROSS), - (h * UNITS_ACROSS_GROUP + y) * (1 / TOTAL_ACROSS), - (i * UNITS_ACROSS_GROUP + z) * (1 / TOTAL_ACROSS), - 0.5]; - } - } - } - } - } - } -} - -/** - * Creates the client area. - */ -function init() { - o3djs.util.makeClients(initStep2); -} - -/** - * Initializes O3D and creates one shape. - * @param {Array} clientElements Array of o3d object elements. - */ -function initStep2(clientElements) { - // Initialize global variables and libraries. - var o3dElement = clientElements[0]; - g_o3d = o3dElement.o3d; - g_math = o3djs.math; - g_client = o3dElement.client; - - // Creates a pack to manage our resources/assets - g_pack = g_client.createPack(); - - g_viewInfo = o3djs.rendergraph.createBasicView( - g_pack, - g_client.root, - g_client.renderGraphRoot); - - // Create our projection matrix, with a vertical field of view of 45 - // degrees a near clipping plane of 0.1 and far clipping plane of 10000. - g_viewInfo.drawContext.projection = g_math.matrix4.perspective( - g_math.degToRad(45), - g_client.width / g_client.height, - 0.1, - 10000); - - // Create a Material. - var material = o3djs.material.createBasicMaterial( - g_pack, g_viewInfo, [1, 1, 1, 1], true); - - // Create a sphere. - var shape = o3djs.primitives.createSphere(g_pack, material, 30, 20, 20); - - createInstances(g_pack, shape); - - // Setup an onrender callback for animation. - g_client.setRenderCallback(onrender); - - g_finished = true; // for selenium testing. -} - -// spin the camera. -function onrender(renderEvent) { - g_framesRendered++; - // Get the number of seconds since the last render. - var elapsedTime = renderEvent.elapsedTime; - g_clock += elapsedTime * g_timeMult; - - var x = Math.sin(g_clock * 0.1) * 400; - var z = Math.cos(g_clock * 0.1) * 400; - var y = Math.sin(g_clock * 0.2) * 400; - - g_viewInfo.drawContext.view = g_math.matrix4.lookAt( - [x, y, z], // eye - [0, 0, 0], // target - [0, 1, 0]); // up -} - -/** - * Removes any callbacks so they don't get called after the page has unloaded. - */ -function unload() { - if (g_client) { - g_client.cleanup(); - } -} -</script> -</head> -<body> -<h1>ZSorting</h1> -Objects get zsorted for transparency. -<br/> -<!-- Start of O3D plugin --> -<div id="o3d" style="width: 800px; height: 600px"></div> -<!-- End of O3D plugin --> -</body> -</html> |