提交 6002a2ce 编写于 作者: P pissang

Optimize lines updateTransform

上级 f7145b35
......@@ -107,6 +107,10 @@ function LargeLineDraw() {
var largeLineProto = LargeLineDraw.prototype;
largeLineProto.isPersistent = function () {
return !this._incremental;
};
/**
* Update symbols draw by new data
* @param {module:echarts/data/List} data
......@@ -192,6 +196,7 @@ largeLineProto._setCommon = function (lineEl, data, isIncremental) {
lineEl.useStyle(
hostModel.getModel('lineStyle').getLineStyle()
);
lineEl.style.strokeNoScale = true;
var visualColor = data.getVisual('color');
if (visualColor) {
......
......@@ -18,6 +18,10 @@ function LineDraw(ctor) {
var lineDrawProto = LineDraw.prototype;
lineDrawProto.isPersistent = function () {
return true;
};
/**
* @param {module:echarts/data/List} lineData
*/
......@@ -100,7 +104,6 @@ lineDrawProto.incrementalUpdate = function (taskParams, lineData) {
var itemLayout = lineData.getItemLayout(idx);
if (lineNeedsDraw(itemLayout)) {
// ??? IncrementalDisplayable do not support Group.
var el = new this._ctor(lineData, idx, this._seriesScope);
el.traverse(updateIncrementalAndHover);
this.group.add(el);
......
......@@ -6,6 +6,7 @@ import Line from '../helper/Line';
import Polyline from '../helper/Polyline';
import EffectPolyline from '../helper/EffectPolyline';
import LargeLineDraw from '../helper/LargeLineDraw';
import * as matrix from 'zrender/src/core/matrix';
export default echarts.extendChartView({
......@@ -16,6 +17,8 @@ export default echarts.extendChartView({
render: function (seriesModel, ecModel, api) {
var data = seriesModel.getData();
this._updateGroupTransform(seriesModel);
var lineDraw = this._updateLineDraw(data, seriesModel);
var zlevel = seriesModel.get('zlevel');
......@@ -62,6 +65,8 @@ export default echarts.extendChartView({
incrementalPrepareRender: function (seriesModel, ecModel, api) {
var data = seriesModel.getData();
this._updateGroupTransform(seriesModel);
var lineDraw = this._updateLineDraw(data, seriesModel);
lineDraw.incrementalPrepareUpdate(data);
......@@ -73,6 +78,32 @@ export default echarts.extendChartView({
this._lineDraw.incrementalUpdate(taskParams, seriesModel.getData());
},
updateTransform: function (seriesModel, ecModel, api) {
var coordSys = seriesModel.coordinateSystem;
var update = true;
// Must mark group dirty and make sure the incremental layer will be cleared
// PENDING
this.group.dirty();
if (coordSys.getRoamTransform) {
update = false;
this._updateGroupTransform(seriesModel);
}
if (update || !this._finished || !this._lineDraw.isPersistent()) {
return {
update: true
};
}
},
_updateGroupTransform: function (seriesModel) {
var coordSys = seriesModel.coordinateSystem;
if (coordSys && coordSys.getRoamTransform) {
this.group.transform = matrix.clone(coordSys.getRoamTransform());
this.group.decomposeTransform();
}
},
_updateLineDraw: function (data, seriesModel) {
var lineDraw = this._lineDraw;
var hasEffect = this._showEffect(seriesModel);
......
......@@ -34,7 +34,9 @@ export default {
points[offset++] = len;
}
for (var k = 0; k < len; k++) {
pt = coordSys.dataToPoint(lineCoords[k], null, pt);
// Second parameter is used in coordinate system geo, view.
// FIXME, if other coordinate system has second parameter.
pt = coordSys.dataToPoint(lineCoords[k], true, pt);
points[offset++] = pt[0];
points[offset++] = pt[1];
}
......
......@@ -67,7 +67,7 @@ echarts.extendChartView({
if (coordSys && coordSys.removeRoamTransformInPoint) {
var data = seriesModel.getData();
var pt = [];
if (seriesModel.get('large')) {
if (seriesModel.pipelineContext.large) {
var points = data.getLayout('symbolPoints');
if (points) {
for (var i = 0; i < points.length; i += 2) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册