1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- "use strict";
- var Util = require('../../util/common');
- var Global = require('../../global');
- var ShapeUtil = require('./util');
- var Shape = require('./shape');
- var SHAPES = ['circle', 'hollowCircle', 'rect'];
- var Point = Shape.registerFactory('point', {
- defaultShapeType: 'circle',
- getDefaultPoints: function getDefaultPoints(pointInfo) {
- return ShapeUtil.splitPoints(pointInfo);
- }
- });
- function getPointsCfg(cfg) {
- var style = {
- lineWidth: 0,
- stroke: cfg.color,
- fill: cfg.color
- };
- if (cfg.size) {
- style.size = cfg.size;
- }
- Util.mix(style, cfg.style);
- return Util.mix({}, Global.shape.point, style);
- }
- function drawShape(cfg, container, shape) {
- if (cfg.size === 0) return;
- var pointCfg = getPointsCfg(cfg);
- var size = pointCfg.r || pointCfg.size;
- var x = cfg.x;
- var y = !Util.isArray(cfg.y) ? [cfg.y] : cfg.y;
- if (shape === 'hollowCircle') {
- pointCfg.lineWidth = 1;
- pointCfg.fill = null;
- }
- for (var i = 0, len = y.length; i < len; i++) {
- if (shape === 'rect') {
- return container.addShape('Rect', {
- className: 'point',
- attrs: Util.mix({
- x: x - size,
- y: y[i] - size,
- width: size * 2,
- height: size * 2
- }, pointCfg)
- });
- }
- return container.addShape('Circle', {
- className: 'point',
- attrs: Util.mix({
- x: x,
- y: y[i],
- r: size
- }, pointCfg)
- });
- }
- }
- Util.each(SHAPES, function (shapeType) {
- Shape.registerShape('point', shapeType, {
- draw: function draw(cfg, container) {
- return drawShape(cfg, container, shapeType);
- }
- });
- });
- module.exports = Point;
|