MCPcopy Create free account
hub / github.com/colmap/colmap / ChangeFocusDistance

Method ChangeFocusDistance

src/colmap/ui/model_viewer_widget.cc:595–616  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

593}
594
595void ModelViewerWidget::ChangeFocusDistance(const float delta) {
596 if (delta == 0.0f) {
597 return;
598 }
599 const float prev_focus_distance = focus_distance_;
600 float diff = delta * ZoomScale() * kFocusSpeed;
601 focus_distance_ -= diff;
602 if (focus_distance_ < kMinFocusDistance) {
603 focus_distance_ = kMinFocusDistance;
604 diff = prev_focus_distance - focus_distance_;
605 } else if (focus_distance_ > kMaxFocusDistance) {
606 focus_distance_ = kMaxFocusDistance;
607 diff = prev_focus_distance - focus_distance_;
608 }
609 const Eigen::Matrix4f vm_mat = QMatrixToEigen(model_view_matrix_).inverse();
610 const Eigen::Vector3f tvec(0, 0, diff);
611 const Eigen::Vector3f tvec_rot = vm_mat.block<3, 3>(0, 0) * tvec;
612 model_view_matrix_.translate(tvec_rot(0), tvec_rot(1), tvec_rot(2));
613 ComposeProjectionMatrix();
614 UploadCoordinateGridData();
615 update();
616}
617
618void ModelViewerWidget::ChangeNearPlane(const float delta) {
619 if (delta == 0.0f) {

Callers 1

AddMethod · 0.80

Calls 2

QMatrixToEigenFunction · 0.85
ComposeProjectionMatrixFunction · 0.85

Tested by

no test coverage detected