You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
2.3 KiB
69 lines
2.3 KiB
<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" > |
|
<head> |
|
<title>Test of dojox.gfx3d.scheduler</title> |
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
|
<style type="text/css"> |
|
@import "../../../dojo/resources/dojo.css"; |
|
@import "../../../dijit/tests/css/dijitTests.css"; |
|
</style> |
|
<script type="text/javascript" src="../../../dojo/dojo.js" data-dojo-config="isDebug: true"></script> |
|
<script type="text/javascript"> |
|
|
|
dojo.require("dojox.gfx3d"); |
|
var view = null; |
|
|
|
makeObjects = function(){ |
|
var surface = dojox.gfx.createSurface("test", 500, 500); |
|
view = surface.createViewport(); |
|
var tas = [ |
|
[{x: 100, y: 0, z: 0}, {x: 100, y: 100, z: 0}, {x: 50, y: 50, z: 50}], |
|
[{x: 100, y: 0, z: 0}, {x: 100, y: 100, z: 0}, {x: 0, y: 70, z: 50}] |
|
]; |
|
var fills = ["#0cc", "#c0c"]; |
|
|
|
var m = dojox.gfx3d.matrix; |
|
for(var i = 0; i < tas.length; i++){ |
|
console.debug(fills[i]); |
|
view.createPolygon(tas[i]) |
|
.setStroke({color: "blue", width: 1}) |
|
.setFill(fills[i]); |
|
} |
|
var camera = dojox.gfx3d.matrix.normalize([m.cameraTranslate(0, -300, 0)]); |
|
|
|
view.applyCameraTransform(camera); |
|
|
|
view.render(); |
|
|
|
// set up the click handlers. |
|
dojo.connect(dojo.byId("bsp"), "onclick", renderWithBSP); |
|
dojo.connect(dojo.byId("zorder"), "onclick", renderWithZOrder); |
|
}; |
|
|
|
render = function(title, render){ |
|
dojo.byId("render").innerHTML = title; |
|
view.setScheduler(render); |
|
view.invalidate(); |
|
view.render(); |
|
}; |
|
|
|
renderWithBSP = function(){ |
|
render("BSP", dojox.gfx3d.scheduler.bsp); |
|
}; |
|
|
|
renderWithZOrder = function(){ |
|
render("ZOrder", dojox.gfx3d.scheduler.zOrder); |
|
}; |
|
|
|
dojo.addOnLoad(makeObjects); |
|
|
|
</script> |
|
</head> |
|
<body> |
|
<h1>Scheduler Test</h1> |
|
<p>There are two schedulers available in dojox.gfx3d, zOrder and BSP. zOrder is much simpler, and it performs quite well in most cases, it may fail in some rare cases, for example: two triangles share the same two vertice, and have the same Z value of the third vertex, in this case, they have the same z-order. They are rendered in arbitrary order. In this case, BSP is the rescure.</p> |
|
<p>Current render: <strong id="render">default</strong></p> |
|
<p><button id="bsp">BSP</button> <button id="zorder">zOrder</button></p> |
|
<div id="test" style="width: 500px; height: 500px;"></div> |
|
<p>That's all Folks!</p> |
|
</body> |
|
</html>
|
|
|