| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195 | 
/** Licensed to the Apache Software Foundation (ASF) under one* or more contributor license agreements.  See the NOTICE file* distributed with this work for additional information* regarding copyright ownership.  The ASF licenses this file* to you under the Apache License, Version 2.0 (the* "License"); you may not use this file except in compliance* with the License.  You may obtain a copy of the License at**   http://www.apache.org/licenses/LICENSE-2.0** Unless required by applicable law or agreed to in writing,* software distributed under the License is distributed on an* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY* KIND, either express or implied.  See the License for the* specific language governing permissions and limitations* under the License.*//** * AUTO-GENERATED FILE. DO NOT MODIFY. *//** Licensed to the Apache Software Foundation (ASF) under one* or more contributor license agreements.  See the NOTICE file* distributed with this work for additional information* regarding copyright ownership.  The ASF licenses this file* to you under the Apache License, Version 2.0 (the* "License"); you may not use this file except in compliance* with the License.  You may obtain a copy of the License at**   http://www.apache.org/licenses/LICENSE-2.0** Unless required by applicable law or agreed to in writing,* software distributed under the License is distributed on an* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY* KIND, either express or implied.  See the License for the* specific language governing permissions and limitations* under the License.*/import { __extends } from "tslib";import BoundingRect from 'zrender/lib/core/BoundingRect.js';import Cartesian from './Cartesian.js';import { invert } from 'zrender/lib/core/matrix.js';import { applyTransform } from 'zrender/lib/core/vector.js';export var cartesian2DDimensions = ['x', 'y'];function canCalculateAffineTransform(scale) {  return scale.type === 'interval' || scale.type === 'time';}var Cartesian2D =/** @class */function (_super) {  __extends(Cartesian2D, _super);  function Cartesian2D() {    var _this = _super !== null && _super.apply(this, arguments) || this;    _this.type = 'cartesian2d';    _this.dimensions = cartesian2DDimensions;    return _this;  }  /**   * Calculate an affine transform matrix if two axes are time or value.   * It's mainly for accelartion on the large time series data.   */  Cartesian2D.prototype.calcAffineTransform = function () {    this._transform = this._invTransform = null;    var xAxisScale = this.getAxis('x').scale;    var yAxisScale = this.getAxis('y').scale;    if (!canCalculateAffineTransform(xAxisScale) || !canCalculateAffineTransform(yAxisScale)) {      return;    }    var xScaleExtent = xAxisScale.getExtent();    var yScaleExtent = yAxisScale.getExtent();    var start = this.dataToPoint([xScaleExtent[0], yScaleExtent[0]]);    var end = this.dataToPoint([xScaleExtent[1], yScaleExtent[1]]);    var xScaleSpan = xScaleExtent[1] - xScaleExtent[0];    var yScaleSpan = yScaleExtent[1] - yScaleExtent[0];    if (!xScaleSpan || !yScaleSpan) {      return;    } // Accelerate data to point calculation on the special large time series data.    var scaleX = (end[0] - start[0]) / xScaleSpan;    var scaleY = (end[1] - start[1]) / yScaleSpan;    var translateX = start[0] - xScaleExtent[0] * scaleX;    var translateY = start[1] - yScaleExtent[0] * scaleY;    var m = this._transform = [scaleX, 0, 0, scaleY, translateX, translateY];    this._invTransform = invert([], m);  };  /**   * Base axis will be used on stacking.   */  Cartesian2D.prototype.getBaseAxis = function () {    return this.getAxesByScale('ordinal')[0] || this.getAxesByScale('time')[0] || this.getAxis('x');  };  Cartesian2D.prototype.containPoint = function (point) {    var axisX = this.getAxis('x');    var axisY = this.getAxis('y');    return axisX.contain(axisX.toLocalCoord(point[0])) && axisY.contain(axisY.toLocalCoord(point[1]));  };  Cartesian2D.prototype.containData = function (data) {    return this.getAxis('x').containData(data[0]) && this.getAxis('y').containData(data[1]);  };  Cartesian2D.prototype.containZone = function (data1, data2) {    var zoneDiag1 = this.dataToPoint(data1);    var zoneDiag2 = this.dataToPoint(data2);    var area = this.getArea();    var zone = new BoundingRect(zoneDiag1[0], zoneDiag1[1], zoneDiag2[0] - zoneDiag1[0], zoneDiag2[1] - zoneDiag1[1]);    return area.intersect(zone);  };  Cartesian2D.prototype.dataToPoint = function (data, clamp, out) {    out = out || [];    var xVal = data[0];    var yVal = data[1]; // Fast path    if (this._transform // It's supported that if data is like `[Inifity, 123]`, where only Y pixel calculated.    && xVal != null && isFinite(xVal) && yVal != null && isFinite(yVal)) {      return applyTransform(out, data, this._transform);    }    var xAxis = this.getAxis('x');    var yAxis = this.getAxis('y');    out[0] = xAxis.toGlobalCoord(xAxis.dataToCoord(xVal, clamp));    out[1] = yAxis.toGlobalCoord(yAxis.dataToCoord(yVal, clamp));    return out;  };  Cartesian2D.prototype.clampData = function (data, out) {    var xScale = this.getAxis('x').scale;    var yScale = this.getAxis('y').scale;    var xAxisExtent = xScale.getExtent();    var yAxisExtent = yScale.getExtent();    var x = xScale.parse(data[0]);    var y = yScale.parse(data[1]);    out = out || [];    out[0] = Math.min(Math.max(Math.min(xAxisExtent[0], xAxisExtent[1]), x), Math.max(xAxisExtent[0], xAxisExtent[1]));    out[1] = Math.min(Math.max(Math.min(yAxisExtent[0], yAxisExtent[1]), y), Math.max(yAxisExtent[0], yAxisExtent[1]));    return out;  };  Cartesian2D.prototype.pointToData = function (point, clamp) {    var out = [];    if (this._invTransform) {      return applyTransform(out, point, this._invTransform);    }    var xAxis = this.getAxis('x');    var yAxis = this.getAxis('y');    out[0] = xAxis.coordToData(xAxis.toLocalCoord(point[0]), clamp);    out[1] = yAxis.coordToData(yAxis.toLocalCoord(point[1]), clamp);    return out;  };  Cartesian2D.prototype.getOtherAxis = function (axis) {    return this.getAxis(axis.dim === 'x' ? 'y' : 'x');  };  /**   * Get rect area of cartesian.   * Area will have a contain function to determine if a point is in the coordinate system.   */  Cartesian2D.prototype.getArea = function () {    var xExtent = this.getAxis('x').getGlobalExtent();    var yExtent = this.getAxis('y').getGlobalExtent();    var x = Math.min(xExtent[0], xExtent[1]);    var y = Math.min(yExtent[0], yExtent[1]);    var width = Math.max(xExtent[0], xExtent[1]) - x;    var height = Math.max(yExtent[0], yExtent[1]) - y;    return new BoundingRect(x, y, width, height);  };  return Cartesian2D;}(Cartesian);;export default Cartesian2D;
 |