UNPKG

cione-comp-lib

Version:

`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`

61 lines (60 loc) 2.27 kB
import { map } from "../../../zrender/lib/core/util.mjs"; import createRenderPlanner from "../chart/helper/createRenderPlanner.mjs"; import { isDimensionStacked } from "../data/helper/dataStackHelper.mjs"; import { createFloat32Array } from "../util/vendor.mjs"; function pointsLayout(seriesType, forceStoreInTypedArray) { return { seriesType, plan: createRenderPlanner(), reset: function(seriesModel) { var data = seriesModel.getData(); var coordSys = seriesModel.coordinateSystem; var pipelineContext = seriesModel.pipelineContext; var useTypedArray = forceStoreInTypedArray || pipelineContext.large; if (!coordSys) { return; } var dims = map(coordSys.dimensions, function(dim) { return data.mapDimension(dim); }).slice(0, 2); var dimLen = dims.length; var stackResultDim = data.getCalculationInfo("stackResultDimension"); if (isDimensionStacked(data, dims[0])) { dims[0] = stackResultDim; } if (isDimensionStacked(data, dims[1])) { dims[1] = stackResultDim; } var store = data.getStore(); var dimIdx0 = data.getDimensionIndex(dims[0]); var dimIdx1 = data.getDimensionIndex(dims[1]); return dimLen && { progress: function(params, data2) { var segCount = params.end - params.start; var points = useTypedArray && createFloat32Array(segCount * dimLen); var tmpIn = []; var tmpOut = []; for (var i = params.start, offset = 0; i < params.end; i++) { var point = void 0; if (dimLen === 1) { var x = store.get(dimIdx0, i); point = coordSys.dataToPoint(x, null, tmpOut); } else { tmpIn[0] = store.get(dimIdx0, i); tmpIn[1] = store.get(dimIdx1, i); point = coordSys.dataToPoint(tmpIn, null, tmpOut); } if (useTypedArray) { points[offset++] = point[0]; points[offset++] = point[1]; } else { data2.setItemLayout(i, point.slice()); } } useTypedArray && data2.setLayout("points", points); } }; } }; } export { pointsLayout as default };