getEditPoint()

in src/engine/tools2d/ToolRect.js [77:106]


  getEditPoint(vScr, store) {
    const numRects = this.m_rects.length;
    for (let i = 0; i < numRects; i++) {
      const objRect = this.m_rects[i];
      const vScrMin = ToolDistance.textureToScreen(objRect.vMin.x, objRect.vMin.y, this.m_wScreen, this.m_hScreen, store);
      const vScrMax = ToolDistance.textureToScreen(objRect.vMax.x, objRect.vMax.y, this.m_wScreen, this.m_hScreen, store);

      // Check if the point is inside or on the border of the rectangle
      if (
        (vScrMin.x < vScrMax.x && vScrMin.x <= vScr.x && vScr.x <= vScrMax.x && vScrMin.y <= vScr.y && vScr.y <= vScrMax.y) ||
        (vScrMin.x < vScrMax.x &&
          vScrMin.y > vScrMax.y &&
          vScrMin.x <= vScr.x &&
          vScr.x <= vScrMax.x &&
          vScrMin.y >= vScr.y &&
          vScr.y >= vScrMax.y) ||
        (vScrMin.x > vScrMax.x && vScrMin.x >= vScr.x && vScr.x >= vScrMax.x && vScrMin.y <= vScr.y && vScr.y <= vScrMax.y) ||
        (vScrMin.x > vScrMax.x &&
          vScrMin.y > vScrMax.y &&
          vScrMin.x >= vScr.x &&
          vScr.x >= vScrMax.x &&
          vScrMin.y >= vScr.y &&
          vScr.y >= vScrMax.y)
      ) {
        this.m_objEdit = objRect;
        return objRect.vMin;
      }
    }
    return null;
  }