package.src.traces.isosurface.defaults.js Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of plotly.js Show documentation
Show all versions of plotly.js Show documentation
The open source javascript graphing library that powers plotly
The newest version!
'use strict';
var Lib = require('../../lib');
var Registry = require('../../registry');
var attributes = require('./attributes');
var colorscaleDefaults = require('../../components/colorscale/defaults');
function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
function coerce(attr, dflt) {
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
}
supplyIsoDefaults(traceIn, traceOut, defaultColor, layout, coerce);
}
function supplyIsoDefaults(traceIn, traceOut, defaultColor, layout, coerce) {
var isomin = coerce('isomin');
var isomax = coerce('isomax');
if(isomax !== undefined && isomax !== null &&
isomin !== undefined && isomin !== null &&
isomin > isomax) {
// applying default values in this case:
traceOut.isomin = null;
traceOut.isomax = null;
}
var x = coerce('x');
var y = coerce('y');
var z = coerce('z');
var value = coerce('value');
if(
!x || !x.length ||
!y || !y.length ||
!z || !z.length ||
!value || !value.length
) {
traceOut.visible = false;
return;
}
var handleCalendarDefaults = Registry.getComponentMethod('calendars', 'handleTraceDefaults');
handleCalendarDefaults(traceIn, traceOut, ['x', 'y', 'z'], layout);
coerce('valuehoverformat');
['x', 'y', 'z'].forEach(function(dim) {
coerce(dim + 'hoverformat');
var capDim = 'caps.' + dim;
var showCap = coerce(capDim + '.show');
if(showCap) {
coerce(capDim + '.fill');
}
var sliceDim = 'slices.' + dim;
var showSlice = coerce(sliceDim + '.show');
if(showSlice) {
coerce(sliceDim + '.fill');
coerce(sliceDim + '.locations');
}
});
var showSpaceframe = coerce('spaceframe.show');
if(showSpaceframe) {
coerce('spaceframe.fill');
}
var showSurface = coerce('surface.show');
if(showSurface) {
coerce('surface.count');
coerce('surface.fill');
coerce('surface.pattern');
}
var showContour = coerce('contour.show');
if(showContour) {
coerce('contour.color');
coerce('contour.width');
}
// Coerce remaining properties
[
'text',
'hovertext',
'hovertemplate',
'lighting.ambient',
'lighting.diffuse',
'lighting.specular',
'lighting.roughness',
'lighting.fresnel',
'lighting.vertexnormalsepsilon',
'lighting.facenormalsepsilon',
'lightposition.x',
'lightposition.y',
'lightposition.z',
'flatshading',
'opacity'
].forEach(function(x) { coerce(x); });
colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: '', cLetter: 'c'});
// disable 1D transforms (for now)
traceOut._length = null;
}
module.exports = {
supplyDefaults: supplyDefaults,
supplyIsoDefaults: supplyIsoDefaults
};