Method Camera::apply_projection() called at every rendered frame
This commit is contained in:
parent
f0b228c4d2
commit
a99466ef1d
2 changed files with 8 additions and 6 deletions
|
@ -48,7 +48,7 @@ std::string Camera::get_type_as_string() const
|
||||||
// case Perspective:
|
// case Perspective:
|
||||||
// return "perspective";
|
// return "perspective";
|
||||||
case Ortho:
|
case Ortho:
|
||||||
return "ortho";
|
return "orthographic";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -160,12 +160,15 @@ void Camera::debug_render() const
|
||||||
imgui.set_next_window_bg_alpha(0.5f);
|
imgui.set_next_window_bg_alpha(0.5f);
|
||||||
imgui.begin(std::string("Camera statistics"), ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse);
|
imgui.begin(std::string("Camera statistics"), ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse);
|
||||||
|
|
||||||
|
std::string type = get_type_as_string();
|
||||||
Vec3f position = get_position().cast<float>();
|
Vec3f position = get_position().cast<float>();
|
||||||
Vec3f target = m_target.cast<float>();
|
Vec3f target = m_target.cast<float>();
|
||||||
Vec3f forward = get_dir_forward().cast<float>();
|
Vec3f forward = get_dir_forward().cast<float>();
|
||||||
Vec3f right = get_dir_right().cast<float>();
|
Vec3f right = get_dir_right().cast<float>();
|
||||||
Vec3f up = get_dir_up().cast<float>();
|
Vec3f up = get_dir_up().cast<float>();
|
||||||
|
|
||||||
|
ImGui::InputText("Type", const_cast<char*>(type.data()), type.length(), ImGuiInputTextFlags_ReadOnly);
|
||||||
|
ImGui::Separator();
|
||||||
ImGui::InputFloat3("Position", position.data(), "%.6f", ImGuiInputTextFlags_ReadOnly);
|
ImGui::InputFloat3("Position", position.data(), "%.6f", ImGuiInputTextFlags_ReadOnly);
|
||||||
ImGui::InputFloat3("Target", target.data(), "%.6f", ImGuiInputTextFlags_ReadOnly);
|
ImGui::InputFloat3("Target", target.data(), "%.6f", ImGuiInputTextFlags_ReadOnly);
|
||||||
ImGui::Separator();
|
ImGui::Separator();
|
||||||
|
|
|
@ -1624,6 +1624,7 @@ void GLCanvas3D::render()
|
||||||
}
|
}
|
||||||
|
|
||||||
m_camera.apply_view_matrix();
|
m_camera.apply_view_matrix();
|
||||||
|
m_camera.apply_projection(_max_bounding_box());
|
||||||
|
|
||||||
GLfloat position_cam[4] = { 1.0f, 0.0f, 1.0f, 0.0f };
|
GLfloat position_cam[4] = { 1.0f, 0.0f, 1.0f, 0.0f };
|
||||||
glsafe(::glLightfv(GL_LIGHT1, GL_POSITION, position_cam));
|
glsafe(::glLightfv(GL_LIGHT1, GL_POSITION, position_cam));
|
||||||
|
@ -2515,7 +2516,7 @@ void GLCanvas3D::on_mouse_wheel(wxMouseEvent& evt)
|
||||||
m_layers_editing.band_width = std::max(std::min(m_layers_editing.band_width * (1.0f + 0.1f * (float)evt.GetWheelRotation() / (float)evt.GetWheelDelta()), 10.0f), 1.5f);
|
m_layers_editing.band_width = std::max(std::min(m_layers_editing.band_width * (1.0f + 0.1f * (float)evt.GetWheelRotation() / (float)evt.GetWheelDelta()), 10.0f), 1.5f);
|
||||||
if (m_canvas != nullptr)
|
if (m_canvas != nullptr)
|
||||||
m_canvas->Refresh();
|
m_canvas->Refresh();
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2526,8 +2527,7 @@ void GLCanvas3D::on_mouse_wheel(wxMouseEvent& evt)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// Calculate the zoom delta and apply it to the current zoom factor
|
// Calculate the zoom delta and apply it to the current zoom factor
|
||||||
float zoom = (float)evt.GetWheelRotation() / (float)evt.GetWheelDelta();
|
set_camera_zoom((float)evt.GetWheelRotation() / (float)evt.GetWheelDelta());
|
||||||
set_camera_zoom(zoom);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void GLCanvas3D::on_timer(wxTimerEvent& evt)
|
void GLCanvas3D::on_timer(wxTimerEvent& evt)
|
||||||
|
@ -3293,7 +3293,7 @@ void GLCanvas3D::set_camera_zoom(float zoom)
|
||||||
zoom = std::min(zoom, 100.0f);
|
zoom = std::min(zoom, 100.0f);
|
||||||
|
|
||||||
m_camera.zoom = zoom;
|
m_camera.zoom = zoom;
|
||||||
_refresh_if_shown_on_screen();
|
m_dirty = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void GLCanvas3D::update_gizmos_on_off_state()
|
void GLCanvas3D::update_gizmos_on_off_state()
|
||||||
|
@ -3609,7 +3609,6 @@ void GLCanvas3D::_resize(unsigned int w, unsigned int h)
|
||||||
|
|
||||||
// updates camera
|
// updates camera
|
||||||
m_camera.apply_viewport(0, 0, w, h);
|
m_camera.apply_viewport(0, 0, w, h);
|
||||||
m_camera.apply_projection(_max_bounding_box());
|
|
||||||
|
|
||||||
m_dirty = false;
|
m_dirty = false;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue