@antv/g6
Version:
graph visualization frame work
39 lines (35 loc) • 1.25 kB
JavaScript
/**
* @fileOverview freeze size group
* @author huangtonger@aliyun.com
*/
var G = require('@antv/g');
var Util = require('../../util/');
function extend(child, parent, augment) {
var canvasElement = function canvasElement(cfg) {
canvasElement.superclass.constructor.call(this, cfg);
};
var svgElement = function svgElement(cfg) {
svgElement.superclass.constructor.call(this, cfg);
};
Util.extend(canvasElement, G.canvas[parent]);
Util.extend(svgElement, G.svg[parent]);
Util.augment(canvasElement, augment);
Util.augment(svgElement, augment);
G.canvas[child] = canvasElement;
G.svg[child] = svgElement;
}
extend('RootGroup', 'Group', {
drawInner: function drawInner(context) {
var _this = this;
this.deepEach(function (child) {
var freezePoint = child.get('freezePoint');
var freezable = _this.get('freezable');
var scale = _this.getMatrix()[0];
if (freezable !== false && child.isShape && freezePoint && child.get('visible')) {
child.initTransform();
child.transform([['t', -freezePoint.x, -freezePoint.y], ['s', 1 / scale, 1 / scale], ['t', freezePoint.x, freezePoint.y]]);
}
});
this.constructor.superclass.drawInner.call(this, context);
}
});