onMouseDown()

in src/engine/tools23d/graphics23d.js [144:222]


  onMouseDown(xScr, yScr) {
    if (this.m_volumeData === null || this.m_volumeHeader === null) {
      return;
    }
    if (xScr > this.m_wProjScreen || yScr > this.m_hProjScreen) {
      // out of image
      return;
    }
    if (this.m_levelSetMode) {
      return;
    }

    const TWICE = 2.0;
    const xt = xScr * TWICE - 1.0;
    const yt = yScr * TWICE - 1.0;
    //const yt = (1.0 - yScr) * TWICE - 1.0;

    switch (this.m_toolType) {
      case tools2d.DISTANCE:
        this.m_distanceTool.onMouseDown(xt, yt, this.m_zoom, this.m_posX * this.m_wProjScreen, this.m_posY * this.m_hProjScreen);
        break;
      case tools2d.ANGLE:
        this.m_angleTool.onMouseDown(xt, yt, this.m_zoom, this.m_posX * this.m_wProjScreen, this.m_posY * this.m_hProjScreen);
        break;
      case tools2d.TEXT:
        this.m_textTool.onMouseDown(xt, yt, this.m_zoom, this.m_posX * this.m_wProjScreen, this.m_posY * this.m_hProjScreen);
        break;
      case tools2d.AREA:
        this.m_areaTool.onMouseDown(xt, yt, this.m_zoom, this.m_posX * this.m_wProjScreen, this.m_posY * this.m_hProjScreen);
        break;
      case tools2d.RECT:
        this.m_rectTool.onMouseDown(xt, yt, this.m_zoom, this.m_posX * this.m_wProjScreen, this.m_posY * this.m_hProjScreen);
        break;
      case tools2d.GRAD:
        break;
      case tools2d.COBR:
        /*this.m_contrastBrightTool.onMouseDown(xt, yt);
          this.m_materialsTex2d.m_uniforms.contrast.value = this.m_contrastBrightTool.m_contrast;
          this.m_materialsTex2d.m_uniforms.brightness.value = this.m_contrastBrightTool.m_brightness;
          this.m_materialsTex2d.m_uniforms.COBRflag.value = this.m_contrastBrightTool.m_COBRflag;*/
        break;
      case tools2d.BIFI:
        /*this.m_filterTool.onMouseDown(xt, yt);
          this.m_materialsTex2d.m_uniforms.sigma.value = this.m_filterTool.m_sigma;
          this.m_materialsTex2d.m_uniforms.sigmaB.value = this.m_filterTool.m_sigmaB;
          this.m_materialsTex2d.m_uniforms.BIFIflag.value = this.m_filterTool.m_BIFIflag;*/
        break;
      case tools2d.ZOOM:
        this.m_move = true;
        this.m_moveTool.onMouseDown(xt, yt);
        break;
      case tools2d.DELETE:
        this.m_deleteTool.onMouseDown(
          xt,
          yt,
          this.m_distanceTool.m_distances,
          this.m_angleTool.m_angles,
          this.m_rectTool.m_areas,
          this.m_areaTool.m_distances,
          this.m_textTool.m_textArr,
          this.m_distanceTool.m_vertexes,
          this.m_angleTool.m_vertexes,
          this.m_rectTool.m_vertexes,
          this.m_areaTool.m_vertexes2,
          this.m_areaTool.m_last_lengths,
          this.m_areaTool.m_vertexes,
          this.m_areaTool,
          this.m_textTool.m_vertexes
        );
        console.log(`${this.m_areaTool.last_length}`);
        break;
      case tools2d.EDIT:
        this.m_editTool.onMouseDown();
        break;
      default:
        console.log('Unexpected 2d tool');
        break;
    }
  }