mitk的渲染窗口类QmitkRenderWindow分析

来源:互联网 发布:手动 备份 hdfs 数据 编辑:程序博客网 时间:2024/06/05 15:37

首先他继承自public QVTKWidget, public mitk::RenderWindowBase这两个类

切换鼠标模式的代码在这里

void QmitkStdMultiWidget::SetWidgetPlaneMode(int userMode)
{
  MITK_DEBUG << "Changing crosshair mode to " << userMode;

  emit WidgetNotifyNewCrossHairMode(userMode);
  // Convert user interface mode to actual mode
  {
    switch (userMode)
    {
      case 0:
        m_MouseModeSwitcher->SetInteractionScheme(mitk::MouseModeSwitcher::InteractionScheme::MITK);
        break;
      case 1:
        m_MouseModeSwitcher->SetInteractionScheme(mitk::MouseModeSwitcher::InteractionScheme::ROTATION);
        break;

      case 2:
        m_MouseModeSwitcher->SetInteractionScheme(mitk::MouseModeSwitcher::InteractionScheme::ROTATIONLINKED);
        break;

      case 3:
        m_MouseModeSwitcher->SetInteractionScheme(mitk::MouseModeSwitcher::InteractionScheme::SWIVEL);
        break;
    }
  }
}

void mitk::MouseModeSwitcher::SetInteractionScheme(InteractionScheme scheme)
{
  switch (scheme)
  {
    case MITK:
    {
      m_CurrentObserver->SetEventConfig("DisplayConfigMITK.xml");
    }
    break;
    case PACS:
    {
      m_CurrentObserver->SetEventConfig("DisplayConfigPACS.xml");
    }
    break;

    case ROTATION:
    {
      m_CurrentObserver->SetEventConfig("DisplayConfigMITKRotationUnCoupled.xml");
    }
    break;

    case ROTATIONLINKED:
    {
      m_CurrentObserver->SetEventConfig("DisplayConfigMITKRotation.xml");
    }
    break;

    case SWIVEL:
    {
      m_CurrentObserver->SetEventConfig("DisplayConfigMITKSwivel.xml");
    }
    break;
  }
  m_ActiveInteractionScheme = scheme;
  this->InvokeEvent(MouseModeChangedEvent());
}

PlaneGeometryDataMapper2D

在进行mpor交互时负责线的绘制

原创粉丝点击