@@ -453,13 +453,7 @@ proto.updateAngularAxis = function(fullLayout, polarLayout) {
453
453
angularLayout . _categories . length ;
454
454
455
455
ax . range = [ 0 , period ] ;
456
-
457
- ax . _tickFilter = function ( d ) {
458
- return _this . isPtWithinSector ( {
459
- r : _this . radialAxis . range [ 1 ] ,
460
- rad : ax . c2rad ( d . x )
461
- } ) ;
462
- } ;
456
+ ax . _tickFilter = function ( d ) { return isAngleInSector ( c2rad ( d ) , sector ) ; } ;
463
457
}
464
458
465
459
setScale ( ax , angularLayout , fullLayout ) ;
@@ -1003,17 +997,15 @@ proto.updateAngularDrag = function(fullLayout, polarLayout) {
1003
997
1004
998
proto . isPtWithinSector = function ( d ) {
1005
999
var sector = this . sector ;
1000
+
1001
+ if ( ! isAngleInSector ( d . rad , sector ) ) {
1002
+ return false ;
1003
+ }
1004
+
1006
1005
var radialAxis = this . radialAxis ;
1007
1006
var radialRange = radialAxis . range ;
1008
1007
var r = radialAxis . c2r ( d . r ) ;
1009
1008
1010
- var s0 = wrap360 ( sector [ 0 ] ) ;
1011
- var s1 = wrap360 ( sector [ 1 ] ) ;
1012
- if ( s0 > s1 ) s1 += 360 ;
1013
-
1014
- var deg = wrap360 ( rad2deg ( d . rad ) ) ;
1015
- var nextTurnDeg = deg + 360 ;
1016
-
1017
1009
var r0 , r1 ;
1018
1010
if ( radialRange [ 1 ] >= radialRange [ 0 ] ) {
1019
1011
r0 = radialRange [ 0 ] ;
@@ -1023,13 +1015,8 @@ proto.isPtWithinSector = function(d) {
1023
1015
r1 = radialRange [ 0 ] ;
1024
1016
}
1025
1017
1026
- return (
1027
- ( r >= r0 && r <= r1 ) &&
1028
- ( isFullCircle ( sector ) ||
1029
- ( deg >= s0 && deg <= s1 ) ||
1030
- ( nextTurnDeg >= s0 && nextTurnDeg <= s1 )
1031
- )
1032
- ) ;
1018
+
1019
+ return r >= r0 && r <= r1 ;
1033
1020
} ;
1034
1021
1035
1022
proto . fillViewInitialKey = function ( key , val ) {
@@ -1110,6 +1097,20 @@ function computeSectorBBox(sector) {
1110
1097
return [ x0 , y0 , x1 , y1 ] ;
1111
1098
}
1112
1099
1100
+ function isAngleInSector ( rad , sector ) {
1101
+ if ( isFullCircle ( sector ) ) return true ;
1102
+
1103
+ var s0 = wrap360 ( sector [ 0 ] ) ;
1104
+ var s1 = wrap360 ( sector [ 1 ] ) ;
1105
+ if ( s0 > s1 ) s1 += 360 ;
1106
+
1107
+ var deg = wrap360 ( rad2deg ( rad ) ) ;
1108
+ var nextTurnDeg = deg + 360 ;
1109
+
1110
+ return ( deg >= s0 && deg <= s1 ) ||
1111
+ ( nextTurnDeg >= s0 && nextTurnDeg <= s1 ) ;
1112
+ }
1113
+
1113
1114
function pathSector ( r , sector ) {
1114
1115
if ( isFullCircle ( sector ) ) {
1115
1116
return Drawing . symbolFuncs [ 0 ] ( r ) ;
0 commit comments