intersection-model.js 763 B

12345678910111213141516171819202122232425
  1. import { PointModel } from "../../point-component/models/point-model";
  2. export class IntersectionModel extends PointModel {
  3. constructor(posX, posY, label, r, s) {
  4. super(posX, posY, label);
  5. this.r = r;
  6. this.s = s;
  7. }
  8. update(aggregator, event) {
  9. const intersection = this.r.getIntersection(this.s);
  10. this.posX = parseFloat(intersection.posX.toFixed(2));
  11. this.posY = parseFloat(intersection.posY.toFixed(2));
  12. if (!this.r.insideSegment(this.posX, this.posY)) {
  13. this.posX = Number.MAX_SAFE_INTEGER;
  14. this.posY = Number.MAX_SAFE_INTEGER;
  15. return;
  16. }
  17. if (!this.s.insideSegment(this.posX, this.posY)) {
  18. this.posX = Number.MAX_SAFE_INTEGER;
  19. this.posY = Number.MAX_SAFE_INTEGER;
  20. return;
  21. }
  22. }
  23. }