Skip to content

Commit

Permalink
small fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
s417-lama committed Mar 8, 2021
1 parent 6e9cb40 commit 5161478
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 33 deletions.
41 changes: 21 additions & 20 deletions src/components/drawing/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -373,6 +373,11 @@ drawing.pattern = function(sel, gd, patternID, shape, bgcolor, fgcolor, size, so
var fullID = 'p' + fullLayout._uid + '-' + patternID;
var width, height;

// linear interpolation
var linearFn = function(x, x0, x1, y0, y1) {
return y0 + (y1 - y0) * (x - x0) / (x1 - x0);
};

var path, linewidth, radius;
var patternTag;
var patternAttrs = {};
Expand Down Expand Up @@ -468,10 +473,6 @@ drawing.pattern = function(sel, gd, patternID, shape, bgcolor, fgcolor, size, so
if(solidity < Math.PI / 4) {
radius = Math.sqrt(solidity * size * size / Math.PI);
} else {
// linear interpolation
var linearFn = function(x, x0, x1, y0, y1) {
return y0 + (y1 - y0) * (x - x0) / (x1 - x0);
};
radius = linearFn(solidity, Math.PI / 4, 1.0, size / 2, size / Math.sqrt(2));
}
patternTag = 'circle';
Expand Down Expand Up @@ -561,6 +562,13 @@ drawing.initPatterns = function(gd) {
fullLayout._patternUrlQueryParts = {};
};

drawing.getPatternAttr = function(mp, i, dflt) {
if(mp && Lib.isArrayOrTypedArray(mp)) {
return i < mp.length ? mp[i] : dflt;
}
return mp;
};

drawing.pointStyle = function(s, trace, gd) {
if(!s.size()) return;

Expand Down Expand Up @@ -665,20 +673,13 @@ drawing.singlePointStyle = function(d, sel, trace, fns, gd) {

// for legend - arrays will propagate through here, but we don't need
// to treat it as per-point.
if(Array.isArray(gradientType)) {
if(Lib.isArrayOrTypedArray(gradientType)) {
gradientType = gradientType[0];
if(!gradientInfo[gradientType]) gradientType = 0;
}

var getPatternAttr = function(mp, i, dflt) {
if(mp && Array.isArray(mp)) {
if(i < mp.length) return mp[i];
else return dflt;
}
return mp;
};
var markerPattern = marker.pattern;
var patternShape = markerPattern && getPatternAttr(markerPattern.shape, d.i, '');
var patternShape = markerPattern && drawing.getPatternAttr(markerPattern.shape, d.i, '');

if(gradientType && gradientType !== 'none') {
var gradientColor = d.mgc;
Expand All @@ -691,13 +692,13 @@ drawing.singlePointStyle = function(d, sel, trace, fns, gd) {
drawing.gradient(sel, gd, gradientID, gradientType,
[[0, gradientColor], [1, fillColor]], 'fill');
} else if(patternShape) {
var patternBGColor = getPatternAttr(markerPattern.bgcolor, d.i, null);
var patternSize = getPatternAttr(markerPattern.size, d.i, 8);
var patternSolidity = getPatternAttr(markerPattern.solidity, d.i, 0.3);
var perPointPattern = Array.isArray(markerPattern.shape) ||
Array.isArray(markerPattern.bgcolor) ||
Array.isArray(markerPattern.size) ||
Array.isArray(markerPattern.solidity);
var patternBGColor = drawing.getPatternAttr(markerPattern.bgcolor, d.i, null);
var patternSize = drawing.getPatternAttr(markerPattern.size, d.i, 8);
var patternSolidity = drawing.getPatternAttr(markerPattern.solidity, d.i, 0.3);
var perPointPattern = Lib.isArrayOrTypedArray(markerPattern.shape) ||
Lib.isArrayOrTypedArray(markerPattern.bgcolor) ||
Lib.isArrayOrTypedArray(markerPattern.size) ||
Lib.isArrayOrTypedArray(markerPattern.solidity);

var patternID = trace.uid;
if(perPointPattern) patternID += '-' + d.i;
Expand Down
15 changes: 4 additions & 11 deletions src/components/legend/style.js
Original file line number Diff line number Diff line change
Expand Up @@ -361,20 +361,13 @@ module.exports = function style(s, gd, legend) {

var fillColor = d0.mc || marker.color;

var getPatternAttr = function(mp, dflt) {
if(mp && Array.isArray(mp)) {
if(mp.length > 0) return mp[0];
else return dflt;
}
return mp;
};
var markerPattern = marker.pattern;
var patternShape = markerPattern && getPatternAttr(markerPattern.shape, '');
var patternShape = markerPattern && Drawing.getPatternAttr(markerPattern.shape, 0, '');

if(patternShape) {
var patternBGColor = getPatternAttr(markerPattern.bgcolor, null);
var patternSize = Math.min(12, getPatternAttr(markerPattern.size, 8));
var patternSolidity = getPatternAttr(markerPattern.solidity, 0.3);
var patternBGColor = Drawing.getPatternAttr(markerPattern.bgcolor, 0, null);
var patternSize = Math.min(12, Drawing.getPatternAttr(markerPattern.size, 0, 8));
var patternSolidity = Drawing.getPatternAttr(markerPattern.solidity, 0, 0.3);
var patternID = 'legend-' + trace.uid;
p.call(Drawing.pattern, gd, patternID, patternShape, patternBGColor,
fillColor, patternSize, patternSolidity, 'fill');
Expand Down
4 changes: 2 additions & 2 deletions src/traces/bar/style_defaults.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ module.exports = function handleStyleDefaults(traceIn, traceOut, coerce, default

coerce('marker.line.width');
coerce('marker.opacity');
var pattern = coerce('marker.pattern.shape');
if(pattern) {
var patternShape = coerce('marker.pattern.shape');
if(patternShape) {
coerce('marker.pattern.bgcolor');
coerce('marker.pattern.size');
coerce('marker.pattern.solidity');
Expand Down

0 comments on commit 5161478

Please sign in to comment.