http://2014.igem.org/wiki/index.php?title=Team:Aachen/Notebook/Engineering/Cuvette3D&feed=atom&action=history
Team:Aachen/Notebook/Engineering/Cuvette3D - Revision history
2024-03-29T08:01:38Z
Revision history for this page on the wiki
MediaWiki 1.16.5
http://2014.igem.org/wiki/index.php?title=Team:Aachen/Notebook/Engineering/Cuvette3D&diff=105295&oldid=prev
Mjoppich at 20:41, 5 September 2014
2014-09-05T20:41:41Z
<p></p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 20:41, 5 September 2014</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 17:</td>
<td colspan="2" class="diff-lineno">Line 17:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div><script type="text/javascript" src="https://2014.igem.org/Template:Team:Aachen/detector.js?action=raw&ctype=text/javascript"></script></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div><script type="text/javascript" src="https://2014.igem.org/Template:Team:Aachen/detector.js?action=raw&ctype=text/javascript"></script></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div><script type="text/javascript" src="https://2014.igem.org/Template:Team:Aachen/showCuvetteStl.js?action=raw&ctype=text/javascript"></script></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div><script type="text/javascript" src="https://2014.igem.org/Template:Team:Aachen/showCuvetteStl.js?action=raw&ctype=text/javascript"></script></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;"> <script></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> </head></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> </head></div></td></tr>
</table>
Mjoppich
http://2014.igem.org/wiki/index.php?title=Team:Aachen/Notebook/Engineering/Cuvette3D&diff=84452&oldid=prev
Mjoppich at 20:15, 22 August 2014
2014-08-22T20:15:44Z
<p></p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 20:15, 22 August 2014</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 3:</td>
<td colspan="2" class="diff-lineno">Line 3:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> <title>stl viewer</title></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> <title>stl viewer</title></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> <meta charset="utf-8"></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> <meta charset="utf-8"></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div> <meta name="viewport" content="width=device-width, user-scalable=<del class="diffchange diffchange-inline">no</del>, minimum-scale=<del class="diffchange diffchange-inline">1.</del>0, maximum-scale=1.0"></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div> <meta name="viewport" content="width=device-width, user-scalable=<ins class="diffchange diffchange-inline">yes</ins>, minimum-scale=0<ins class="diffchange diffchange-inline">.1</ins>, maximum-scale=1.0"></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> <style></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> <style></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> body {</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> body {</div></td></tr>
</table>
Mjoppich
http://2014.igem.org/wiki/index.php?title=Team:Aachen/Notebook/Engineering/Cuvette3D&diff=84447&oldid=prev
Mjoppich at 20:09, 22 August 2014
2014-08-22T20:09:17Z
<p></p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 20:09, 22 August 2014</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 16:</td>
<td colspan="2" class="diff-lineno">Line 16:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div><script type="text/javascript" src="https://2014.igem.org/Template:Team:Aachen/stats.js?action=raw&ctype=text/javascript"></script></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div><script type="text/javascript" src="https://2014.igem.org/Template:Team:Aachen/stats.js?action=raw&ctype=text/javascript"></script></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div><script type="text/javascript" src="https://2014.igem.org/Template:Team:Aachen/detector.js?action=raw&ctype=text/javascript"></script></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div><script type="text/javascript" src="https://2014.igem.org/Template:Team:Aachen/detector.js?action=raw&ctype=text/javascript"></script></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;"> <script></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div><script type="text/javascript" src="https://2014.igem.org/Template:Team:Aachen/showCuvetteStl.js?action=raw&ctype=text/javascript"></script></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div><script type="text/javascript" src="https://2014.igem.org/Template:Team:Aachen/showCuvetteStl.js?action=raw&ctype=text/javascript"></script></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> <script></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> <script></div></td></tr>
</table>
Mjoppich
http://2014.igem.org/wiki/index.php?title=Team:Aachen/Notebook/Engineering/Cuvette3D&diff=84446&oldid=prev
Mjoppich at 20:08, 22 August 2014
2014-08-22T20:08:27Z
<p></p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 20:08, 22 August 2014</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 12:</td>
<td colspan="2" class="diff-lineno">Line 12:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> }</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> }</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> </style></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> </style></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </head></del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div> </div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> <body></del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div><script type="text/javascript" src="https://2014.igem.org/Template:Team:Aachen/three.js?action=raw&ctype=text/javascript"></script></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div><script type="text/javascript" src="https://2014.igem.org/Template:Team:Aachen/three.js?action=raw&ctype=text/javascript"></script></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div><script type="text/javascript" src="https://2014.igem.org/Template:Team:Aachen/stats.js?action=raw&ctype=text/javascript"></script></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div><script type="text/javascript" src="https://2014.igem.org/Template:Team:Aachen/stats.js?action=raw&ctype=text/javascript"></script></div></td></tr>
<tr><td colspan="2" class="diff-lineno">Line 20:</td>
<td colspan="2" class="diff-lineno">Line 19:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div><script type="text/javascript" src="https://2014.igem.org/Template:Team:Aachen/showCuvetteStl.js?action=raw&ctype=text/javascript"></script></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div><script type="text/javascript" src="https://2014.igem.org/Template:Team:Aachen/showCuvetteStl.js?action=raw&ctype=text/javascript"></script></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> <script></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> <script></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"> </head></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"> <body></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
</table>
Mjoppich
http://2014.igem.org/wiki/index.php?title=Team:Aachen/Notebook/Engineering/Cuvette3D&diff=84445&oldid=prev
Mjoppich at 20:07, 22 August 2014
2014-08-22T20:07:36Z
<p></p>
<a href="http://2014.igem.org/wiki/index.php?title=Team:Aachen/Notebook/Engineering/Cuvette3D&diff=84445&oldid=84443">Show changes</a>
Mjoppich
http://2014.igem.org/wiki/index.php?title=Team:Aachen/Notebook/Engineering/Cuvette3D&diff=84443&oldid=prev
Mjoppich at 20:06, 22 August 2014
2014-08-22T20:06:17Z
<p></p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 20:06, 22 August 2014</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 14:</td>
<td colspan="2" class="diff-lineno">Line 14:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> </head></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> </head></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> <body></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> <body></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del><script src="three.js"></script></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><script <ins class="diffchange diffchange-inline">type="text/javascript" </ins>src="<ins class="diffchange diffchange-inline">https://2014.igem.org/Template:Team:Aachen/</ins>three.js<ins class="diffchange diffchange-inline">?action=raw&ctype=text/javascript</ins>"></script></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del><script src="stats.js"></script></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><script <ins class="diffchange diffchange-inline">type="text/javascript" </ins>src="<ins class="diffchange diffchange-inline">https://2014.igem.org/Template:Team:Aachen/</ins>stats.js<ins class="diffchange diffchange-inline">?action=raw&ctype=text/javascript</ins>"></script></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del><script src="detector.js"></script></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><script <ins class="diffchange diffchange-inline">type="text/javascript" </ins>src="<ins class="diffchange diffchange-inline">https://2014.igem.org/Template:Team:Aachen/</ins>detector.js<ins class="diffchange diffchange-inline">?action=raw&ctype=text/javascript</ins>"></script></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> <script></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> <script></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
</table>
Mjoppich
http://2014.igem.org/wiki/index.php?title=Team:Aachen/Notebook/Engineering/Cuvette3D&diff=84442&oldid=prev
Mjoppich at 20:04, 22 August 2014
2014-08-22T20:04:14Z
<p></p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 20:04, 22 August 2014</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 268:</td>
<td colspan="2" class="diff-lineno">Line 268:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> }</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> }</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> </div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> </div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div> xhr.open( "GET", 'igem.stl', true );</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div> xhr.open( "GET", '<ins class="diffchange diffchange-inline">https://2014.</ins>igem<ins class="diffchange diffchange-inline">.org/Template:Team:Aachen/cuvette</ins>.stl<ins class="diffchange diffchange-inline">?action=raw&ctype=text/plain</ins>', true );</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div> </div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> xhr.responseType = "arraybuffer";</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> xhr.responseType = "arraybuffer";</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> //xhr.setRequestHeader("Accept","text/plain");</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> //xhr.setRequestHeader("Accept","text/plain");</div></td></tr>
</table>
Mjoppich
http://2014.igem.org/wiki/index.php?title=Team:Aachen/Notebook/Engineering/Cuvette3D&diff=84441&oldid=prev
Mjoppich at 20:03, 22 August 2014
2014-08-22T20:03:27Z
<p></p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 20:03, 22 August 2014</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;"><!doctype html></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div><html lang="en"></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div><html lang="en"></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> <head></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> <head></div></td></tr>
</table>
Mjoppich
http://2014.igem.org/wiki/index.php?title=Team:Aachen/Notebook/Engineering/Cuvette3D&diff=84440&oldid=prev
Mjoppich: Created page with "<!doctype html> <html lang="en"> <head> <title>stl viewer</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, user-scala..."
2014-08-22T20:03:11Z
<p>Created page with "<!doctype html> <html lang="en"> <head> <title>stl viewer</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, user-scala..."</p>
<p><b>New page</b></p><div><!doctype html><br />
<html lang="en"><br />
<head><br />
<title>stl viewer</title><br />
<meta charset="utf-8"><br />
<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0"><br />
<style><br />
body {<br />
font-family: Monospace;<br />
background-color: #f0f0f0;<br />
margin: 0px;<br />
overflow: hidden;<br />
}<br />
</style><br />
</head><br />
<body><br />
<script src="three.js"></script><br />
<script src="stats.js"></script><br />
<script src="detector.js"></script><br />
<script><br />
<br />
var camera, scene, renderer,<br />
geometry, material, mesh, light1, stats;<br />
<br />
function trim (str) {<br />
str = str.replace(/^\s+/, '');<br />
for (var i = str.length - 1; i >= 0; i--) {<br />
if (/\S/.test(str.charAt(i))) {<br />
str = str.substring(0, i + 1);<br />
break;<br />
}<br />
}<br />
return str;<br />
}<br />
<br />
// Notes:<br />
// - STL file format: http://en.wikipedia.org/wiki/STL_(file_format)<br />
// - 80 byte unused header<br />
// - All binary STLs are assumed to be little endian, as per wiki doc<br />
var parseStlBinary = function(stl) {<br />
var geo = new THREE.Geometry();<br />
var dv = new DataView(stl, 80); // 80 == unused header<br />
var isLittleEndian = true;<br />
var triangles = dv.getUint32(0, isLittleEndian); <br />
<br />
// console.log('arraybuffer length: ' + stl.byteLength);<br />
// console.log('number of triangles: ' + triangles);<br />
<br />
var offset = 4;<br />
for (var i = 0; i < triangles; i++) {<br />
// Get the normal for this triangle<br />
var normal = new THREE.Vector3(<br />
dv.getFloat32(offset, isLittleEndian),<br />
dv.getFloat32(offset+4, isLittleEndian),<br />
dv.getFloat32(offset+8, isLittleEndian)<br />
);<br />
offset += 12;<br />
<br />
// Get all 3 vertices for this triangle<br />
for (var j = 0; j < 3; j++) {<br />
geo.vertices.push(<br />
new THREE.Vector3(<br />
dv.getFloat32(offset, isLittleEndian),<br />
dv.getFloat32(offset+4, isLittleEndian),<br />
dv.getFloat32(offset+8, isLittleEndian)<br />
)<br />
);<br />
offset += 12<br />
}<br />
<br />
// there's also a Uint16 "attribute byte count" that we<br />
// don't need, it should always be zero.<br />
offset += 2; <br />
<br />
// Create a new face for from the vertices and the normal <br />
geo.faces.push(new THREE.Face3(i*3, i*3+1, i*3+2, normal));<br />
}<br />
<br />
// The binary STL I'm testing with seems to have all<br />
// zeroes for the normals, unlike its ASCII counterpart.<br />
// We can use three.js to compute the normals for us, though,<br />
// once we've assembled our geometry. This is a relatively <br />
// expensive operation, but only needs to be done once.<br />
geo.computeFaceNormals();<br />
<br />
mesh = new THREE.Mesh( <br />
geo,<br />
// new THREE.MeshNormalMaterial({<br />
// overdraw:true<br />
// }<br />
new THREE.MeshLambertMaterial({<br />
overdraw:true,<br />
color: 0xaa0000,<br />
shading: THREE.FlatShading<br />
}<br />
));<br />
scene.add(mesh);<br />
<br />
stl = null;<br />
}; <br />
<br />
var parseStl = function(stl) {<br />
var state = '';<br />
var lines = stl.split('\n');<br />
var geo = new THREE.Geometry();<br />
var name, parts, line, normal, done, vertices = [];<br />
var vCount = 0;<br />
stl = null;<br />
<br />
for (var len = lines.length, i = 0; i < len; i++) {<br />
if (done) {<br />
break;<br />
}<br />
line = trim(lines[i]);<br />
parts = line.split(' ');<br />
switch (state) {<br />
case '':<br />
if (parts[0] !== 'solid') {<br />
console.error(line);<br />
console.error('Invalid state "' + parts[0] + '", should be "solid"');<br />
return;<br />
} else {<br />
name = parts[1];<br />
state = 'solid';<br />
}<br />
break;<br />
case 'solid':<br />
if (parts[0] !== 'facet' || parts[1] !== 'normal') {<br />
console.error(line);<br />
console.error('Invalid state "' + parts[0] + '", should be "facet normal"');<br />
return;<br />
} else {<br />
normal = [<br />
parseFloat(parts[2]), <br />
parseFloat(parts[3]), <br />
parseFloat(parts[4])<br />
];<br />
state = 'facet normal';<br />
}<br />
break;<br />
case 'facet normal':<br />
if (parts[0] !== 'outer' || parts[1] !== 'loop') {<br />
console.error(line);<br />
console.error('Invalid state "' + parts[0] + '", should be "outer loop"');<br />
return;<br />
} else {<br />
state = 'vertex';<br />
}<br />
break;<br />
case 'vertex': <br />
if (parts[0] === 'vertex') {<br />
geo.vertices.push(new THREE.Vector3(<br />
parseFloat(parts[1]),<br />
parseFloat(parts[2]),<br />
parseFloat(parts[3])<br />
));<br />
} else if (parts[0] === 'endloop') {<br />
geo.faces.push( new THREE.Face3( vCount*3, vCount*3+1, vCount*3+2, new THREE.Vector3(normal[0], normal[1], normal[2]) ) );<br />
vCount++;<br />
state = 'endloop';<br />
} else {<br />
console.error(line);<br />
console.error('Invalid state "' + parts[0] + '", should be "vertex" or "endloop"');<br />
return;<br />
}<br />
break;<br />
case 'endloop':<br />
if (parts[0] !== 'endfacet') {<br />
console.error(line);<br />
console.error('Invalid state "' + parts[0] + '", should be "endfacet"');<br />
return;<br />
} else {<br />
state = 'endfacet';<br />
}<br />
break;<br />
case 'endfacet':<br />
if (parts[0] === 'endsolid') {<br />
//mesh = new THREE.Mesh( geo, new THREE.MeshNormalMaterial({overdraw:true}));<br />
mesh = new THREE.Mesh( <br />
geo, <br />
new THREE.MeshLambertMaterial({<br />
overdraw:true,<br />
color: 0xaa0000,<br />
shading: THREE.FlatShading<br />
}<br />
));<br />
scene.add(mesh);<br />
done = true;<br />
} else if (parts[0] === 'facet' && parts[1] === 'normal') {<br />
normal = [<br />
parseFloat(parts[2]), <br />
parseFloat(parts[3]), <br />
parseFloat(parts[4])<br />
];<br />
if (vCount % 1000 === 0) {<br />
console.log(normal);<br />
}<br />
state = 'facet normal';<br />
} else {<br />
console.error(line);<br />
console.error('Invalid state "' + parts[0] + '", should be "endsolid" or "facet normal"');<br />
return;<br />
}<br />
break;<br />
default:<br />
console.error('Invalid state "' + state + '"');<br />
break;<br />
}<br />
}<br />
};<br />
<br />
<br />
<br />
init();<br />
animate();<br />
<br />
function arrayBufferToString(buffer)<br />
{<br />
var bufView = new Uint8Array(buffer);<br />
var length = bufView.length;<br />
var result = '';<br />
for(var i = 0;i<length;i+=65535)<br />
{<br />
var addition = 65535;<br />
if(i + 65535 > length)<br />
{<br />
addition = length - i;<br />
}<br />
result += String.fromCharCode.apply(null, bufView.subarray(i,i+addition));<br />
}<br />
<br />
return result;<br />
}<br />
<br />
function init() {<br />
<br />
//Detector.addGetWebGLMessage();<br />
<br />
scene = new THREE.Scene();<br />
<br />
camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 1, 10000 );<br />
camera.position.z = 70;<br />
camera.position.y = 0;<br />
scene.add( camera );<br />
<br />
var directionalLight = new THREE.DirectionalLight( 0xffffff );<br />
directionalLight.position.x = 0; <br />
directionalLight.position.y = 0; <br />
directionalLight.position.z = 1; <br />
directionalLight.position.normalize();<br />
scene.add( directionalLight );<br />
<br />
var xhr = new XMLHttpRequest();<br />
xhr.onreadystatechange = function () {<br />
if ( xhr.readyState == 4 ) {<br />
if ( xhr.status == 200 || xhr.status == 0 ) {<br />
var rep = xhr.response; // || xhr.mozResponseArrayBuffer;<br />
console.log(rep);<br />
//parseStlBinary(rep);<br />
parseStl(arrayBufferToString(rep));<br />
mesh.rotation.x = 5;<br />
mesh.rotation.z = .25;<br />
console.log('done parsing');<br />
}<br />
}<br />
}<br />
xhr.onerror = function(e) {<br />
console.log(e);<br />
}<br />
<br />
xhr.open( "GET", 'igem.stl', true );<br />
xhr.responseType = "arraybuffer";<br />
//xhr.setRequestHeader("Accept","text/plain");<br />
//xhr.setRequestHeader("Content-Type","text/plain");<br />
//xhr.setRequestHeader('charset', 'x-user-defined');<br />
xhr.send( null );<br />
<br />
renderer = new THREE.WebGLRenderer(); //new THREE.CanvasRenderer();<br />
renderer.setSize( window.innerWidth, window.innerHeight );<br />
<br />
document.body.appendChild( renderer.domElement );<br />
<br />
stats = new Stats();<br />
stats.domElement.style.position = 'absolute';<br />
stats.domElement.style.top = '0px';<br />
document.body.appendChild(stats.domElement);<br />
}<br />
<br />
function animate() {<br />
<br />
// note: three.js includes requestAnimationFrame shim<br />
requestAnimationFrame( animate );<br />
render();<br />
stats.update();<br />
<br />
}<br />
<br />
function render() {<br />
<br />
//mesh.rotation.x += 0.01;<br />
if (mesh) {<br />
mesh.rotation.z += 0.02;<br />
}<br />
//light1.position.z -= 1;<br />
<br />
renderer.render( scene, camera );<br />
<br />
}<br />
<br />
</script><br />
</body><br />
</html></div>
Mjoppich