From cc19e9c48f36da2484fea8cebb1074fad342f7fa Mon Sep 17 00:00:00 2001 From: Enrico Turri Date: Fri, 17 Jan 2020 12:12:38 +0100 Subject: [PATCH] ENABLE_KEEP_LOADED_VOLUME_TRANSFORM_AS_STAND_ALONE set as default --- src/libslic3r/Format/3mf.cpp | 21 --------------------- src/libslic3r/Format/AMF.cpp | 20 -------------------- src/libslic3r/Model.hpp | 4 ---- src/libslic3r/Technologies.hpp | 3 --- src/slic3r/GUI/Plater.cpp | 10 ---------- 5 files changed, 58 deletions(-) diff --git a/src/libslic3r/Format/3mf.cpp b/src/libslic3r/Format/3mf.cpp index ab4848c9a8..14177ed88d 100644 --- a/src/libslic3r/Format/3mf.cpp +++ b/src/libslic3r/Format/3mf.cpp @@ -1717,9 +1717,6 @@ namespace Slic3r { break; } } -#if !ENABLE_KEEP_LOADED_VOLUME_TRANSFORM_AS_STAND_ALONE - Transform3d inv_matrix = volume_matrix_to_object.inverse(); -#endif // !ENABLE_KEEP_LOADED_VOLUME_TRANSFORM_AS_STAND_ALONE // splits volume out of imported geometry TriangleMesh triangle_mesh; @@ -1739,15 +1736,7 @@ namespace Slic3r { for (unsigned int v = 0; v < 3; ++v) { unsigned int tri_id = geometry.triangles[src_start_id + ii + v] * 3; -#if ENABLE_KEEP_LOADED_VOLUME_TRANSFORM_AS_STAND_ALONE facet.vertex[v] = Vec3f(geometry.vertices[tri_id + 0], geometry.vertices[tri_id + 1], geometry.vertices[tri_id + 2]); -#else - Vec3f vertex(geometry.vertices[tri_id + 0], geometry.vertices[tri_id + 1], geometry.vertices[tri_id + 2]); - facet.vertex[v] = has_transform ? - // revert the vertices to the original mesh reference system - (inv_matrix * vertex.cast()).cast() : - vertex; -#endif // ENABLE_KEEP_LOADED_VOLUME_TRANSFORM_AS_STAND_ALONE } } @@ -1755,15 +1744,9 @@ namespace Slic3r { triangle_mesh.repair(); ModelVolume* volume = object.add_volume(std::move(triangle_mesh)); -#if ENABLE_KEEP_LOADED_VOLUME_TRANSFORM_AS_STAND_ALONE // stores the volume matrix taken from the metadata, if present if (has_transform) volume->source.transform = Slic3r::Geometry::Transformation(volume_matrix_to_object); -#else - // apply the volume matrix taken from the metadata, if present - if (has_transform) - volume->set_transformation(Slic3r::Geometry::Transformation(volume_matrix_to_object)); -#endif //ENABLE_KEEP_LOADED_VOLUME_TRANSFORM_AS_STAND_ALONE volume->calculate_convex_hull(); // apply the remaining volume's metadata @@ -2567,11 +2550,7 @@ namespace Slic3r { // stores volume's local matrix stream << " <" << METADATA_TAG << " " << TYPE_ATTR << "=\"" << VOLUME_TYPE << "\" " << KEY_ATTR << "=\"" << MATRIX_KEY << "\" " << VALUE_ATTR << "=\""; -#if ENABLE_KEEP_LOADED_VOLUME_TRANSFORM_AS_STAND_ALONE Transform3d matrix = volume->get_matrix() * volume->source.transform.get_matrix(); -#else - const Transform3d& matrix = volume->get_matrix(); -#endif // ENABLE_KEEP_LOADED_VOLUME_TRANSFORM_AS_STAND_ALONE for (int r = 0; r < 4; ++r) { for (int c = 0; c < 4; ++c) diff --git a/src/libslic3r/Format/AMF.cpp b/src/libslic3r/Format/AMF.cpp index efb90f5923..7041956bad 100644 --- a/src/libslic3r/Format/AMF.cpp +++ b/src/libslic3r/Format/AMF.cpp @@ -585,36 +585,20 @@ void AMFParserContext::endElement(const char * /* name */) stl_allocate(&stl); bool has_transform = ! m_volume_transform.isApprox(Transform3d::Identity(), 1e-10); -#if !ENABLE_KEEP_LOADED_VOLUME_TRANSFORM_AS_STAND_ALONE - Transform3d inv_matrix = m_volume_transform.inverse(); -#endif // !ENABLE_KEEP_LOADED_VOLUME_TRANSFORM_AS_STAND_ALONE for (size_t i = 0; i < m_volume_facets.size();) { stl_facet &facet = stl.facet_start[i/3]; for (unsigned int v = 0; v < 3; ++v) { unsigned int tri_id = m_volume_facets[i++] * 3; -#if ENABLE_KEEP_LOADED_VOLUME_TRANSFORM_AS_STAND_ALONE facet.vertex[v] = Vec3f(m_object_vertices[tri_id + 0], m_object_vertices[tri_id + 1], m_object_vertices[tri_id + 2]); -#else - Vec3f vertex(m_object_vertices[tri_id + 0], m_object_vertices[tri_id + 1], m_object_vertices[tri_id + 2]); - facet.vertex[v] = has_transform ? - // revert the vertices to the original mesh reference system - (inv_matrix * vertex.cast()).cast() : - vertex; -#endif // ENABLE_KEEP_LOADED_VOLUME_TRANSFORM_AS_STAND_ALONE } } stl_get_size(&stl); mesh.repair(); m_volume->set_mesh(std::move(mesh)); -#if ENABLE_KEEP_LOADED_VOLUME_TRANSFORM_AS_STAND_ALONE // stores the volume matrix taken from the metadata, if present if (has_transform) m_volume->source.transform = Slic3r::Geometry::Transformation(m_volume_transform); -#else - if (has_transform) - m_volume->set_transformation(m_volume_transform); -#endif // ENABLE_KEEP_LOADED_VOLUME_TRANSFORM_AS_STAND_ALONE if (m_volume->source.input_file.empty() && (m_volume->type() == ModelVolumeType::MODEL_PART)) { m_volume->source.object_idx = (int)m_model.objects.size() - 1; @@ -1163,11 +1147,7 @@ bool store_amf(const char *path, Model *model, const DynamicPrintConfig *config) stream << " 1\n"; stream << " " << ModelVolume::type_to_string(volume->type()) << "\n"; stream << " "; -#if ENABLE_KEEP_LOADED_VOLUME_TRANSFORM_AS_STAND_ALONE const Transform3d& matrix = volume->get_matrix() * volume->source.transform.get_matrix(); -#else - const Transform3d& matrix = volume->get_matrix(); -#endif // ENABLE_KEEP_LOADED_VOLUME_TRANSFORM_AS_STAND_ALONE stream << std::setprecision(std::numeric_limits::max_digits10); for (int r = 0; r < 4; ++r) { diff --git a/src/libslic3r/Model.hpp b/src/libslic3r/Model.hpp index 509c70b15f..4c1a914c33 100644 --- a/src/libslic3r/Model.hpp +++ b/src/libslic3r/Model.hpp @@ -399,13 +399,9 @@ public: int object_idx{ -1 }; int volume_idx{ -1 }; Vec3d mesh_offset{ Vec3d::Zero() }; -#if ENABLE_KEEP_LOADED_VOLUME_TRANSFORM_AS_STAND_ALONE Geometry::Transformation transform; template void serialize(Archive& ar) { ar(input_file, object_idx, volume_idx, mesh_offset, transform); } -#else - template void serialize(Archive& ar) { ar(input_file, object_idx, volume_idx, mesh_offset); } -#endif // ENABLE_KEEP_LOADED_VOLUME_TRANSFORM_AS_STAND_ALONE }; Source source; diff --git a/src/libslic3r/Technologies.hpp b/src/libslic3r/Technologies.hpp index 4d76c1b2fa..be1fbd0015 100644 --- a/src/libslic3r/Technologies.hpp +++ b/src/libslic3r/Technologies.hpp @@ -41,9 +41,6 @@ #define ENABLE_THUMBNAIL_GENERATOR (1 && ENABLE_2_2_0_ALPHA1) #define ENABLE_THUMBNAIL_GENERATOR_DEBUG (0 && ENABLE_THUMBNAIL_GENERATOR) -// Enable not applying volume transformation during 3mf and amf loading, but keeping it as a ModelVolume member -#define ENABLE_KEEP_LOADED_VOLUME_TRANSFORM_AS_STAND_ALONE (1 && ENABLE_2_2_0_ALPHA1) - //================== // 2.2.0.beta1 techs diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 69a3f6763e..83570ae742 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -3340,27 +3340,17 @@ void Plater::priv::reload_from_disk() new_volume->config.apply(old_volume->config); new_volume->set_type(old_volume->type()); new_volume->set_material_id(old_volume->material_id()); -#if ENABLE_KEEP_LOADED_VOLUME_TRANSFORM_AS_STAND_ALONE new_volume->set_transformation(old_volume->get_transformation() * old_volume->source.transform); -#else - new_volume->set_transformation(old_volume->get_transformation()); -#endif // ENABLE_KEEP_LOADED_VOLUME_TRANSFORM_AS_STAND_ALONE new_volume->translate(new_volume->get_transformation().get_matrix(true) * (new_volume->source.mesh_offset - old_volume->source.mesh_offset)); new_volume->source.input_file = path; std::swap(old_model_object->volumes[old_v.volume_idx], old_model_object->volumes.back()); old_model_object->delete_volume(old_model_object->volumes.size() - 1); -#if ENABLE_KEEP_LOADED_VOLUME_TRANSFORM_AS_STAND_ALONE old_model_object->ensure_on_bed(); -#endif // ENABLE_KEEP_LOADED_VOLUME_TRANSFORM_AS_STAND_ALONE } } } } -#if !ENABLE_KEEP_LOADED_VOLUME_TRANSFORM_AS_STAND_ALONE - model.adjust_min_z(); -#endif // !ENABLE_KEEP_LOADED_VOLUME_TRANSFORM_AS_STAND_ALONE - // update 3D scene update();