123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- import VectorType from "../enum/VectorType.js";
- import Geometry from "./Geometry";
- // import { mathUtil } from '../MathUtil.js'
- import { coordinate } from "../Coordinate";
- import Constant from "../Constant.js";
- //不靠墙
- export default class Tag extends Geometry {
- constructor(center, vectorId) {
- super();
- this.center = center;
- this.points2d = [];
- //this.title = KanKan.Config.i18n('cad.input')
- this.title = "";
- this.des = ""; //面积
- this.unit = "m"; //或者ft
- this.name = "标注";
- this.adding = true;
- this.sideWidth = 30; //像素
- this.sideThickness = 30; //像素
- this.geoType = VectorType.Tag;
- this.setId(vectorId);
- }
- isContain(position) {
- let points = [];
- points.push(this.points2d[0]);
- points.push(this.points2d[1]);
- points.push(this.points2d[2]);
- points.push(this.points2d[3]);
- return mathUtil.isPointInPoly(position, points);
- }
- setPoints2d() {
- this.points2d = [];
- const minX =
- this.center.x -
- ((this.sideWidth / coordinate.res) * Constant.defaultZoom) /
- coordinate.zoom /
- 2;
- const minY =
- this.center.y -
- ((this.sideThickness / coordinate.res) * Constant.defaultZoom) /
- coordinate.zoom /
- 2;
- const maxX =
- this.center.x +
- ((this.sideWidth / coordinate.res) * Constant.defaultZoom) /
- coordinate.zoom /
- 2;
- const maxY =
- this.center.y +
- ((this.sideThickness / coordinate.res) * Constant.defaultZoom) /
- coordinate.zoom /
- 2;
- const point1 = {
- x: minX,
- y: maxY,
- };
- const point2 = {
- x: maxX,
- y: maxY,
- };
- const point3 = {
- x: maxX,
- y: minY,
- };
- const point4 = {
- x: minX,
- y: minY,
- };
- this.points2d.push(point1);
- this.points2d.push(point2);
- this.points2d.push(point3);
- this.points2d.push(point4);
- //-
- let dx = (point1.x - this.center.x) / 2;
- //+
- let dy = (point1.y - this.center.y) / 2;
- this.points2d.push({
- x: point1.x - dx,
- y: point1.y - dy,
- });
- this.points2d.push({
- x: point2.x + dx,
- y: point1.y - dy,
- });
- this.points2d.push({
- x: this.center.x,
- y: point1.y - dy,
- });
- this.points2d.push({
- x: this.center.x,
- y: point3.y + dy,
- });
- }
- setTitle(title) {
- this.title = title;
- }
- setDes(des) {
- this.des = des;
- }
- setUnit(unit) {
- this.unit = unit;
- }
- setAdding(flag) {
- this.adding = flag;
- }
- }
|