12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- import { any } from "vue-types";
- import { Point } from "./point";
- export class ObservablePoint {
- cb: any;
- scope: any;
- _x = 0;
- _y = 0;
- constructor(cb:any, scope:any, x=0 , y=0) {
- this._x = x;
- this._y = y;
- this.cb = cb;
- this.scope = scope;
- }
- clone(cb = this.cb, scope = this.scope) {
- return new ObservablePoint(cb, scope, this._x, this._y);
- }
- set(x = 0, y = x) {
- if (this._x !== x || this._y !== y) {
- this._x = x;
- this._y = y;
- this.cb.call(this.scope);
- }
- }
- copyFrom(p: Point) {
- if (this._x !== p.x || this._y !== p.y) {
- this._x = p.x;
- this._y = p.y;
- this.cb.call(this.scope);
- }
- return this;
- }
- copyTo(p: Point) {
- p.set(this._x, this._y);
- return p;
- }
- equals(p: Point) {
- return p.x === this._x && p.y === this._y;
- }
- get x() {
- return this._x;
- }
- set x(
- value // eslint-disable-line require-jsdoc
- ) {
- if (this._x !== value) {
- this._x = value;
- this.cb.call(this.scope);
- }
- }
- get y() {
- return this._y;
- }
- set y(value) {
- if (this._y !== value) {
- this._y = value;
- this.cb.call(this.scope);
- }
- }
- }
|