"use strict"; var echarts = require("echarts/index.blank"); echarts.registerLayout(function (ecModel, api) { ecModel.eachSeriesByType('surface', function (surfaceModel) { var cartesian = surfaceModel.coordinateSystem; if (!cartesian || cartesian.type !== 'cartesian3D') { if (process.env.NODE_ENV !== 'production') { console.error('Surface chart only support cartesian3D coordinateSystem'); } } var data = surfaceModel.getData(); var points = new Float32Array(3 * data.count()); var nanPoint = [NaN, NaN, NaN]; if (cartesian && cartesian.type === 'cartesian3D') { var coordDims = cartesian.dimensions; var dims = coordDims.map(function (coordDim) { return surfaceModel.coordDimToDataDim(coordDim)[0]; }); data.each(dims, function (x, y, z, idx) { var pt; if (!data.hasValue(idx)) { pt = nanPoint; } else { pt = cartesian.dataToPoint([x, y, z]); } points[idx * 3] = pt[0]; points[idx * 3 + 1] = pt[1]; points[idx * 3 + 2] = pt[2]; }); } data.setLayout('points', points); }); });