@@ -26,8 +26,8 @@ THREE.SVGRenderer = function () {
2626 _w , // z-buffer to w-buffer
2727 _vector3 = new THREE . Vector3 ( ) , // Needed for PointLight
2828
29- _svgPathPool = [ ] , _svgRectPool = [ ] , _svgLinePool = [ ] ,
30- _svgNode , _pathCount , _circleCount , _lineCount ,
29+ _svgPathPool = [ ] , _svgLinePool = [ ] , _svgRectPool = [ ] ,
30+ _svgNode , _pathCount = 0 , _lineCount = 0 , _rectCount = 0 ,
3131 _quality = 1 ;
3232
3333 this . domElement = _svg ;
@@ -86,8 +86,8 @@ THREE.SVGRenderer = function () {
8686 this . clear = function ( ) {
8787
8888 _pathCount = 0 ;
89- _circleCount = 0 ;
9089 _lineCount = 0 ;
90+ _rectCount = 0 ;
9191
9292 while ( _svg . childNodes . length > 0 ) {
9393
@@ -129,7 +129,7 @@ THREE.SVGRenderer = function () {
129129 if ( element instanceof THREE . RenderableSprite ) {
130130
131131 _v1 = element ;
132- _v1 . x *= _svgWidthHalf ; _v1 . y *= - _svgHeightHalf ;
132+ _v1 . x *= _svgWidthHalf ; _v1 . y *= - _svgHeightHalf ;
133133
134134 renderSprite ( _v1 , element , material ) ;
135135
@@ -260,19 +260,15 @@ THREE.SVGRenderer = function () {
260260
261261 function renderSprite ( v1 , element , material ) {
262262
263- var scaleX = element . object . scale . x ;
264- var scaleY = element . object . scale . y ;
263+ var scaleX = element . scale . x * _svgWidthHalf ;
264+ var scaleY = element . scale . y * _svgHeightHalf ;
265265
266- // TODO: Be able to disable this
266+ _svgNode = getRectNode ( _rectCount ++ ) ;
267267
268- scaleX *= element . scale . x * _svgWidthHalf ;
269- scaleY *= element . scale . y * _svgHeightHalf ;
270-
271- _svgNode = getRectNode ( _circleCount ++ ) ;
272- _svgNode . setAttribute ( 'x' , v1 . x - scaleX ) ;
273- _svgNode . setAttribute ( 'y' , v1 . y - scaleY ) ;
274- _svgNode . setAttribute ( 'width' , 2 * scaleX ) ;
275- _svgNode . setAttribute ( 'height' , 2 * scaleY ) ;
268+ _svgNode . setAttribute ( 'x' , v1 . x - ( scaleX * 0.5 ) ) ;
269+ _svgNode . setAttribute ( 'y' , v1 . y - ( scaleY * 0.5 ) ) ;
270+ _svgNode . setAttribute ( 'width' , scaleX ) ;
271+ _svgNode . setAttribute ( 'height' , scaleY ) ;
276272
277273 if ( material instanceof THREE . SpriteMaterial ) {
278274
@@ -284,7 +280,7 @@ THREE.SVGRenderer = function () {
284280
285281 }
286282
287- function renderLine ( v1 , v2 , element , material ) {
283+ function renderLine ( v1 , v2 , element , material ) {
288284
289285 _svgNode = getLineNode ( _lineCount ++ ) ;
290286
@@ -412,7 +408,7 @@ THREE.SVGRenderer = function () {
412408
413409 if ( _quality == 0 ) {
414410
415- _svgRectPool [ id ] . setAttribute ( 'shape-rendering' , 'crispEdges' ) ; //optimizeSpeed
411+ _svgRectPool [ id ] . setAttribute ( 'shape-rendering' , 'crispEdges' ) ; //optimizeSpeed
416412
417413 }
418414
0 commit comments