@@ -559,18 +559,31 @@ function prerenderTitles(cdModule, gd) {
559559}
560560
561561function transformInsideText ( textBB , pt , cd0 ) {
562- var textDiameter = Math . sqrt ( textBB . width * textBB . width + textBB . height * textBB . height ) ;
562+ var r = cd0 . r || pt . rpx1 ;
563+ var rInscribed = pt . rInscribed ;
564+
565+ var isEmpty = pt . startangle === pt . stopangle ;
566+ if ( isEmpty ) {
567+ return {
568+ rCenter : 1 - rInscribed ,
569+ scale : 0 ,
570+ rotate : 0 ,
571+ textPosAngle : 0
572+ } ;
573+ }
574+
575+ var ring = pt . ring ;
576+ var isCircle = ( ring === 1 ) && ( Math . abs ( pt . startangle - pt . stopangle ) === Math . PI * 2 ) ;
577+
563578 var halfAngle = pt . halfangle ;
564579 var midAngle = pt . midangle ;
565- var ring = pt . ring ;
566- var rInscribed = pt . rInscribed ;
567- var r = cd0 . r || pt . rpx1 ;
580+
568581 var orientation = cd0 . trace . insidetextorientation ;
569582 var isHorizontal = orientation === 'horizontal' ;
570583 var isTangential = orientation === 'tangential' ;
571584 var isRadial = orientation === 'radial' ;
572585 var isAuto = orientation === 'auto' ;
573- var isCircle = ( ring === 1 ) && ( Math . abs ( pt . startangle - pt . stopangle ) === Math . PI * 2 ) ;
586+
574587 var allTransforms = [ ] ;
575588 var newT ;
576589
@@ -616,6 +629,8 @@ function transformInsideText(textBB, pt, cd0) {
616629 // this inscribes the text rectangle in a circle, which is then inscribed
617630 // in the slice, so it will be an underestimate, which some day we may want
618631 // to improve so this case can get more use
632+ var textDiameter = Math . sqrt ( textBB . width * textBB . width + textBB . height * textBB . height ) ;
633+
619634 newT = {
620635 scale : rInscribed * r * 2 / textDiameter ,
621636
0 commit comments