提交 3cbd28d0 编写于 作者: S sushuang

update transform

上级 23a1ab78
......@@ -14,7 +14,7 @@ import {updateCenterAndZoom} from './roamHelper';
echarts.registerAction({
type: 'geoRoam',
event: 'geoRoam',
update: 'updateLayout'
update: 'updateTransform'
}, function (payload, ecModel) {
var componentType = payload.componentType || 'series';
......
......@@ -14,6 +14,8 @@ export default echarts.extendChartView({
init: function () {},
render: function (seriesModel, ecModel, api) {
this.remove(ecModel, api);
var data = seriesModel.getData();
var lineDraw = this._updateLineDraw(data, seriesModel);
......@@ -65,6 +67,8 @@ export default echarts.extendChartView({
},
incrementalPrepareRender: function (seriesModel, ecModel, api) {
this.remove(ecModel, api);
var data = seriesModel.getData();
var lineDraw = this._updateLineDraw(data, seriesModel);
lineDraw.incrementalPrepareRender(data);
......
......@@ -44,8 +44,8 @@ export default {
var pts = [];
if (isPolyline) {
for (var i = 0; i < len; i++) {
pts.push(coordSys.dataToPoint(lineCoords[i]));
for (var j = 0; j < len; j++) {
pts.push(coordSys.dataToPoint(lineCoords[j]));
}
}
else {
......
......@@ -222,7 +222,7 @@ export default TimelineView.extend({
var viewRect = layoutInfo.viewRect;
if (layoutInfo.orient === 'vertical') {
// transfrom to horizontal, inverse rotate by left-top point.
// transform to horizontal, inverse rotate by left-top point.
var m = matrix.create();
var rotateOriginX = viewRect.x;
var rotateOriginY = viewRect.y + viewRect.height;
......
......@@ -214,7 +214,7 @@ gridProto.resize = function (gridModel, api, ignoreContainLabel) {
var extent = isHorizontal ? [0, gridRect.width] : [0, gridRect.height];
var idx = axis.inverse ? 1 : 0;
axis.setExtent(extent[idx], extent[1 - idx]);
updateAxisTransfrom(axis, isHorizontal ? gridRect.x : gridRect.y);
updateAxisTransform(axis, isHorizontal ? gridRect.x : gridRect.y);
});
}
};
......@@ -535,7 +535,7 @@ gridProto.getTooltipAxes = function (dim) {
/**
* @inner
*/
function updateAxisTransfrom(axis, coordBase) {
function updateAxisTransform(axis, coordBase) {
var axisExtent = axis.getExtent();
var axisExtentSum = axisExtent[0] + axisExtent[1];
......
......@@ -281,7 +281,7 @@ echartsProto._onframe = function () {
// console.log('------------- ec frame visual -------------', remainTime);
scheduler.performStageTasks(visualFuncs, ecModel);
performRender(this, this._model, this._api, 'none');
render(this, this._model, this._api, 'none');
remainTime -= (+new Date() - startTime);
}
......@@ -781,7 +781,7 @@ var updateMethods = {
clearColorPalette(ecModel);
scheduler.performStageTasks(visualFuncs, ecModel, payload);
performRender(this, ecModel, api, payload, true);
render(this, ecModel, api, payload, true);
// Set background
var backgroundColor = ecModel.get('backgroundColor') || 'transparent';
......@@ -829,6 +829,46 @@ var updateMethods = {
// console.profile && console.profileEnd('update');
},
/**
* @param {Object} payload
* @private
*/
updateTransform: function (payload) {
var ecModel = this._model;
var ecIns = this;
var api = this._api;
// update before setOption
if (!ecModel) {
return;
}
ChartView.markUpdateMethod(payload, 'updateTransform');
var seriesModels = [];
ecModel.eachSeries(function (seriesModel) {
var chartView = ecIns._chartsMap[seriesModel.__viewId];
if (chartView.updateTransform) {
var result = chartView.updateTransform
&& chartView.updateTransform(seriesModel, ecModel, api, payload);
result && result.update && seriesModels.push(seriesModel);
}
else {
seriesModels.push(seriesModel);
}
});
// Keep pipe to the exist pipeline because it depends on the render task of the full pipeline.
// this._scheduler.performStageTasks(visualFuncs, ecModel, payload, 'layout', true);
this._scheduler.performStageTasks(
visualFuncs, ecModel, payload, {setDirty: true, seriesModels: seriesModels}
);
render(this, ecModel, this._api, payload, true, seriesModels);
performPostUpdateFuncs(ecModel, this._api);
},
/**
* @param {Object} payload
* @private
......@@ -848,7 +888,7 @@ var updateMethods = {
// Keep pipe to the exist pipeline because it depends on the render task of the full pipeline.
this._scheduler.performStageTasks(visualFuncs, ecModel, payload, {setDirty: true});
performRender(this, this._model, this._api, payload, true);
render(this, this._model, this._api, payload, true);
performPostUpdateFuncs(ecModel, this._api);
},
......@@ -872,7 +912,7 @@ var updateMethods = {
// Keep pipe to the exist pipeline because it depends on the render task of the full pipeline.
this._scheduler.performStageTasks(visualFuncs, ecModel, payload, {visualType: 'visual', setDirty: true});
performRender(this, this._model, this._api, payload, true);
render(this, this._model, this._api, payload, true);
performPostUpdateFuncs(ecModel, this._api);
},
......@@ -895,7 +935,7 @@ var updateMethods = {
// this._scheduler.performStageTasks(visualFuncs, ecModel, payload, 'layout', true);
this._scheduler.performStageTasks(visualFuncs, ecModel, payload, {setDirty: true});
performRender(this, this._model, this._api, payload, true);
render(this, this._model, this._api, payload, true);
performPostUpdateFuncs(ecModel, this._api);
}
......@@ -1326,7 +1366,7 @@ function clearColorPalette(ecModel) {
* Render each chart and component
* @private
*/
function performRender(ecIns, ecModel, api, payload, isReset) {
function render(ecIns, ecModel, api, payload, isReset, seriesModels) {
if (isReset) {
// Render all components
each(ecIns._componentsViews, function (componentView) {
......@@ -1344,7 +1384,8 @@ function performRender(ecIns, ecModel, api, payload, isReset) {
// Render all charts
var scheduler = ecIns._scheduler;
var unfinished;
ecModel.eachSeries(function (seriesModel) {
seriesModels ? each(seriesModels, doEach) : ecModel.eachSeries(doEach);
function doEach(seriesModel) {
var chartView = ecIns._chartsMap[seriesModel.__viewId];
chartView.__alive = true;
......@@ -1360,7 +1401,7 @@ function performRender(ecIns, ecModel, api, payload, isReset) {
updateZ(seriesModel, chartView);
// ??? updateProgressiveAndBlend(seriesModel, chartView);
});
}
scheduler.unfinished |= unfinished;
// If use hover layer
......
......@@ -35,35 +35,3 @@ export default function (seriesType) {
}
};
}
// function createTask(seriesType, seriesModel) {
// var coordSys = seriesModel.coordinateSystem;
// if (!coordSys) {
// return;
// }
// var data = seriesModel.getData();
// var dims = [];
// for (var i = 0; i < coordSys.dimensions.length; i++) {
// dims.push(seriesModel.coordDimToDataDim(coordSys.dimensions[i])[0]);
// }
// var task;
// // ??? no task support ?
// if (dims.length === 1) {
// task = data.createEachTask(dims[0], function (x, idx) {
// // Also {Array.<number>}, not undefined to avoid if...else... statement
// data.setItemLayout(idx, isNaN(x) ? [NaN, NaN] : coordSys.dataToPoint(x));
// });
// }
// else if (dims.length === 2) {
// task = data.createEachTask(dims, function (x, y, idx) {
// // Also {Array.<number>}, not undefined to avoid if...else... statement
// data.setItemLayout(
// idx, (isNaN(x) || isNaN(y)) ? [NaN, NaN] : coordSys.dataToPoint([x, y])
// );
// });
// }
// return task;
// }
......@@ -131,13 +131,18 @@ proto.performStageTasks = function (stageHandlers, ecModel, payload, opt) {
}
}
else if (seriesTaskMap) {
stageHandler.seriesType
? ecModel.eachRawSeriesByType(stageHandler.seriesType, eachSeries)
opt.seriesModels
? each(opt.seriesModels, eachSeries)
: ecModel.eachRawSeries(eachSeries);
}
function eachSeries(seriesModel) {
var task = seriesTaskMap.get(seriesModel.uid);
if (!task) {
return;
}
if (opt.setDirty) {
task.dirty();
unfinished = true;
......
......@@ -339,7 +339,7 @@ export function positionElement(el, positionInfo, containerRect, margin, opt) {
);
// Because 'tranlate' is the last step in transform
// (see zrender/core/Transformable#getLocalTransfrom),
// (see zrender/core/Transformable#getLocalTransform),
// we can just only modify el.position to get final result.
var elPos = el.position;
var dx = h ? positionInfo.x - rect.x : 0;
......
......@@ -32,14 +32,14 @@ Chart.prototype = {
type: 'chart',
/**
* Init the chart
* Init the chart.
* @param {module:echarts/model/Global} ecModel
* @param {module:echarts/ExtensionAPI} api
*/
init: function (ecModel, api) {},
/**
* Render the chart
* Render the chart.
* @param {module:echarts/model/Series} seriesModel
* @param {module:echarts/model/Global} ecModel
* @param {module:echarts/ExtensionAPI} api
......@@ -48,7 +48,7 @@ Chart.prototype = {
render: function (seriesModel, ecModel, api, payload) {},
/**
* Highlight series or specified data item
* Highlight series or specified data item.
* @param {module:echarts/model/Series} seriesModel
* @param {module:echarts/model/Global} ecModel
* @param {module:echarts/ExtensionAPI} api
......@@ -59,7 +59,7 @@ Chart.prototype = {
},
/**
* Downplay series or specified data item
* Downplay series or specified data item.
* @param {module:echarts/model/Series} seriesModel
* @param {module:echarts/model/Global} ecModel
* @param {module:echarts/ExtensionAPI} api
......@@ -70,7 +70,7 @@ Chart.prototype = {
},
/**
* Remove self
* Remove self.
* @param {module:echarts/model/Global} ecModel
* @param {module:echarts/ExtensionAPI} api
*/
......@@ -79,19 +79,39 @@ Chart.prototype = {
},
/**
* Dispose self
* Dispose self.
* @param {module:echarts/model/Global} ecModel
* @param {module:echarts/ExtensionAPI} api
*/
dispose: function () {},
/**
* Rendering preparation in progressive mode.
* @param {module:echarts/model/Series} seriesModel
* @param {module:echarts/model/Global} ecModel
* @param {module:echarts/ExtensionAPI} api
* @param {Object} payload
*/
incrementalPrepareRender: null,
/**
* Render in progressive mode.
* @param {module:echarts/model/Series} seriesModel
* @param {module:echarts/model/Global} ecModel
* @param {module:echarts/ExtensionAPI} api
* @param {Object} payload
*/
incrementalRender: null,
incrementalPrepareLayout: null,
incrementalLayout: null,
/**
* Update transform directly.
* @param {module:echarts/model/Series} seriesModel
* @param {module:echarts/model/Global} ecModel
* @param {module:echarts/ExtensionAPI} api
* @param {Object} payload
* @return {Object} {update: true}
*/
updateTransform: null
/**
* The view contains the given point.
......@@ -166,10 +186,10 @@ function renderTaskReset(context) {
var incremental = context.incremental;
var view = context.view;
if (inner(view).incremental ^ incremental) {
view.remove(ecModel, api);
}
inner(view).incremental = incremental;
// if (inner(view).incremental ^ incremental) {
// view.remove(ecModel, api);
// }
// inner(view).incremental = incremental;
var updateMethod = payload && inner(payload).updateMethod;
var methodName = incremental
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册