| 603 | } |
| 604 | |
| 605 | void MultiViewInterface::updateDrag(const sibr::Input & input, const sibr::Vector2f & winSize) |
| 606 | { |
| 607 | if (input.mouseButton().isPressed(sibr::Mouse::Left)) { |
| 608 | drag.isActive = true; |
| 609 | drag.position = input.mousePosition(); |
| 610 | drag.center = viewRectangle.center; |
| 611 | } else if (drag.isActive && input.mouseButton().isReleased(sibr::Mouse::Left)) { |
| 612 | drag.isActive = false; |
| 613 | } |
| 614 | if (drag.isActive && input.mouseButton().isActivated(sibr::Mouse::Left)) { |
| 615 | sibr::Vector2f translation = (input.mousePosition() - drag.position).cast<float>().cwiseQuotient(winSize).cwiseProduct(viewRectangle.br() - viewRectangle.tl()); |
| 616 | translation.y() = -translation.y(); |
| 617 | viewRectangle.center = drag.center - translation; |
| 618 | } |
| 619 | } |
| 620 | |
| 621 | |
| 622 | void MultiViewInterfaceView::onUpdate(Input & input, const sibr::Viewport & viewport) |
nothing calls this directly
no test coverage detected