void  OgreWidget::mousePressEvent(QMouseEvent * e)
{
  if (e->button() == Qt::MiddleButton || e->button() == Qt::LeftButton)
    {
      if (e->button() == Qt::LeftButton)
        {
          if (e->modifiers() == Qt::ControlModifier)
            mouseSelect(e->pos(), false);
          else
            mouseSelect(e->pos(), false);
          m_mouseButtonsPressed |= Qt::LeftButton;
        }
      if (e->button() == Qt::MiddleButton)
        m_mouseButtonsPressed |= Qt::MiddleButton;
      m_oldPos = e->pos();
      e->accept();
    }
  else
    {
      e->ignore();
    }
}
Ejemplo n.º 2
0
int Scene::mouseClicked( shared_ptr<ViewInterface> view, int button, int state, int x, int y ) {
	if (state) {
		drag_bone = false;
		clickx = 0;
		clicky = 0;
		return false;
	}

	if ((glutGetModifiers() & GLUT_ACTIVE_CTRL) == GLUT_ACTIVE_CTRL) {
		if (button == 0) {
			int bone = mouseSelect(x, y);
			selectedBone = (selectedBone == bone)? -1: bone;
		}
		return true;
	} else if (button == 0) {
		drag_bone = true;
		clickx = x;
		clicky = y;
	}
	else if (button == 2) {
		player.path->append( view->unProject(x, y) );
	}
	return true;
}