After merge fixes

This commit is contained in:
YuSanka 2022-08-08 14:58:13 +02:00
parent 2ac3861b2a
commit dda346b70a
4 changed files with 22 additions and 25 deletions

View File

@ -404,6 +404,8 @@ bool GLGizmoBase::use_grabbers(const wxMouseEvent &mouse_event) {
if (mouse_event.LeftDown()) { if (mouse_event.LeftDown()) {
Selection &selection = m_parent.get_selection(); Selection &selection = m_parent.get_selection();
if (!selection.is_empty() && m_hover_id != -1 &&
(m_grabbers.empty() || m_hover_id < static_cast<int>(m_grabbers.size()))) {
selection.setup_cache(); selection.setup_cache();
m_dragging = true; m_dragging = true;

View File

@ -214,8 +214,8 @@ std::string GLGizmoCut3D::get_tooltip() const
} }
if (tooltip.empty() && (m_hover_id == X || m_hover_id == Y)) { if (tooltip.empty() && (m_hover_id == X || m_hover_id == Y)) {
std::string axis = m_hover_id == X ? "X" : "Y"; std::string axis = m_hover_id == X ? "X" : "Y";
// return axis + ": " + format(float(Geometry::rad2deg(Geometry::Transformation(m_rotation_m).get_rotation()[m_hover_id])), 1) + _u8L("°"); // return axis + ": " + format(float(Geometry::rad2deg(Geometry::Transformation(m_rotation_m).get_rotation()[m_hover_id])), 1) + _u8L("°");
return axis + ": " + format(float(Geometry::rad2deg(m_angle)), 1) + _u8L("°"); return axis + ": " + format(float(Geometry::rad2deg(m_angle)), 1) + _u8L("°");
} }
return tooltip; return tooltip;
@ -611,9 +611,7 @@ void GLGizmoCut3D::render_cut_center_graber(bool picking /* = false*/)
if (!OpenGLManager::get_gl_info().is_core_profile()) if (!OpenGLManager::get_gl_info().is_core_profile())
#endif // ENABLE_GL_CORE_PROFILE #endif // ENABLE_GL_CORE_PROFILE
glsafe(::glLineWidth(m_hover_id != -1 ? 2.0f : 1.5f)); glsafe(::glLineWidth(m_hover_id != -1 ? 2.0f : 1.5f));
#if ENABLE_LEGACY_OPENGL_REMOVAL
if (!m_grabber_connection.is_initialized() || is_changed) {
m_grabber_connection.reset();
ColorRGBA color = picking ? picking_decode(BASE_ID - Z) : ColorRGBA color = picking ? picking_decode(BASE_ID - Z) :
m_hover_id == Z ? complementary(GRABBER_COLOR) : GRABBER_COLOR; m_hover_id == Z ? complementary(GRABBER_COLOR) : GRABBER_COLOR;
@ -753,7 +751,7 @@ void GLGizmoCut3D::render_cut_line()
const Camera& camera = wxGetApp().plater()->get_camera(); const Camera& camera = wxGetApp().plater()->get_camera();
shader->set_uniform("view_model_matrix", camera.get_view_matrix()); shader->set_uniform("view_model_matrix", camera.get_view_matrix());
shader->set_uniform("projection_matrix", camera.get_projection_matrix()); shader->set_uniform("projection_matrix", camera.get_projection_matrix());
#endif // ENABLE_GL_SHADERS_ATTRIBUTES
m_cut_line.reset(); m_cut_line.reset();
m_cut_line.init_from(its_make_line((Vec3f)m_line_beg.cast<float>(), (Vec3f)m_line_end.cast<float>())); m_cut_line.init_from(its_make_line((Vec3f)m_line_beg.cast<float>(), (Vec3f)m_line_end.cast<float>()));
@ -822,26 +820,32 @@ void GLGizmoCut3D::on_set_state()
} }
else else
m_c->object_clipper()->release(); m_c->object_clipper()->release();
#endif // !ENABLE_GL_CORE_PROFILE
force_update_clipper_on_render = m_state == On; force_update_clipper_on_render = m_state == On;
} }
#if ENABLE_RAYCAST_PICKING #if ENABLE_RAYCAST_PICKING
void GLGizmoCut::on_register_raycasters_for_picking() void GLGizmoCut3D::on_register_raycasters_for_picking()
{ {
// the gizmo grabbers are rendered on top of the scene, so the raytraced picker should take it into account // the gizmo grabbers are rendered on top of the scene, so the raytraced picker should take it into account
m_parent.set_raycaster_gizmos_on_top(true); m_parent.set_raycaster_gizmos_on_top(true);
} }
void GLGizmoCut::on_unregister_raycasters_for_picking() void GLGizmoCut3D::on_unregister_raycasters_for_picking()
{ {
m_parent.set_raycaster_gizmos_on_top(false); m_parent.set_raycaster_gizmos_on_top(false);
} }
#else #else
void GLGizmoCut3D::on_render_for_picking()
{
render_cut_center_graber(true);
render_connectors(true);
}
#endif // ENABLE_RAYCAST_PICKING
void GLGizmoCut3D::on_set_hover_id() void GLGizmoCut3D::on_set_hover_id()
{ {
} }
#endif // ENABLE_RAYCAST_PICKING
bool GLGizmoCut3D::on_is_activable() const bool GLGizmoCut3D::on_is_activable() const
{ {
@ -1139,12 +1143,6 @@ void GLGizmoCut3D::on_render()
render_cut_line(); render_cut_line();
} }
void GLGizmoCut3D::on_render_for_picking()
{
render_cut_center_graber(true);
render_connectors(true);
}
void GLGizmoCut3D::on_render_input_window(float x, float y, float bottom_limit) void GLGizmoCut3D::on_render_input_window(float x, float y, float bottom_limit)
{ {
static float last_y = 0.0f; static float last_y = 0.0f;

View File

@ -106,7 +106,6 @@ class GLGizmoCut3D : public GLGizmoBase
, cutGrig , cutGrig
//,cutRadial //,cutRadial
//,cutModular //,cutModular
std::vector<Transform3d> volumes_trafos;
}; };
enum class CutConnectorMode { enum class CutConnectorMode {

View File

@ -127,11 +127,9 @@ void MeshClipper::render_contour()
GLShaderProgram* shader = wxGetApp().get_shader("flat"); GLShaderProgram* shader = wxGetApp().get_shader("flat");
if (shader != nullptr) { if (shader != nullptr) {
shader->start_using(); shader->start_using();
#if ENABLE_GL_SHADERS_ATTRIBUTES
const Camera& camera = wxGetApp().plater()->get_camera(); const Camera& camera = wxGetApp().plater()->get_camera();
shader->set_uniform("view_model_matrix", camera.get_view_matrix()); shader->set_uniform("view_model_matrix", camera.get_view_matrix());
shader->set_uniform("projection_matrix", camera.get_projection_matrix()); shader->set_uniform("projection_matrix", camera.get_projection_matrix());
#endif // ENABLE_GL_SHADERS_ATTRIBUTES
m_model_expanded.set_color(color); m_model_expanded.set_color(color);
m_model_expanded.render(); m_model_expanded.render();
shader->stop_using(); shader->stop_using();
@ -418,7 +416,7 @@ bool MeshRaycaster::unproject_on_mesh(const Vec2d& mouse_pos, const Transform3d&
Vec3d direction; Vec3d direction;
line_from_mouse_pos(mouse_pos, trafo, camera, point, direction); line_from_mouse_pos(mouse_pos, trafo, camera, point, direction);
std::vector<sla::IndexedMesh::hit_result> hits = m_emesh.query_ray_hits(point, direction); std::vector<AABBMesh::hit_result> hits = m_emesh.query_ray_hits(point, direction);
if (hits.empty()) if (hits.empty())
return false; // no intersection found return false; // no intersection found
@ -434,8 +432,8 @@ bool MeshRaycaster::is_valid_intersection(Vec3d point, Vec3d direction, const Tr
{ {
point = trafo.inverse() * point; point = trafo.inverse() * point;
std::vector<sla::IndexedMesh::hit_result> hits = m_emesh.query_ray_hits(point, direction); std::vector<AABBMesh::hit_result> hits = m_emesh.query_ray_hits(point, direction);
std::vector<sla::IndexedMesh::hit_result> neg_hits = m_emesh.query_ray_hits(point, -direction); std::vector<AABBMesh::hit_result> neg_hits = m_emesh.query_ray_hits(point, -direction);
return !hits.empty() && !neg_hits.empty(); return !hits.empty() && !neg_hits.empty();
} }