From b242f5b2cf6ffc15c8d9ed144979d13c6e065d6b Mon Sep 17 00:00:00 2001 From: redstrate <54911369+redstrate@users.noreply.github.com> Date: Wed, 19 Aug 2020 17:35:02 -0400 Subject: [PATCH] Fix bug in transform handles only allowing Y axis to function --- tools/common/src/debugpass.cpp | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/tools/common/src/debugpass.cpp b/tools/common/src/debugpass.cpp index 9a8280b..7441f2a 100755 --- a/tools/common/src/debugpass.cpp +++ b/tools/common/src/debugpass.cpp @@ -358,9 +358,9 @@ void DebugPass::render_scene(Scene& scene, GFXCommandBuffer* commandBuffer) { // draw handles for selected object; if(selected_object != NullObject && engine->get_scene()->has(selected_object)) { - auto position = engine->get_scene()->get(selected_object).get_world_position(); + const auto position = engine->get_scene()->get(selected_object).get_world_position(); - const float base_scale = 0.05; + const float base_scale = 0.05f; const float scale_factor = length(position - scene.get(camObj).get_world_position()); Matrix4x4 base_model = transform::translate(Matrix4x4(), position); @@ -458,24 +458,25 @@ void DebugPass::get_selected_object(int x, int y, std::functionget_scene()->get(selected_object).get_world_position(); + const auto position = engine->get_scene()->get(selected_object).get_world_position(); - const float base_scale = 0.05; + const float base_scale = 0.05f; const float scale_factor = length(position - engine->get_scene()->get(camObj).position); - Matrix4x4 base_model = transform::translate(Matrix4x4(), position); - base_model = transform::scale(base_model, base_scale * scale_factor); + const Matrix4x4 translate_model = transform::translate(Matrix4x4(), position); + const Matrix4x4 scale_model = transform::scale(Matrix4x4(), base_scale * scale_factor); - add_arrow(SelectableObject::Axis::Y, base_model); + add_arrow(SelectableObject::Axis::Y, translate_model * scale_model); - add_arrow(SelectableObject::Axis::X, base_model * matrix_from_quat(angle_axis(radians(-90.0f), Vector3(0, 0, 1)))); + add_arrow(SelectableObject::Axis::X, translate_model * matrix_from_quat(angle_axis(radians(-90.0f), Vector3(0, 0, 1))) * scale_model); - add_arrow(SelectableObject::Axis::Z, base_model * matrix_from_quat(angle_axis(radians(90.0f), Vector3(1, 0, 0)))); + add_arrow(SelectableObject::Axis::Z, translate_model * matrix_from_quat(angle_axis(radians(90.0f), Vector3(1, 0, 0))) * scale_model); } GFXCommandBuffer* commandBuffer = engine->get_gfx()->acquire_command_buffer(); @@ -487,6 +488,12 @@ void DebugPass::get_selected_object(int x, int y, std::functionset_render_pass(info); + + Viewport viewport = {}; + viewport.width = extent.width; + viewport.height = extent.height; + + commandBuffer->set_viewport(viewport); commandBuffer->set_pipeline(selectPipeline); @@ -549,7 +556,7 @@ void DebugPass::get_selected_object(int x, int y, std::functionget_gfx()->release_buffer_contents(selectBuffer, mapped_texture);