123456789101112131415161718192021222324252627282930313233343536373839404142 |
- import Point from "../Geometry/Point.js";
- import Circle from "../Geometry/Circle.js";
- import { dataService } from "./DataService.js";
- import { uiService } from "./UIService.js";
- import VectorCategory from "../enum/VectorCategory.js";
- import { mathUtil } from "../Util/MathUtil.js";
- import Constant from "../Constant.js";
- export default class CircleService {
- constructor() {}
- create(center, radius, vectorId) {
- if (!center || !radius || radius < Constant.minAdsorbPix / 2) {
- return null;
- }
- let circle = new Circle(center, radius, vectorId);
- dataService.addCircle(circle);
- return circle;
- }
- copy(vectorId) {
- let circle = dataService.getCircle(vectorId);
- let center = uiService.getNewPositionForPop(circle.center);
- let radius = circle.radius;
- let newCircle = this.create(center, radius);
- newCircle.setColor(circle.color);
- return newCircle.vectorId;
- }
- updateRadiusXYForPoint(vectorId, pointIndex) {
- let circle = dataService.getCircle(vectorId);
- const radiusX = Math.abs(circle.points[pointIndex].x - circle.center.x);
- const radiusY = Math.abs(circle.points[pointIndex].y - circle.center.y);
- return {
- radiusX: radiusX,
- radiusY: radiusY,
- };
- }
- }
- const circleService = new CircleService();
- export { circleService };
|