123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- THREE = {};
-
- THREE.Vector3 = function ( x, y, z ) {
- this.x = x || 0;
- this.y = y || 0;
- this.z = z || 0;
- };
- THREE.Vector3.prototype = {
- constructor: THREE.Vector3,
-
- length: function () {
- return Math.sqrt( this.x * this.x + this.y * this.y + this.z * this.z );
- }
-
- };
- THREE.Vector3X = function ( x, y, z ) {
- var elements = this.elements = new Float32Array( 3 );
- elements[0] = x || 0;
- elements[1] = y || 1;
- elements[2] = z || 2;
- };
- THREE.Vector3X.prototype = {
- constructor: THREE.Vector3X,
-
- length: function () {
- return Math.sqrt( this.elements[0] * this.elements[0] + this.elements[1] * this.elements[1] + this.elements[2] * this.elements[2] );
- }
-
- };
- THREE.Vector3Y = function ( x, y, z ) {
- this.elements = [ x || 0, y || 1, z || 2 ];
- };
- THREE.Vector3Y.prototype = {
- constructor: THREE.Vector3Y,
-
- length: function () {
- return Math.sqrt( this.elements[0] * this.elements[0] + this.elements[1] * this.elements[1] + this.elements[2] * this.elements[2] );
- }
-
- };
- var suite = new Benchmark.Suite;
- suite.add('Vector3-Set', function() {
- var array = [];
- for ( var i = 0; i < 100000; i ++ ) {
- var v = new THREE.Vector3( i, i, i );
- array.push( v );
- }
- var result = 0;
- for ( var i = 0; i < 100000; i ++ ) {
- var v = array[i];
- result += v.length();
- }
- });
- suite.add('Vector3-Float32Array', function() {
- var array = [];
- for ( var i = 0; i < 100000; i ++ ) {
- var v = new THREE.Vector3X( i, i, i );
- array.push( v );
- }
- var result = 0;
- for ( var i = 0; i < 100000; i ++ ) {
- var v = array[i];
- result += v.length();
- }
- });
- suite.add('Vector3-Array', function() {
- var array = [];
- for ( var i = 0; i < 100000; i ++ ) {
- var v = new THREE.Vector3Y( i, i, i );
- array.push( v );
- }
- var result = 0;
- for ( var i = 0; i < 100000; i ++ ) {
- var v = array[i];
- result += v.length();
- }
- });
- suite.on('cycle', function(event, bench) {
- console.log(String(event.target));
- });
- suite.on('complete', function() {
- console.log('Fastest is ' + this.filter('fastest').pluck('name'));
- console.log( "Done" );
- });
- suite.run(true);
|