diff options
| author | bob <bcz@cs.brown.edu> | 2019-03-20 18:00:39 -0400 |
|---|---|---|
| committer | bob <bcz@cs.brown.edu> | 2019-03-20 18:00:39 -0400 |
| commit | a16e6592caafb601b59c3d9f7609e8c1af231eba (patch) | |
| tree | e732e34c5a9fc371bf328fdd35a08ddd196bf6af /src/client/northstar/core/brusher/BrushLinkModel.ts | |
| parent | 208a57b15e6b415659311873431dbe9d5b8d8021 (diff) | |
initial
Diffstat (limited to 'src/client/northstar/core/brusher/BrushLinkModel.ts')
| -rw-r--r-- | src/client/northstar/core/brusher/BrushLinkModel.ts | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/client/northstar/core/brusher/BrushLinkModel.ts b/src/client/northstar/core/brusher/BrushLinkModel.ts new file mode 100644 index 000000000..e3ac43367 --- /dev/null +++ b/src/client/northstar/core/brusher/BrushLinkModel.ts @@ -0,0 +1,40 @@ +import { IBaseBrushable } from '../brusher/IBaseBrushable' +import { IBaseBrusher } from '../brusher/IBaseBrusher' +import { Utils } from '../../utils/Utils' +import { IEquatable } from '../../utils/IEquatable'; + +export class BrushLinkModel<T> implements IEquatable { + + public From: IBaseBrusher<T>; + + public To: IBaseBrushable<T>; + + public Color: number = 0; + + constructor(from: IBaseBrusher<T>, to: IBaseBrushable<T>) { + this.From = from; + this.To = to; + } + + public static overlaps(start: number, end: number, otherstart: number, otherend: number): boolean { + if (start > otherend || otherstart > end) + return false; + return true; + } + public static Connected<T>(from: IBaseBrusher<T>, to: IBaseBrushable<T>): boolean { + var connected = (Math.abs(from.Position.x + from.Size.x - to.Position.x) <= 60 && + this.overlaps(from.Position.y, from.Position.y + from.Size.y, to.Position.y, to.Position.y + to.Size.y) + ) || + (Math.abs(to.Position.x + to.Size.x - from.Position.x) <= 60 && + this.overlaps(to.Position.y, to.Position.y + to.Size.y, from.Position.y, from.Position.y + from.Size.y) + ); + return connected; + } + + public Equals(other: Object): boolean { + if (!Utils.EqualityHelper(this, other)) return false; + if (!this.From.Equals((other as BrushLinkModel<T>).From)) return false; + if (!this.To.Equals((other as BrushLinkModel<T>).To)) return false; + return true; + } +}
\ No newline at end of file |
