import Plot from './Plot' import PlotTypes from '../PlotTypes' import Polygon from 'ol/geom/Polygon' import {distance} from '../utils/plot_util' import Constants from '../Constants' import mix from '../../util/mixin' export default class Circle extends mix(Plot,Polygon){ constructor(points) { super(points); this.type = PlotTypes.CIRCLE; this.fixPointCount = 2; this.setPoints(points); } generate() { var count = this.getPointCount(); if (count < 2) { return; } var center = this.points[0]; var radius = distance(center, this.points[1]); this.setCoordinates([this.generatePoints(center, radius)]); } generatePoints(center, radius) { var x, y, angle, points = []; for (var i = 0; i <= Constants.FITTING_COUNT; i++) { angle = Math.PI * 2 * i / Constants.FITTING_COUNT; x = center[0] + radius * Math.cos(angle); y = center[1] + radius * Math.sin(angle); points.push([x, y]); } return points; }; }