sunspider-3d-morph.js 632 B

123456789101112131415161718192021222324252627282930313233343536
  1. // Test from here:
  2. // http://webkit.org/misc/morph.html
  3. startTest("sunspider-3d-morph");
  4. var loops = 15, nx, nz, a;
  5. var size = 120;
  6. function morph(a,f) {
  7. var PI2nx = Math.PI * 8/nx;
  8. var sin = Math.sin;
  9. var f30 = -(50 * sin(f*Math.PI*2));
  10. for (var i = 0; i < nz; ++i) {
  11. for (var j = 0; j < nx; ++j) {
  12. a[3*(i*nx+j)+1] = sin((j-1) * PI2nx ) * -f30
  13. }
  14. }
  15. }
  16. prep(function(){
  17. nz = nx = size / 3;
  18. });
  19. test("Mesh Transform", function(){
  20. a = Array();
  21. for (var i=0; i < nx*nz*3; ++i)
  22. a[i] = 0;
  23. for (var i = 0; i < loops; ++i) {
  24. morph(a, i/loops)
  25. }
  26. });
  27. endTest();