@@ -218,13 +218,14 @@ drawing.dashStyle = function(dash, lineWidth) {
218218function setFillStyle ( sel , trace , gd , forLegend ) {
219219 var markerPattern = trace . fillpattern ;
220220 var fillgradient = trace . fillgradient ;
221- var patternShape = markerPattern && drawing . getPatternAttr ( markerPattern . shape , 0 , '' ) ;
221+ var pAttr = drawing . getPatternAttr ;
222+ var patternShape = markerPattern && ( pAttr ( markerPattern . shape , 0 , '' ) || pAttr ( markerPattern . path , 0 , '' ) ) ;
222223 if ( patternShape ) {
223- var patternBGColor = drawing . getPatternAttr ( markerPattern . bgcolor , 0 , null ) ;
224- var patternFGColor = drawing . getPatternAttr ( markerPattern . fgcolor , 0 , null ) ;
224+ var patternBGColor = pAttr ( markerPattern . bgcolor , 0 , null ) ;
225+ var patternFGColor = pAttr ( markerPattern . fgcolor , 0 , null ) ;
225226 var patternFGOpacity = markerPattern . fgopacity ;
226- var patternSize = drawing . getPatternAttr ( markerPattern . size , 0 , 8 ) ;
227- var patternSolidity = drawing . getPatternAttr ( markerPattern . solidity , 0 , 0.3 ) ;
227+ var patternSize = pAttr ( markerPattern . size , 0 , 8 ) ;
228+ var patternSolidity = pAttr ( markerPattern . solidity , 0 , 0.3 ) ;
228229 var patternID = trace . uid ;
229230 drawing . pattern ( sel , 'point' , gd , patternID ,
230231 patternShape , patternSize , patternSolidity ,
@@ -662,6 +663,16 @@ drawing.pattern = function(sel, calledBy, gd, patternID, shape, size, solidity,
662663 fill : fgRGB
663664 } ;
664665 break ;
666+ default :
667+ width = size ;
668+ height = size ;
669+ patternTag = 'path' ;
670+ patternAttrs = {
671+ d : shape ,
672+ opacity : opacity ,
673+ fill : fgRGB
674+ } ;
675+ break ;
665676 }
666677
667678 var str = [
@@ -869,7 +880,10 @@ drawing.singlePointStyle = function(d, sel, trace, fns, gd, pt) {
869880 }
870881
871882 var markerPattern = marker . pattern ;
872- var patternShape = markerPattern && drawing . getPatternAttr ( markerPattern . shape , d . i , '' ) ;
883+ var pAttr = drawing . getPatternAttr ;
884+ var patternShape = markerPattern && (
885+ pAttr ( markerPattern . shape , d . i , '' ) || pAttr ( markerPattern . path , d . i , '' )
886+ ) ;
873887
874888 if ( gradientType && gradientType !== 'none' ) {
875889 var gradientColor = d . mgc ;
@@ -888,14 +902,15 @@ drawing.singlePointStyle = function(d, sel, trace, fns, gd, pt) {
888902 fgcolor = pt . color ;
889903 perPointPattern = true ;
890904 }
891- var patternFGColor = drawing . getPatternAttr ( fgcolor , d . i , ( pt && pt . color ) || null ) ;
905+ var patternFGColor = pAttr ( fgcolor , d . i , ( pt && pt . color ) || null ) ;
892906
893- var patternBGColor = drawing . getPatternAttr ( markerPattern . bgcolor , d . i , null ) ;
907+ var patternBGColor = pAttr ( markerPattern . bgcolor , d . i , null ) ;
894908 var patternFGOpacity = markerPattern . fgopacity ;
895- var patternSize = drawing . getPatternAttr ( markerPattern . size , d . i , 8 ) ;
896- var patternSolidity = drawing . getPatternAttr ( markerPattern . solidity , d . i , 0.3 ) ;
909+ var patternSize = pAttr ( markerPattern . size , d . i , 8 ) ;
910+ var patternSolidity = pAttr ( markerPattern . solidity , d . i , 0.3 ) ;
897911 perPointPattern = perPointPattern || d . mcc ||
898912 Lib . isArrayOrTypedArray ( markerPattern . shape ) ||
913+ Lib . isArrayOrTypedArray ( markerPattern . path ) ||
899914 Lib . isArrayOrTypedArray ( markerPattern . bgcolor ) ||
900915 Lib . isArrayOrTypedArray ( markerPattern . fgcolor ) ||
901916 Lib . isArrayOrTypedArray ( markerPattern . size ) ||
0 commit comments