diff --git a/src/core/Geometry.js b/src/core/Geometry.js index 6486b086b608a0d19b43e46c8ec8d9ec60802d50..9a61f882e48d69367d55e553af965e0f2c9ddf48 100644 --- a/src/core/Geometry.js +++ b/src/core/Geometry.js @@ -110,10 +110,12 @@ Object.assign( Geometry.prototype, EventDispatcher.prototype, { // rotate geometry around world x-axis - var m1 = new Matrix4(); + var m1; return function rotateX( angle ) { + if ( m1 === undefined ) m1 = new Matrix4(); + m1.makeRotationX( angle ); this.applyMatrix( m1 ); @@ -128,10 +130,12 @@ Object.assign( Geometry.prototype, EventDispatcher.prototype, { // rotate geometry around world y-axis - var m1 = new Matrix4(); + var m1; return function rotateY( angle ) { + if ( m1 === undefined ) m1 = new Matrix4(); + m1.makeRotationY( angle ); this.applyMatrix( m1 ); @@ -146,10 +150,12 @@ Object.assign( Geometry.prototype, EventDispatcher.prototype, { // rotate geometry around world z-axis - var m1 = new Matrix4(); + var m1; return function rotateZ( angle ) { + if ( m1 === undefined ) m1 = new Matrix4(); + m1.makeRotationZ( angle ); this.applyMatrix( m1 ); @@ -164,10 +170,12 @@ Object.assign( Geometry.prototype, EventDispatcher.prototype, { // translate geometry - var m1 = new Matrix4(); + var m1; return function translate( x, y, z ) { + if ( m1 === undefined ) m1 = new Matrix4(); + m1.makeTranslation( x, y, z ); this.applyMatrix( m1 ); @@ -182,10 +190,12 @@ Object.assign( Geometry.prototype, EventDispatcher.prototype, { // scale geometry - var m1 = new Matrix4(); + var m1; return function scale( x, y, z ) { + if ( m1 === undefined ) m1 = new Matrix4(); + m1.makeScale( x, y, z ); this.applyMatrix( m1 ); @@ -198,10 +208,12 @@ Object.assign( Geometry.prototype, EventDispatcher.prototype, { lookAt: function () { - var obj = new Object3D(); + var obj; return function lookAt( vector ) { + if ( obj === undefined ) obj = new Object3D(); + obj.lookAt( vector ); obj.updateMatrix();