1+ /**
2+ * @author mikael emtinger / http://gomo.se/
3+ * @author alteredq / http://alteredqualia.com/
4+ */
5+
16import { Vector2 } from '../math/Vector2.js' ;
27import { Vector3 } from '../math/Vector3.js' ;
38import { Matrix4 } from '../math/Matrix4.js' ;
@@ -7,19 +12,35 @@ import { InterleavedBuffer } from '../core/InterleavedBuffer.js';
712import { InterleavedBufferAttribute } from '../core/InterleavedBufferAttribute.js' ;
813import { SpriteMaterial } from '../materials/SpriteMaterial.js' ;
914
10- /**
11- * @author mikael emtinger / http://gomo.se/
12- * @author alteredq / http://alteredqualia.com/
13- */
15+ var geometry ;
1416
1517function Sprite ( material ) {
1618
1719 Object3D . call ( this ) ;
1820
1921 this . type = 'Sprite' ;
2022
23+ if ( geometry === undefined ) {
24+
25+ geometry = new BufferGeometry ( ) ;
26+
27+ var float32Array = new Float32Array ( [
28+ - 0.5 , - 0.5 , 0 , 0 , 0 ,
29+ 0.5 , - 0.5 , 0 , 1 , 0 ,
30+ 0.5 , 0.5 , 0 , 1 , 1 ,
31+ - 0.5 , 0.5 , 0 , 0 , 1
32+ ] ) ;
33+
34+ var interleavedBuffer = new InterleavedBuffer ( float32Array , 5 ) ;
35+
36+ geometry . setIndex ( [ 0 , 1 , 2 , 0 , 2 , 3 ] ) ;
37+ geometry . addAttribute ( 'position' , new InterleavedBufferAttribute ( interleavedBuffer , 3 , 0 , false ) ) ;
38+ geometry . addAttribute ( 'uv' , new InterleavedBufferAttribute ( interleavedBuffer , 2 , 3 , false ) ) ;
39+
40+ }
41+
42+ this . geometry = geometry ;
2143 this . material = ( material !== undefined ) ? material : new SpriteMaterial ( ) ;
22- this . geometry = SpriteGeometry ;
2344
2445 this . center = new Vector2 ( 0.5 , 0.5 ) ;
2546
@@ -145,27 +166,4 @@ Sprite.prototype = Object.assign( Object.create( Object3D.prototype ), {
145166
146167} ) ;
147168
148- //
149-
150- var SpriteGeometry = ( function ( ) {
151-
152- var geometry = new BufferGeometry ( ) ;
153-
154- var float32Array = new Float32Array ( [
155- - 0.5 , - 0.5 , 0 , 0 , 0 ,
156- 0.5 , - 0.5 , 0 , 1 , 0 ,
157- 0.5 , 0.5 , 0 , 1 , 1 ,
158- - 0.5 , 0.5 , 0 , 0 , 1
159- ] ) ;
160-
161- var interleavedBuffer = new InterleavedBuffer ( float32Array , 5 ) ;
162-
163- geometry . setIndex ( [ 0 , 1 , 2 , 0 , 2 , 3 ] ) ;
164- geometry . addAttribute ( 'position' , new InterleavedBufferAttribute ( interleavedBuffer , 3 , 0 , false ) ) ;
165- geometry . addAttribute ( 'uv' , new InterleavedBufferAttribute ( interleavedBuffer , 2 , 3 , false ) ) ;
166-
167- return geometry ;
168-
169- } ) ( ) ;
170-
171169export { Sprite } ;
0 commit comments