diff --git a/src/PrusaSlicer.cpp b/src/PrusaSlicer.cpp index 7662288d35..048aea8869 100644 --- a/src/PrusaSlicer.cpp +++ b/src/PrusaSlicer.cpp @@ -162,10 +162,26 @@ int CLI::run(int argc, char **argv) // Initialize full print configs for both the FFF and SLA technologies. FullPrintConfig fff_print_config; -// SLAFullPrintConfig sla_print_config; - fff_print_config.apply(m_print_config, true); -// sla_print_config.apply(m_print_config, true); - + SLAFullPrintConfig sla_print_config; + + // Synchronize the default parameters and the ones received on the command line. + if (printer_technology == ptFFF) { + fff_print_config.apply(m_print_config, true); + m_print_config.apply(fff_print_config, true); + } else if (printer_technology == ptSLA) { + // The default value has to be different from the one in fff mode. + sla_print_config.output_filename_format.value = "[input_filename_base].sl1"; + + // The default bed shape should reflect the default display parameters + // and not the fff defaults. + double w = sla_print_config.display_width.getFloat(); + double h = sla_print_config.display_height.getFloat(); + sla_print_config.bed_shape.values = { Vec2d(0, 0), Vec2d(w, 0), Vec2d(w, h), Vec2d(0, h) }; + + sla_print_config.apply(m_print_config, true); + m_print_config.apply(sla_print_config, true); + } + // Loop through transform options. bool user_center_specified = false; for (auto const &opt_key : m_transforms) { @@ -641,18 +657,10 @@ bool CLI::export_models(IO::ExportFormat format) const std::string path = this->output_filepath(model, format); bool success = false; switch (format) { -#if ENABLE_CONFIGURABLE_PATHS_EXPORT_TO_3MF_AND_AMF case IO::AMF: success = Slic3r::store_amf(path.c_str(), &model, nullptr, false); break; -#else - case IO::AMF: success = Slic3r::store_amf(path.c_str(), &model, nullptr); break; -#endif // ENABLE_CONFIGURABLE_PATHS_EXPORT_TO_3MF_AND_AMF case IO::OBJ: success = Slic3r::store_obj(path.c_str(), &model); break; case IO::STL: success = Slic3r::store_stl(path.c_str(), &model, true); break; -#if ENABLE_CONFIGURABLE_PATHS_EXPORT_TO_3MF_AND_AMF case IO::TMF: success = Slic3r::store_3mf(path.c_str(), &model, nullptr, false); break; -#else - case IO::TMF: success = Slic3r::store_3mf(path.c_str(), &model, nullptr); break; -#endif // ENABLE_CONFIGURABLE_PATHS_EXPORT_TO_3MF_AND_AMF default: assert(false); break; } if (success) diff --git a/src/libslic3r/Format/3mf.cpp b/src/libslic3r/Format/3mf.cpp index 45f39c7873..efeb237003 100644 --- a/src/libslic3r/Format/3mf.cpp +++ b/src/libslic3r/Format/3mf.cpp @@ -1966,24 +1966,14 @@ namespace Slic3r { typedef std::vector BuildItemsList; typedef std::map IdToObjectDataMap; -#if ENABLE_CONFIGURABLE_PATHS_EXPORT_TO_3MF_AND_AMF bool m_fullpath_sources{ true }; -#endif // ENABLE_CONFIGURABLE_PATHS_EXPORT_TO_3MF_AND_AMF public: -#if ENABLE_CONFIGURABLE_PATHS_EXPORT_TO_3MF_AND_AMF #if ENABLE_THUMBNAIL_GENERATOR bool save_model_to_file(const std::string& filename, Model& model, const DynamicPrintConfig* config, bool fullpath_sources, const ThumbnailData* thumbnail_data = nullptr); #else bool save_model_to_file(const std::string& filename, Model& model, const DynamicPrintConfig* config, bool fullpath_sources); #endif // ENABLE_THUMBNAIL_GENERATOR -#else -#if ENABLE_THUMBNAIL_GENERATOR - bool save_model_to_file(const std::string& filename, Model& model, const DynamicPrintConfig* config, const ThumbnailData* thumbnail_data = nullptr); -#else - bool save_model_to_file(const std::string& filename, Model& model, const DynamicPrintConfig* config); -#endif // ENABLE_THUMBNAIL_GENERATOR -#endif // ENABLE_CONFIGURABLE_PATHS_EXPORT_TO_3MF_AND_AMF private: #if ENABLE_THUMBNAIL_GENERATOR @@ -2009,7 +1999,6 @@ namespace Slic3r { bool _add_custom_gcode_per_print_z_file_to_archive(mz_zip_archive& archive, Model& model); }; -#if ENABLE_CONFIGURABLE_PATHS_EXPORT_TO_3MF_AND_AMF #if ENABLE_THUMBNAIL_GENERATOR bool _3MF_Exporter::save_model_to_file(const std::string& filename, Model& model, const DynamicPrintConfig* config, bool fullpath_sources, const ThumbnailData* thumbnail_data) { @@ -2024,21 +2013,6 @@ namespace Slic3r { return _save_model_to_file(filename, model, config); } #endif // ENABLE_THUMBNAIL_GENERATOR -#else -#if ENABLE_THUMBNAIL_GENERATOR - bool _3MF_Exporter::save_model_to_file(const std::string& filename, Model& model, const DynamicPrintConfig* config, const ThumbnailData* thumbnail_data) - { - clear_errors(); - return _save_model_to_file(filename, model, config, thumbnail_data); - } -#else - bool _3MF_Exporter::save_model_to_file(const std::string& filename, Model& model, const DynamicPrintConfig* config) - { - clear_errors(); - return _save_model_to_file(filename, model, config); - } -#endif // ENABLE_THUMBNAIL_GENERATOR -#endif // ENABLE_CONFIGURABLE_PATHS_EXPORT_TO_3MF_AND_AMF #if ENABLE_THUMBNAIL_GENERATOR bool _3MF_Exporter::_save_model_to_file(const std::string& filename, Model& model, const DynamicPrintConfig* config, const ThumbnailData* thumbnail_data) @@ -2725,12 +2699,8 @@ namespace Slic3r { // stores volume's source data if (!volume->source.input_file.empty()) { -#if ENABLE_CONFIGURABLE_PATHS_EXPORT_TO_3MF_AND_AMF std::string input_file = xml_escape(m_fullpath_sources ? volume->source.input_file : boost::filesystem::path(volume->source.input_file).filename().string()); stream << " <" << METADATA_TAG << " " << TYPE_ATTR << "=\"" << VOLUME_TYPE << "\" " << KEY_ATTR << "=\"" << SOURCE_FILE_KEY << "\" " << VALUE_ATTR << "=\"" << input_file << "\"/>\n"; -#else - stream << " <" << METADATA_TAG << " " << TYPE_ATTR << "=\"" << VOLUME_TYPE << "\" " << KEY_ATTR << "=\"" << SOURCE_FILE_KEY << "\" " << VALUE_ATTR << "=\"" << xml_escape(volume->source.input_file) << "\"/>\n"; -#endif // ENABLE_CONFIGURABLE_PATHS_EXPORT_TO_3MF_AND_AMF stream << " <" << METADATA_TAG << " " << TYPE_ATTR << "=\"" << VOLUME_TYPE << "\" " << KEY_ATTR << "=\"" << SOURCE_OBJECT_ID_KEY << "\" " << VALUE_ATTR << "=\"" << volume->source.object_idx << "\"/>\n"; stream << " <" << METADATA_TAG << " " << TYPE_ATTR << "=\"" << VOLUME_TYPE << "\" " << KEY_ATTR << "=\"" << SOURCE_VOLUME_ID_KEY << "\" " << VALUE_ATTR << "=\"" << volume->source.volume_idx << "\"/>\n"; stream << " <" << METADATA_TAG << " " << TYPE_ATTR << "=\"" << VOLUME_TYPE << "\" " << KEY_ATTR << "=\"" << SOURCE_OFFSET_X_KEY << "\" " << VALUE_ATTR << "=\"" << volume->source.mesh_offset(0) << "\"/>\n"; @@ -2825,37 +2795,21 @@ bool load_3mf(const char* path, DynamicPrintConfig* config, Model* model, bool c return res; } -#if ENABLE_CONFIGURABLE_PATHS_EXPORT_TO_3MF_AND_AMF #if ENABLE_THUMBNAIL_GENERATOR bool store_3mf(const char* path, Model* model, const DynamicPrintConfig* config, bool fullpath_sources, const ThumbnailData* thumbnail_data) #else bool store_3mf(const char* path, Model* model, const DynamicPrintConfig* config, bool fullpath_sources) #endif // ENABLE_THUMBNAIL_GENERATOR -#else -#if ENABLE_THUMBNAIL_GENERATOR - bool store_3mf(const char* path, Model* model, const DynamicPrintConfig* config, const ThumbnailData* thumbnail_data) -#else - bool store_3mf(const char* path, Model* model, const DynamicPrintConfig* config) -#endif // ENABLE_THUMBNAIL_GENERATOR -#endif // ENABLE_CONFIGURABLE_PATHS_EXPORT_TO_3MF_AND_AMF { if ((path == nullptr) || (model == nullptr)) return false; _3MF_Exporter exporter; -#if ENABLE_CONFIGURABLE_PATHS_EXPORT_TO_3MF_AND_AMF #if ENABLE_THUMBNAIL_GENERATOR bool res = exporter.save_model_to_file(path, *model, config, fullpath_sources, thumbnail_data); #else bool res = exporter.save_model_to_file(path, *model, config, fullpath_sources); #endif // ENABLE_THUMBNAIL_GENERATOR -#else -#if ENABLE_THUMBNAIL_GENERATOR - bool res = exporter.save_model_to_file(path, *model, config, thumbnail_data); -#else - bool res = exporter.save_model_to_file(path, *model, config); -#endif // ENABLE_THUMBNAIL_GENERATOR -#endif // ENABLE_CONFIGURABLE_PATHS_EXPORT_TO_3MF_AND_AMF if (!res) exporter.log_errors(); diff --git a/src/libslic3r/Format/3mf.hpp b/src/libslic3r/Format/3mf.hpp index 79ac61a234..8ca1ebde85 100644 --- a/src/libslic3r/Format/3mf.hpp +++ b/src/libslic3r/Format/3mf.hpp @@ -35,19 +35,11 @@ namespace Slic3r { // Save the given model and the config data contained in the given Print into a 3mf file. // The model could be modified during the export process if meshes are not repaired or have no shared vertices -#if ENABLE_CONFIGURABLE_PATHS_EXPORT_TO_3MF_AND_AMF #if ENABLE_THUMBNAIL_GENERATOR extern bool store_3mf(const char* path, Model* model, const DynamicPrintConfig* config, bool fullpath_sources, const ThumbnailData* thumbnail_data = nullptr); #else extern bool store_3mf(const char* path, Model* model, const DynamicPrintConfig* config, bool fullpath_sources); #endif // ENABLE_THUMBNAIL_GENERATOR -#else -#if ENABLE_THUMBNAIL_GENERATOR - extern bool store_3mf(const char* path, Model* model, const DynamicPrintConfig* config, const ThumbnailData* thumbnail_data = nullptr); -#else - extern bool store_3mf(const char* path, Model* model, const DynamicPrintConfig* config); -#endif // ENABLE_THUMBNAIL_GENERATOR -#endif // ENABLE_CONFIGURABLE_PATHS_EXPORT_TO_3MF_AND_AMF }; // namespace Slic3r diff --git a/src/libslic3r/Format/AMF.cpp b/src/libslic3r/Format/AMF.cpp index ede4f403bf..2dc4ea0ba5 100644 --- a/src/libslic3r/Format/AMF.cpp +++ b/src/libslic3r/Format/AMF.cpp @@ -1022,11 +1022,7 @@ bool load_amf(const char* path, DynamicPrintConfig* config, Model* model, bool c return false; } -#if ENABLE_CONFIGURABLE_PATHS_EXPORT_TO_3MF_AND_AMF bool store_amf(const char* path, Model* model, const DynamicPrintConfig* config, bool fullpath_sources) -#else -bool store_amf(const char *path, Model *model, const DynamicPrintConfig *config) -#endif // ENABLE_CONFIGURABLE_PATHS_EXPORT_TO_3MF_AND_AMF { if ((path == nullptr) || (model == nullptr)) return false; @@ -1180,12 +1176,8 @@ bool store_amf(const char *path, Model *model, const DynamicPrintConfig *config) stream << "\n"; if (!volume->source.input_file.empty()) { -#if ENABLE_CONFIGURABLE_PATHS_EXPORT_TO_3MF_AND_AMF std::string input_file = xml_escape(fullpath_sources ? volume->source.input_file : boost::filesystem::path(volume->source.input_file).filename().string()); stream << " " << input_file << "\n"; -#else - stream << " " << xml_escape(volume->source.input_file) << "\n"; -#endif // ENABLE_CONFIGURABLE_PATHS_EXPORT_TO_3MF_AND_AMF stream << " " << volume->source.object_idx << "\n"; stream << " " << volume->source.volume_idx << "\n"; stream << " " << volume->source.mesh_offset(0) << "\n"; diff --git a/src/libslic3r/Format/AMF.hpp b/src/libslic3r/Format/AMF.hpp index 7404e1e901..3e33d4aa37 100644 --- a/src/libslic3r/Format/AMF.hpp +++ b/src/libslic3r/Format/AMF.hpp @@ -11,11 +11,7 @@ extern bool load_amf(const char* path, DynamicPrintConfig* config, Model* model, // Save the given model and the config data into an amf file. // The model could be modified during the export process if meshes are not repaired or have no shared vertices -#if ENABLE_CONFIGURABLE_PATHS_EXPORT_TO_3MF_AND_AMF extern bool store_amf(const char* path, Model* model, const DynamicPrintConfig* config, bool fullpath_sources); -#else -extern bool store_amf(const char *path, Model *model, const DynamicPrintConfig *config); -#endif // ENABLE_CONFIGURABLE_PATHS_EXPORT_TO_3MF_AND_AMF }; // namespace Slic3r diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index 6543bf255f..87b0c49086 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -1101,11 +1101,7 @@ static inline std::vector sort_object_instances_by_max_z(c } // Produce a vector of PrintObjects in the order of their respective ModelObjects in print.model(). -#if ENABLE_SHOW_SCENE_LABELS std::vector sort_object_instances_by_model_order(const Print& print) -#else -static inline std::vector sort_object_instances_by_model_order(const Print& print) -#endif // ENABLE_SHOW_SCENE_LABELS { // Build up map from ModelInstance* to PrintInstance* std::vector> model_instance_to_print_instance; diff --git a/src/libslic3r/GCode.hpp b/src/libslic3r/GCode.hpp index e0f16f9fd0..650fb8860c 100644 --- a/src/libslic3r/GCode.hpp +++ b/src/libslic3r/GCode.hpp @@ -418,9 +418,7 @@ private: friend class WipeTowerIntegration; }; -#if ENABLE_SHOW_SCENE_LABELS std::vector sort_object_instances_by_model_order(const Print& print); -#endif // ENABLE_SHOW_SCENE_LABELS } diff --git a/src/libslic3r/PrintBase.cpp b/src/libslic3r/PrintBase.cpp index 812e060c6d..81affe04d4 100644 --- a/src/libslic3r/PrintBase.cpp +++ b/src/libslic3r/PrintBase.cpp @@ -64,7 +64,7 @@ std::string PrintBase::output_filename(const std::string &format, const std::str boost::filesystem::path filename = format.empty() ? cfg.opt_string("input_filename_base") + default_ext : this->placeholder_parser().process(format, 0, &cfg); - if (filename.extension().string() != default_ext) + if (filename.extension().empty()) filename = boost::filesystem::change_extension(filename, default_ext); return filename.string(); } catch (std::runtime_error &err) { diff --git a/src/libslic3r/Technologies.hpp b/src/libslic3r/Technologies.hpp index bb494343bc..8ebfc3472f 100644 --- a/src/libslic3r/Technologies.hpp +++ b/src/libslic3r/Technologies.hpp @@ -47,22 +47,5 @@ //================== #define ENABLE_2_2_0_BETA1 1 -// Enable using Y axis of 3Dconnexion devices as zoom -#define ENABLE_3DCONNEXION_Y_AS_ZOOM (1 && ENABLE_2_2_0_BETA1) - -// Enable a modified version of the toolbar textures where all the icons are separated by 1 pixel -#define ENABLE_MODIFIED_TOOLBAR_TEXTURES (1 && ENABLE_2_2_0_BETA1) - -// Enable configurable paths export (fullpath or not) to 3mf and amf -#define ENABLE_CONFIGURABLE_PATHS_EXPORT_TO_3MF_AND_AMF (1 && ENABLE_2_2_0_BETA1) - -// Enable 6 degrees of freedom camera -#define ENABLE_6DOF_CAMERA (1 && ENABLE_2_2_0_BETA1) - -// Enhance reload from disk to be able to work with 3mf/amf files saved with PrusaSlicer 2.1.0 and earlier -#define ENABLE_BACKWARD_COMPATIBLE_RELOAD_FROM_DISK (1 && ENABLE_2_2_0_BETA1) - -// Enable showing object/instance info with labels into the 3D scene -#define ENABLE_SHOW_SCENE_LABELS (1 && ENABLE_2_2_0_BETA1) #endif // _technologies_h_ diff --git a/src/slic3r/CMakeLists.txt b/src/slic3r/CMakeLists.txt index 918a2c0512..c8589903e1 100644 --- a/src/slic3r/CMakeLists.txt +++ b/src/slic3r/CMakeLists.txt @@ -131,6 +131,7 @@ set(SLIC3R_GUI_SOURCES Utils/Serial.hpp GUI/ConfigWizard.cpp GUI/ConfigWizard.hpp + GUI/ConfigWizard_private.hpp GUI/MsgDialog.cpp GUI/MsgDialog.hpp GUI/UpdateDialogs.cpp diff --git a/src/slic3r/GUI/3DBed.cpp b/src/slic3r/GUI/3DBed.cpp index 00b7f2382c..23acd18ef7 100644 --- a/src/slic3r/GUI/3DBed.cpp +++ b/src/slic3r/GUI/3DBed.cpp @@ -260,11 +260,7 @@ Point Bed3D::point_projection(const Point& point) const return m_polygon.point_projection(point); } -#if ENABLE_6DOF_CAMERA void Bed3D::render(GLCanvas3D& canvas, bool bottom, float scale_factor, bool show_axes) const -#else -void Bed3D::render(GLCanvas3D& canvas, float theta, float scale_factor, bool show_axes) const -#endif // ENABLE_6DOF_CAMERA { m_scale_factor = scale_factor; @@ -275,15 +271,9 @@ void Bed3D::render(GLCanvas3D& canvas, float theta, float scale_factor, bool sho switch (m_type) { -#if ENABLE_6DOF_CAMERA case System: { render_system(canvas, bottom); break; } default: case Custom: { render_custom(canvas, bottom); break; } -#else - case System: { render_system(canvas, theta > 90.0f); break; } - default: - case Custom: { render_custom(canvas, theta > 90.0f); break; } -#endif // ENABLE_6DOF_CAMERA } glsafe(::glDisable(GL_DEPTH_TEST)); diff --git a/src/slic3r/GUI/3DBed.hpp b/src/slic3r/GUI/3DBed.hpp index b1835a919d..3a5f959788 100644 --- a/src/slic3r/GUI/3DBed.hpp +++ b/src/slic3r/GUI/3DBed.hpp @@ -107,11 +107,7 @@ public: bool contains(const Point& point) const; Point point_projection(const Point& point) const; -#if ENABLE_6DOF_CAMERA void render(GLCanvas3D& canvas, bool bottom, float scale_factor, bool show_axes) const; -#else - void render(GLCanvas3D& canvas, float theta, float scale_factor, bool show_axes) const; -#endif // ENABLE_6DOF_CAMERA private: void calc_bounding_boxes() const; diff --git a/src/slic3r/GUI/AppConfig.cpp b/src/slic3r/GUI/AppConfig.cpp index a410f3ad8d..35799e0460 100644 --- a/src/slic3r/GUI/AppConfig.cpp +++ b/src/slic3r/GUI/AppConfig.cpp @@ -61,10 +61,8 @@ void AppConfig::set_defaults() if (get("preset_update").empty()) set("preset_update", "1"); -#if ENABLE_CONFIGURABLE_PATHS_EXPORT_TO_3MF_AND_AMF if (get("export_sources_full_pathnames").empty()) set("export_sources_full_pathnames", "0"); -#endif // ENABLE_CONFIGURABLE_PATHS_EXPORT_TO_3MF_AND_AMF // remove old 'use_legacy_opengl' parameter from this config, if present if (!get("use_legacy_opengl").empty()) @@ -90,10 +88,8 @@ void AppConfig::set_defaults() if (get("use_perspective_camera").empty()) set("use_perspective_camera", "1"); -#if ENABLE_6DOF_CAMERA if (get("use_free_camera").empty()) set("use_free_camera", "0"); -#endif // ENABLE_6DOF_CAMERA // Remove legacy window positions/sizes erase("", "main_frame_maximized"); @@ -284,11 +280,7 @@ void AppConfig::set_recent_projects(const std::vector& recent_proje } } -#if ENABLE_3DCONNEXION_Y_AS_ZOOM void AppConfig::set_mouse_device(const std::string& name, double translation_speed, double translation_deadzone, float rotation_speed, float rotation_deadzone, double zoom_speed) -#else -void AppConfig::set_mouse_device(const std::string& name, double translation_speed, double translation_deadzone, float rotation_speed, float rotation_deadzone) -#endif // ENABLE_3DCONNEXION_Y_AS_ZOOM { std::string key = std::string("mouse_device:") + name; auto it = m_storage.find(key); @@ -300,9 +292,7 @@ void AppConfig::set_mouse_device(const std::string& name, double translation_spe it->second["translation_deadzone"] = std::to_string(translation_deadzone); it->second["rotation_speed"] = std::to_string(rotation_speed); it->second["rotation_deadzone"] = std::to_string(rotation_deadzone); -#if ENABLE_3DCONNEXION_Y_AS_ZOOM it->second["zoom_speed"] = std::to_string(zoom_speed); -#endif // ENABLE_3DCONNEXION_Y_AS_ZOOM } bool AppConfig::get_mouse_device_translation_speed(const std::string& name, double& speed) @@ -365,7 +355,6 @@ bool AppConfig::get_mouse_device_rotation_deadzone(const std::string& name, floa return true; } -#if ENABLE_3DCONNEXION_Y_AS_ZOOM bool AppConfig::get_mouse_device_zoom_speed(const std::string& name, double& speed) { std::string key = std::string("mouse_device:") + name; @@ -380,7 +369,6 @@ bool AppConfig::get_mouse_device_zoom_speed(const std::string& name, double& spe speed = (float)::atof(it_val->second.c_str()); return true; } -#endif // ENABLE_3DCONNEXION_Y_AS_ZOOM void AppConfig::update_config_dir(const std::string &dir) { diff --git a/src/slic3r/GUI/AppConfig.hpp b/src/slic3r/GUI/AppConfig.hpp index 32f1c32c85..c49260173f 100644 --- a/src/slic3r/GUI/AppConfig.hpp +++ b/src/slic3r/GUI/AppConfig.hpp @@ -133,18 +133,12 @@ public: std::vector get_recent_projects() const; void set_recent_projects(const std::vector& recent_projects); -#if ENABLE_3DCONNEXION_Y_AS_ZOOM void set_mouse_device(const std::string& name, double translation_speed, double translation_deadzone, float rotation_speed, float rotation_deadzone, double zoom_speed); -#else - void set_mouse_device(const std::string& name, double translation_speed, double translation_deadzone, float rotation_speed, float rotation_deadzone); -#endif // ENABLE_3DCONNEXION_Y_AS_ZOOM bool get_mouse_device_translation_speed(const std::string& name, double& speed); bool get_mouse_device_translation_deadzone(const std::string& name, double& deadzone); bool get_mouse_device_rotation_speed(const std::string& name, float& speed); bool get_mouse_device_rotation_deadzone(const std::string& name, float& deadzone); -#if ENABLE_3DCONNEXION_Y_AS_ZOOM bool get_mouse_device_zoom_speed(const std::string& name, double& speed); -#endif // ENABLE_3DCONNEXION_Y_AS_ZOOM static const std::string SECTION_FILAMENTS; static const std::string SECTION_MATERIALS; diff --git a/src/slic3r/GUI/Camera.cpp b/src/slic3r/GUI/Camera.cpp index 18075c3f8c..d17ba7cd7c 100644 --- a/src/slic3r/GUI/Camera.cpp +++ b/src/slic3r/GUI/Camera.cpp @@ -7,17 +7,11 @@ #include "GUI_App.hpp" #include "AppConfig.hpp" #if ENABLE_CAMERA_STATISTICS -#if ENABLE_6DOF_CAMERA #include "Mouse3DController.hpp" -#endif // ENABLE_6DOF_CAMERA #endif // ENABLE_CAMERA_STATISTICS #include -#if !ENABLE_6DOF_CAMERA -static const float GIMBALL_LOCK_THETA_MAX = 180.0f; -#endif // !ENABLE_6DOF_CAMERA - // phi / theta angles to orient the camera. static const float VIEW_DEFAULT[2] = { 45.0f, 45.0f }; static const float VIEW_LEFT[2] = { 90.0f, 90.0f }; @@ -41,29 +35,17 @@ double Camera::FrustrumZMargin = 10.0; double Camera::MaxFovDeg = 60.0; Camera::Camera() -#if ENABLE_6DOF_CAMERA : requires_zoom_to_bed(false) -#else - : phi(45.0f) - , requires_zoom_to_bed(false) - , inverted_phi(false) -#endif // ENABLE_6DOF_CAMERA , m_type(Perspective) , m_target(Vec3d::Zero()) -#if ENABLE_6DOF_CAMERA , m_zenit(45.0f) -#else - , m_theta(45.0f) -#endif // ENABLE_6DOF_CAMERA , m_zoom(1.0) , m_distance(DefaultDistance) , m_gui_scale(1.0) , m_view_matrix(Transform3d::Identity()) , m_projection_matrix(Transform3d::Identity()) { -#if ENABLE_6DOF_CAMERA set_default_orientation(); -#endif // ENABLE_6DOF_CAMERA } std::string Camera::get_type_as_string() const @@ -103,36 +85,9 @@ void Camera::select_next_type() void Camera::set_target(const Vec3d& target) { -#if ENABLE_6DOF_CAMERA translate_world(target - m_target); -#else - BoundingBoxf3 test_box = m_scene_box; - test_box.translate(-m_scene_box.center()); - // We may let this factor be customizable - static const double ScaleFactor = 1.5; - test_box.scale(ScaleFactor); - test_box.translate(m_scene_box.center()); - - m_target(0) = clamp(test_box.min(0), test_box.max(0), target(0)); - m_target(1) = clamp(test_box.min(1), test_box.max(1), target(1)); - m_target(2) = clamp(test_box.min(2), test_box.max(2), target(2)); -#endif // ENABLE_6DOF_CAMERA } -#if !ENABLE_6DOF_CAMERA -void Camera::set_theta(float theta, bool apply_limit) -{ - if (apply_limit) - m_theta = clamp(0.0f, GIMBALL_LOCK_THETA_MAX, theta); - else - { - m_theta = fmod(theta, 360.0f); - if (m_theta < 0.0f) - m_theta += 360.0f; - } -} -#endif // !ENABLE_6DOF_CAMERA - void Camera::update_zoom(double delta_zoom) { set_zoom(m_zoom / (1.0 - std::max(std::min(delta_zoom, 4.0), -4.0) * 0.1)); @@ -149,7 +104,6 @@ void Camera::set_zoom(double zoom) m_zoom = std::min(zoom, max_zoom()); } -#if ENABLE_6DOF_CAMERA void Camera::select_view(const std::string& direction) { if (direction == "iso") @@ -167,36 +121,6 @@ void Camera::select_view(const std::string& direction) else if (direction == "rear") look_at(m_target + m_distance * Vec3d::UnitY(), m_target, Vec3d::UnitZ()); } -#else -bool Camera::select_view(const std::string& direction) -{ - const float* dir_vec = nullptr; - - if (direction == "iso") - dir_vec = VIEW_DEFAULT; - else if (direction == "left") - dir_vec = VIEW_LEFT; - else if (direction == "right") - dir_vec = VIEW_RIGHT; - else if (direction == "top") - dir_vec = VIEW_TOP; - else if (direction == "bottom") - dir_vec = VIEW_BOTTOM; - else if (direction == "front") - dir_vec = VIEW_FRONT; - else if (direction == "rear") - dir_vec = VIEW_REAR; - - if (dir_vec != nullptr) - { - phi = dir_vec[0]; - set_theta(dir_vec[1], false); - return true; - } - else - return false; -} -#endif // ENABLE_6DOF_CAMERA double Camera::get_fov() const { @@ -218,102 +142,53 @@ void Camera::apply_viewport(int x, int y, unsigned int w, unsigned int h) const void Camera::apply_view_matrix() const { -#if !ENABLE_6DOF_CAMERA - double theta_rad = Geometry::deg2rad(-(double)m_theta); - double phi_rad = Geometry::deg2rad((double)phi); - double sin_theta = ::sin(theta_rad); - Vec3d camera_pos = m_target + m_distance * Vec3d(sin_theta * ::sin(phi_rad), sin_theta * ::cos(phi_rad), ::cos(theta_rad)); -#endif // !ENABLE_6DOF_CAMERA - glsafe(::glMatrixMode(GL_MODELVIEW)); glsafe(::glLoadIdentity()); - -#if ENABLE_6DOF_CAMERA glsafe(::glMultMatrixd(m_view_matrix.data())); -#else - glsafe(::glRotatef(-m_theta, 1.0f, 0.0f, 0.0f)); // pitch - glsafe(::glRotatef(phi, 0.0f, 0.0f, 1.0f)); // yaw - - glsafe(::glTranslated(-camera_pos(0), -camera_pos(1), -camera_pos(2))); - - glsafe(::glGetDoublev(GL_MODELVIEW_MATRIX, m_view_matrix.data())); -#endif // ENABLE_6DOF_CAMERA } void Camera::apply_projection(const BoundingBoxf3& box, double near_z, double far_z) const { -#if !ENABLE_6DOF_CAMERA - set_distance(DefaultDistance); -#endif // !ENABLE_6DOF_CAMERA - double w = 0.0; double h = 0.0; -#if ENABLE_6DOF_CAMERA double old_distance = m_distance; m_frustrum_zs = calc_tight_frustrum_zs_around(box); if (m_distance != old_distance) // the camera has been moved re-apply view matrix apply_view_matrix(); -#else - while (true) + + if (near_z > 0.0) + m_frustrum_zs.first = std::max(std::min(m_frustrum_zs.first, near_z), FrustrumMinNearZ); + + if (far_z > 0.0) + m_frustrum_zs.second = std::max(m_frustrum_zs.second, far_z); + + w = 0.5 * (double)m_viewport[2]; + h = 0.5 * (double)m_viewport[3]; + + double inv_zoom = get_inv_zoom(); + w *= inv_zoom; + h *= inv_zoom; + + switch (m_type) { - m_frustrum_zs = calc_tight_frustrum_zs_around(box); -#endif // !ENABLE_6DOF_CAMERA - - if (near_z > 0.0) - m_frustrum_zs.first = std::max(std::min(m_frustrum_zs.first, near_z), FrustrumMinNearZ); - - if (far_z > 0.0) - m_frustrum_zs.second = std::max(m_frustrum_zs.second, far_z); - - w = 0.5 * (double)m_viewport[2]; - h = 0.5 * (double)m_viewport[3]; - - double inv_zoom = get_inv_zoom(); - w *= inv_zoom; - h *= inv_zoom; - - switch (m_type) - { - default: - case Ortho: - { - m_gui_scale = 1.0; - break; - } - case Perspective: - { - // scale near plane to keep w and h constant on the plane at z = m_distance - double scale = m_frustrum_zs.first / m_distance; - w *= scale; - h *= scale; - m_gui_scale = scale; - break; - } - } - -#if !ENABLE_6DOF_CAMERA - if (m_type == Perspective) - { - double fov_deg = Geometry::rad2deg(2.0 * std::atan(h / m_frustrum_zs.first)); - - // adjust camera distance to keep fov in a limited range - if (fov_deg > MaxFovDeg) - { - double delta_z = h / ::tan(0.5 * Geometry::deg2rad(MaxFovDeg)) - m_frustrum_zs.first; - if (delta_z > 0.001) - set_distance(m_distance + delta_z); - else - break; - } - else - break; - } - else - break; + default: + case Ortho: + { + m_gui_scale = 1.0; + break; + } + case Perspective: + { + // scale near plane to keep w and h constant on the plane at z = m_distance + double scale = m_frustrum_zs.first / m_distance; + w *= scale; + h *= scale; + m_gui_scale = scale; + break; + } } -#endif // !ENABLE_6DOF_CAMERA glsafe(::glMatrixMode(GL_PROJECTION)); glsafe(::glLoadIdentity()); @@ -338,22 +213,14 @@ void Camera::apply_projection(const BoundingBoxf3& box, double near_z, double fa } #if ENABLE_THUMBNAIL_GENERATOR -#if ENABLE_6DOF_CAMERA void Camera::zoom_to_box(const BoundingBoxf3& box, double margin_factor) #else -void Camera::zoom_to_box(const BoundingBoxf3& box, int canvas_w, int canvas_h, double margin_factor) -#endif // ENABLE_6DOF_CAMERA -#else void Camera::zoom_to_box(const BoundingBoxf3& box, int canvas_w, int canvas_h) #endif // ENABLE_THUMBNAIL_GENERATOR { // Calculate the zoom factor needed to adjust the view around the given box. #if ENABLE_THUMBNAIL_GENERATOR -#if ENABLE_6DOF_CAMERA double zoom = calc_zoom_to_bounding_box_factor(box, margin_factor); -#else - double zoom = calc_zoom_to_bounding_box_factor(box, canvas_w, canvas_h, margin_factor); -#endif // ENABLE_6DOF_CAMERA #else double zoom = calc_zoom_to_bounding_box_factor(box, canvas_w, canvas_h); #endif // ENABLE_THUMBNAIL_GENERATOR @@ -361,36 +228,20 @@ void Camera::zoom_to_box(const BoundingBoxf3& box, int canvas_w, int canvas_h) { m_zoom = zoom; // center view around box center -#if ENABLE_6DOF_CAMERA set_target(box.center()); -#else - m_target = box.center(); -#endif // ENABLE_6DOF_CAMERA } } #if ENABLE_THUMBNAIL_GENERATOR -#if ENABLE_6DOF_CAMERA void Camera::zoom_to_volumes(const GLVolumePtrs& volumes, double margin_factor) -#else -void Camera::zoom_to_volumes(const GLVolumePtrs& volumes, int canvas_w, int canvas_h, double margin_factor) -#endif // ENABLE_6DOF_CAMERA { Vec3d center; -#if ENABLE_6DOF_CAMERA double zoom = calc_zoom_to_volumes_factor(volumes, center, margin_factor); -#else - double zoom = calc_zoom_to_volumes_factor(volumes, canvas_w, canvas_h, center, margin_factor); -#endif // ENABLE_6DOF_CAMERA if (zoom > 0.0) { m_zoom = zoom; // center view around the calculated center -#if ENABLE_6DOF_CAMERA set_target(center); -#else - m_target = center; -#endif // ENABLE_6DOF_CAMERA } } #endif // ENABLE_THUMBNAIL_GENERATOR @@ -402,18 +253,15 @@ void Camera::debug_render() const imgui.begin(std::string("Camera statistics"), ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse); std::string type = get_type_as_string(); -#if ENABLE_6DOF_CAMERA if (wxGetApp().plater()->get_mouse3d_controller().is_running() || (wxGetApp().app_config->get("use_free_camera") == "1")) type += "/free"; else type += "/constrained"; -#endif // ENABLE_6DOF_CAMERA + Vec3f position = get_position().cast(); Vec3f target = m_target.cast(); float distance = (float)get_distance(); -#if ENABLE_6DOF_CAMERA float zenit = (float)m_zenit; -#endif // ENABLE_6DOF_CAMERA Vec3f forward = get_dir_forward().cast(); Vec3f right = get_dir_right().cast(); Vec3f up = get_dir_up().cast(); @@ -430,10 +278,8 @@ void Camera::debug_render() const ImGui::InputFloat3("Position", position.data(), "%.6f", ImGuiInputTextFlags_ReadOnly); ImGui::InputFloat3("Target", target.data(), "%.6f", ImGuiInputTextFlags_ReadOnly); ImGui::InputFloat("Distance", &distance, 0.0f, 0.0f, "%.6f", ImGuiInputTextFlags_ReadOnly); -#if ENABLE_6DOF_CAMERA ImGui::Separator(); ImGui::InputFloat("Zenit", &zenit, 0.0f, 0.0f, "%.6f", ImGuiInputTextFlags_ReadOnly); -#endif // ENABLE_6DOF_CAMERA ImGui::Separator(); ImGui::InputFloat3("Forward", forward.data(), "%.6f", ImGuiInputTextFlags_ReadOnly); ImGui::InputFloat3("Right", right.data(), "%.6f", ImGuiInputTextFlags_ReadOnly); @@ -453,7 +299,6 @@ void Camera::debug_render() const } #endif // ENABLE_CAMERA_STATISTICS -#if ENABLE_6DOF_CAMERA void Camera::translate_world(const Vec3d& displacement) { Vec3d new_target = validate_target(m_target + displacement); @@ -524,15 +369,10 @@ void Camera::rotate_local_around_pivot(const Vec3d& rotation_rad, const Vec3d& p translate_world(center); update_zenit(); } -#endif // ENABLE_6DOF_CAMERA double Camera::min_zoom() const { -#if ENABLE_6DOF_CAMERA return 0.7 * calc_zoom_to_bounding_box_factor(m_scene_box); -#else - return 0.7 * calc_zoom_to_bounding_box_factor(m_scene_box, m_viewport[2], m_viewport[3]); -#endif // ENABLE_6DOF_CAMERA } std::pair Camera::calc_tight_frustrum_zs_around(const BoundingBoxf3& box) const @@ -540,62 +380,45 @@ std::pair Camera::calc_tight_frustrum_zs_around(const BoundingBo std::pair ret; auto& [near_z, far_z] = ret; -#if !ENABLE_6DOF_CAMERA - while (true) + // box in eye space + BoundingBoxf3 eye_box = box.transformed(m_view_matrix); + near_z = -eye_box.max(2); + far_z = -eye_box.min(2); + + // apply margin + near_z -= FrustrumZMargin; + far_z += FrustrumZMargin; + + // ensure min size + if (far_z - near_z < FrustrumMinZRange) { -#endif // !ENABLE_6DOF_CAMERA - // box in eye space - BoundingBoxf3 eye_box = box.transformed(m_view_matrix); - near_z = -eye_box.max(2); - far_z = -eye_box.min(2); - - // apply margin - near_z -= FrustrumZMargin; - far_z += FrustrumZMargin; - - // ensure min size - if (far_z - near_z < FrustrumMinZRange) - { - double mid_z = 0.5 * (near_z + far_z); - double half_size = 0.5 * FrustrumMinZRange; - near_z = mid_z - half_size; - far_z = mid_z + half_size; - } - -#if ENABLE_6DOF_CAMERA - if (near_z < FrustrumMinNearZ) - { - float delta = FrustrumMinNearZ - near_z; - set_distance(m_distance + delta); - near_z += delta; - far_z += delta; - } - else if ((near_z > 2.0 * FrustrumMinNearZ) && (m_distance > DefaultDistance)) - { - float delta = m_distance - DefaultDistance; - set_distance(DefaultDistance); - near_z -= delta; - far_z -= delta; - } -#else - if (near_z >= FrustrumMinNearZ) - break; - - // ensure min near z - set_distance(m_distance + FrustrumMinNearZ - near_z); + double mid_z = 0.5 * (near_z + far_z); + double half_size = 0.5 * FrustrumMinZRange; + near_z = mid_z - half_size; + far_z = mid_z + half_size; + } + + if (near_z < FrustrumMinNearZ) + { + float delta = FrustrumMinNearZ - near_z; + set_distance(m_distance + delta); + near_z += delta; + far_z += delta; + } + else if ((near_z > 2.0 * FrustrumMinNearZ) && (m_distance > DefaultDistance)) + { + float delta = m_distance - DefaultDistance; + set_distance(DefaultDistance); + near_z -= delta; + far_z -= delta; } -#endif // ENABLE_6DOF_CAMERA return ret; } #if ENABLE_THUMBNAIL_GENERATOR -#if ENABLE_6DOF_CAMERA double Camera::calc_zoom_to_bounding_box_factor(const BoundingBoxf3& box, double margin_factor) const #else -double Camera::calc_zoom_to_bounding_box_factor(const BoundingBoxf3& box, int canvas_w, int canvas_h, double margin_factor) const -#endif // ENABLE_6DOF_CAMERA -#else double Camera::calc_zoom_to_bounding_box_factor(const BoundingBoxf3& box, int canvas_w, int canvas_h) const #endif // ENABLE_THUMBNAIL_GENERATOR { @@ -606,11 +429,6 @@ double Camera::calc_zoom_to_bounding_box_factor(const BoundingBoxf3& box, int ca // project the box vertices on a plane perpendicular to the camera forward axis // then calculates the vertices coordinate on this plane along the camera xy axes -#if !ENABLE_6DOF_CAMERA - // ensure that the view matrix is updated - apply_view_matrix(); -#endif // !ENABLE_6DOF_CAMERA - Vec3d right = get_dir_right(); Vec3d up = get_dir_up(); Vec3d forward = get_dir_forward(); @@ -666,19 +484,11 @@ double Camera::calc_zoom_to_bounding_box_factor(const BoundingBoxf3& box, int ca dx *= margin_factor; dy *= margin_factor; -#if ENABLE_6DOF_CAMERA return std::min((double)m_viewport[2] / dx, (double)m_viewport[3] / dy); -#else - return std::min((double)canvas_w / dx, (double)canvas_h / dy); -#endif // ENABLE_6DOF_CAMERA } #if ENABLE_THUMBNAIL_GENERATOR -#if ENABLE_6DOF_CAMERA double Camera::calc_zoom_to_volumes_factor(const GLVolumePtrs& volumes, Vec3d& center, double margin_factor) const -#else -double Camera::calc_zoom_to_volumes_factor(const GLVolumePtrs& volumes, int canvas_w, int canvas_h, Vec3d& center, double margin_factor) const -#endif // ENABLE_6DOF_CAMERA { if (volumes.empty()) return -1.0; @@ -686,11 +496,6 @@ double Camera::calc_zoom_to_volumes_factor(const GLVolumePtrs& volumes, int canv // project the volumes vertices on a plane perpendicular to the camera forward axis // then calculates the vertices coordinate on this plane along the camera xy axes -#if !ENABLE_6DOF_CAMERA - // ensure that the view matrix is updated - apply_view_matrix(); -#endif // !ENABLE_6DOF_CAMERA - Vec3d right = get_dir_right(); Vec3d up = get_dir_up(); Vec3d forward = get_dir_forward(); @@ -741,29 +546,19 @@ double Camera::calc_zoom_to_volumes_factor(const GLVolumePtrs& volumes, int canv if ((dx <= 0.0) || (dy <= 0.0)) return -1.0f; -#if ENABLE_6DOF_CAMERA return std::min((double)m_viewport[2] / dx, (double)m_viewport[3] / dy); -#else - return std::min((double)canvas_w / dx, (double)canvas_h / dy); -#endif // ENABLE_6DOF_CAMERA } #endif // ENABLE_THUMBNAIL_GENERATOR void Camera::set_distance(double distance) const { -#if ENABLE_6DOF_CAMERA if (m_distance != distance) { m_view_matrix.translate((distance - m_distance) * get_dir_forward()); m_distance = distance; } -#else - m_distance = distance; - apply_view_matrix(); -#endif // ENABLE_6DOF_CAMERA } -#if ENABLE_6DOF_CAMERA void Camera::look_at(const Vec3d& position, const Vec3d& target, const Vec3d& up) { Vec3d unit_z = (position - target).normalized(); @@ -825,7 +620,6 @@ void Camera::update_zenit() { m_zenit = Geometry::rad2deg(0.5 * M_PI - std::acos(std::clamp(-get_dir_forward().dot(Vec3d::UnitZ()), -1.0, 1.0))); } -#endif // ENABLE_6DOF_CAMERA } // GUI } // Slic3r diff --git a/src/slic3r/GUI/Camera.hpp b/src/slic3r/GUI/Camera.hpp index cda6b77b4b..0ddaa8ff38 100644 --- a/src/slic3r/GUI/Camera.hpp +++ b/src/slic3r/GUI/Camera.hpp @@ -30,20 +30,12 @@ struct Camera Num_types }; -#if !ENABLE_6DOF_CAMERA - float phi; - bool inverted_phi; -#endif // !ENABLE_6DOF_CAMERA bool requires_zoom_to_bed; private: EType m_type; Vec3d m_target; -#if ENABLE_6DOF_CAMERA float m_zenit; -#else - float m_theta; -#endif // ENABLE_6DOF_CAMERA double m_zoom; // Distance between camera position and camera target measured along the camera Z axis mutable double m_distance; @@ -69,18 +61,9 @@ public: const Vec3d& get_target() const { return m_target; } void set_target(const Vec3d& target); -#if ENABLE_6DOF_CAMERA double get_distance() const { return (get_position() - m_target).norm(); } -#else - double get_distance() const { return m_distance; } -#endif // ENABLE_6DOF_CAMERA double get_gui_scale() const { return m_gui_scale; } -#if !ENABLE_6DOF_CAMERA - float get_theta() const { return m_theta; } - void set_theta(float theta, bool apply_limit); -#endif // !ENABLE_6DOF_CAMERA - double get_zoom() const { return m_zoom; } double get_inv_zoom() const { assert(m_zoom != 0.0); return 1.0 / m_zoom; } void update_zoom(double delta_zoom); @@ -89,11 +72,7 @@ public: const BoundingBoxf3& get_scene_box() const { return m_scene_box; } void set_scene_box(const BoundingBoxf3& box) { m_scene_box = box; } -#if ENABLE_6DOF_CAMERA void select_view(const std::string& direction); -#else - bool select_view(const std::string& direction); -#endif // ENABLE_6DOF_CAMERA const std::array& get_viewport() const { return m_viewport; } const Transform3d& get_view_matrix() const { return m_view_matrix; } @@ -117,13 +96,8 @@ public: void apply_projection(const BoundingBoxf3& box, double near_z = -1.0, double far_z = -1.0) const; #if ENABLE_THUMBNAIL_GENERATOR -#if ENABLE_6DOF_CAMERA void zoom_to_box(const BoundingBoxf3& box, double margin_factor = DefaultZoomToBoxMarginFactor); void zoom_to_volumes(const GLVolumePtrs& volumes, double margin_factor = DefaultZoomToVolumesMarginFactor); -#else - void zoom_to_box(const BoundingBoxf3& box, int canvas_w, int canvas_h, double margin_factor = DefaultZoomToBoxMarginFactor); - void zoom_to_volumes(const GLVolumePtrs& volumes, int canvas_w, int canvas_h, double margin_factor = DefaultZoomToVolumesMarginFactor); -#endif // ENABLE_6DOF_CAMERA #else void zoom_to_box(const BoundingBoxf3& box, int canvas_w, int canvas_h); #endif // ENABLE_THUMBNAIL_GENERATOR @@ -132,7 +106,6 @@ public: void debug_render() const; #endif // ENABLE_CAMERA_STATISTICS -#if ENABLE_6DOF_CAMERA // translate the camera in world space void translate_world(const Vec3d& displacement); @@ -149,7 +122,7 @@ public: // returns true if the camera z axis (forward) is pointing in the negative direction of the world z axis bool is_looking_downward() const { return get_dir_forward().dot(Vec3d::UnitZ()) < 0.0; } -#endif // ENABLE_6DOF_CAMERA + double max_zoom() const { return 100.0; } double min_zoom() const; @@ -158,24 +131,17 @@ private: // the camera MUST be outside of the bounding box in eye coordinate of the given box std::pair calc_tight_frustrum_zs_around(const BoundingBoxf3& box) const; #if ENABLE_THUMBNAIL_GENERATOR -#if ENABLE_6DOF_CAMERA double calc_zoom_to_bounding_box_factor(const BoundingBoxf3& box, double margin_factor = DefaultZoomToBoxMarginFactor) const; double calc_zoom_to_volumes_factor(const GLVolumePtrs& volumes, Vec3d& center, double margin_factor = DefaultZoomToVolumesMarginFactor) const; -#else - double calc_zoom_to_bounding_box_factor(const BoundingBoxf3& box, int canvas_w, int canvas_h, double margin_factor = DefaultZoomToBoxMarginFactor) const; - double calc_zoom_to_volumes_factor(const GLVolumePtrs& volumes, int canvas_w, int canvas_h, Vec3d& center, double margin_factor = DefaultZoomToVolumesMarginFactor) const; -#endif // ENABLE_6DOF_CAMERA #else double calc_zoom_to_bounding_box_factor(const BoundingBoxf3& box, int canvas_w, int canvas_h) const; #endif // ENABLE_THUMBNAIL_GENERATOR void set_distance(double distance) const; -#if ENABLE_6DOF_CAMERA void look_at(const Vec3d& position, const Vec3d& target, const Vec3d& up); void set_default_orientation(); Vec3d validate_target(const Vec3d& target) const; void update_zenit(); -#endif // ENABLE_6DOF_CAMERA }; } // GUI diff --git a/src/slic3r/GUI/ConfigWizard.cpp b/src/slic3r/GUI/ConfigWizard.cpp index 9edc3ac398..99353fbd99 100644 --- a/src/slic3r/GUI/ConfigWizard.cpp +++ b/src/slic3r/GUI/ConfigWizard.cpp @@ -793,7 +793,6 @@ PageUpdate::PageUpdate(ConfigWizard *parent) box_presets->Bind(wxEVT_CHECKBOX, [this](wxCommandEvent &event) { this->preset_update = event.IsChecked(); }); } -#if ENABLE_CONFIGURABLE_PATHS_EXPORT_TO_3MF_AND_AMF PageReloadFromDisk::PageReloadFromDisk(ConfigWizard* parent) : ConfigWizardPage(parent, _(L("Reload from disk")), _(L("Reload from disk"))) , full_pathnames(false) @@ -808,7 +807,6 @@ PageReloadFromDisk::PageReloadFromDisk(ConfigWizard* parent) box_pathnames->Bind(wxEVT_CHECKBOX, [this](wxCommandEvent& event) { this->full_pathnames = event.IsChecked(); }); } -#endif // ENABLE_CONFIGURABLE_PATHS_EXPORT_TO_3MF_AND_AMF PageMode::PageMode(ConfigWizard *parent) : ConfigWizardPage(parent, _(L("View mode")), _(L("View mode"))) @@ -1401,9 +1399,7 @@ void ConfigWizard::priv::load_pages() btn_finish->Enable(any_fff_selected || any_sla_selected); index->add_page(page_update); -#if ENABLE_CONFIGURABLE_PATHS_EXPORT_TO_3MF_AND_AMF index->add_page(page_reload_from_disk); -#endif // ENABLE_CONFIGURABLE_PATHS_EXPORT_TO_3MF_AND_AMF index->add_page(page_mode); index->go_to(former_active); // Will restore the active item/page if possible @@ -1853,10 +1849,7 @@ void ConfigWizard::priv::apply_config(AppConfig *app_config, PresetBundle *prese } app_config->set("version_check", page_update->version_check ? "1" : "0"); app_config->set("preset_update", page_update->preset_update ? "1" : "0"); - -#if ENABLE_CONFIGURABLE_PATHS_EXPORT_TO_3MF_AND_AMF app_config->set("export_sources_full_pathnames", page_reload_from_disk->full_pathnames ? "1" : "0"); -#endif // ENABLE_CONFIGURABLE_PATHS_EXPORT_TO_3MF_AND_AMF page_mode->serialize_mode(app_config); @@ -2017,9 +2010,7 @@ ConfigWizard::ConfigWizard(wxWindow *parent) p->add_page(p->page_custom = new PageCustom(this)); p->add_page(p->page_update = new PageUpdate(this)); -#if ENABLE_CONFIGURABLE_PATHS_EXPORT_TO_3MF_AND_AMF p->add_page(p->page_reload_from_disk = new PageReloadFromDisk(this)); -#endif // ENABLE_CONFIGURABLE_PATHS_EXPORT_TO_3MF_AND_AMF p->add_page(p->page_mode = new PageMode(this)); p->add_page(p->page_firmware = new PageFirmware(this)); p->add_page(p->page_bed = new PageBedShape(this)); diff --git a/src/slic3r/GUI/ConfigWizard_private.hpp b/src/slic3r/GUI/ConfigWizard_private.hpp index 9c14633c9f..e056b0b9e4 100644 --- a/src/slic3r/GUI/ConfigWizard_private.hpp +++ b/src/slic3r/GUI/ConfigWizard_private.hpp @@ -305,16 +305,12 @@ struct PageUpdate: ConfigWizardPage PageUpdate(ConfigWizard *parent); }; -//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -#if ENABLE_CONFIGURABLE_PATHS_EXPORT_TO_3MF_AND_AMF struct PageReloadFromDisk : ConfigWizardPage { bool full_pathnames; PageReloadFromDisk(ConfigWizard* parent); }; -#endif // ENABLE_CONFIGURABLE_PATHS_EXPORT_TO_3MF_AND_AMF -//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ struct PageMode: ConfigWizardPage { @@ -470,11 +466,7 @@ struct ConfigWizard::priv PageMaterials *page_sla_materials = nullptr; PageCustom *page_custom = nullptr; PageUpdate *page_update = nullptr; -//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -#if ENABLE_CONFIGURABLE_PATHS_EXPORT_TO_3MF_AND_AMF PageReloadFromDisk *page_reload_from_disk = nullptr; -#endif // ENABLE_CONFIGURABLE_PATHS_EXPORT_TO_3MF_AND_AMF -//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ PageMode *page_mode = nullptr; PageVendors *page_vendors = nullptr; Pages3rdparty pages_3rdparty; diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index ac6071d3f9..b5319a2f18 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -6,9 +6,6 @@ #include "polypartition.h" #include "libslic3r/ClipperUtils.hpp" #include "libslic3r/PrintConfig.hpp" -#if ENABLE_SHOW_SCENE_LABELS -#include "libslic3r/GCode.hpp" -#endif // ENABLE_SHOW_SCENE_LABELS #include "libslic3r/GCode/PreviewData.hpp" #if ENABLE_THUMBNAIL_GENERATOR #include "libslic3r/GCode/ThumbnailData.hpp" @@ -68,9 +65,7 @@ #include #endif // ENABLE_RENDER_STATISTICS -#if ENABLE_SHOW_SCENE_LABELS #include -#endif // ENABLE_SHOW_SCENE_LABELS static const float TRACKBALLSIZE = 0.8f; @@ -1237,7 +1232,6 @@ void GLCanvas3D::LegendTexture::render(const GLCanvas3D& canvas) const } } -#if ENABLE_SHOW_SCENE_LABELS void GLCanvas3D::Labels::render(const std::vector& sorted_instances) const { if (!m_enabled || !is_shown()) @@ -1370,7 +1364,6 @@ void GLCanvas3D::Labels::render(const std::vector& sorted_ ImGui::PopStyleVar(2); } } -#endif // ENABLE_SHOW_SCENE_LABELS wxDEFINE_EVENT(EVT_GLCANVAS_SCHEDULE_BACKGROUND_PROCESS, SimpleEvent); wxDEFINE_EVENT(EVT_GLCANVAS_OBJECT_SELECT, SimpleEvent); @@ -1441,9 +1434,7 @@ GLCanvas3D::GLCanvas3D(wxGLCanvas* canvas, Bed3D& bed, Camera& camera, GLToolbar , m_show_picking_texture(false) #endif // ENABLE_RENDER_PICKING_PASS , m_render_sla_auxiliaries(true) -#if ENABLE_SHOW_SCENE_LABELS , m_labels(*this) -#endif // ENABLE_SHOW_SCENE_LABELS { if (m_canvas != nullptr) { m_timer.SetOwner(m_canvas); @@ -1809,14 +1800,9 @@ void GLCanvas3D::zoom_to_selection() void GLCanvas3D::select_view(const std::string& direction) { -#if ENABLE_6DOF_CAMERA m_camera.select_view(direction); if (m_canvas != nullptr) m_canvas->Refresh(); -#else - if (m_camera.select_view(direction) && (m_canvas != nullptr)) - m_canvas->Refresh(); -#endif // ENABLE_6DOF_CAMERA } void GLCanvas3D::update_volumes_colors_by_extruder() @@ -1857,13 +1843,11 @@ void GLCanvas3D::render() } const Size& cnv_size = get_canvas_size(); -#if ENABLE_6DOF_CAMERA // Probably due to different order of events on Linux/GTK2, when one switched from 3D scene // to preview, this was called before canvas had its final size. It reported zero width // and the viewport was set incorrectly, leading to tripping glAsserts further down // the road (in apply_projection). That's why the minimum size is forced to 10. m_camera.apply_viewport(0, 0, std::max(10u, (unsigned int)cnv_size.get_width()), std::max(10u, (unsigned int)cnv_size.get_height())); -#endif // ENABLE_6DOF_CAMERA if (m_camera.requires_zoom_to_bed) { @@ -1880,13 +1864,6 @@ void GLCanvas3D::render() GLfloat position_top[4] = { -0.5f, -0.5f, 1.0f, 0.0f }; glsafe(::glLightfv(GL_LIGHT0, GL_POSITION, position_top)); -#if !ENABLE_6DOF_CAMERA - float theta = m_camera.get_theta(); - if (theta > 180.f) - // absolute value of the rotation - theta = 360.f - theta; -#endif // !ENABLE_6DOF_CAMERA - wxGetApp().imgui()->new_frame(); if (m_picking_enabled) @@ -1910,11 +1887,7 @@ void GLCanvas3D::render() _render_objects(); _render_sla_slices(); _render_selection(); -#if ENABLE_6DOF_CAMERA _render_bed(!m_camera.is_looking_downward(), true); -#else - _render_bed(theta, true); -#endif // ENABLE_6DOF_CAMERA #if ENABLE_RENDER_SELECTION_CENTER _render_selection_center(); @@ -2826,10 +2799,8 @@ void GLCanvas3D::on_char(wxKeyEvent& evt) case 'a': { post_event(SimpleEvent(EVT_GLCANVAS_ARRANGE)); break; } case 'B': case 'b': { zoom_to_bed(); break; } -#if ENABLE_SHOW_SCENE_LABELS case 'E': case 'e': { m_labels.show(!m_labels.is_shown()); m_dirty = true; break; } -#endif // ENABLE_SHOW_SCENE_LABELS case 'I': case 'i': { _update_camera_zoom(1.0); break; } case 'K': @@ -3429,11 +3400,7 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt) // we do not want to translate objects if the user just clicked on an object while pressing shift to remove it from the selection and then drag if (m_selection.contains_volume(get_first_hover_volume_idx())) { -#if ENABLE_6DOF_CAMERA if (std::abs(m_camera.get_dir_forward()(2)) < EPSILON) -#else - if (m_camera.get_theta() == 90.0f) -#endif // ENABLE_6DOF_CAMERA { // side view -> move selected volumes orthogonally to camera view direction Linef3 ray = mouse_ray(pos); @@ -3493,18 +3460,13 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt) if (m_hover_volume_idxs.empty() && m_mouse.is_start_position_3D_defined()) { const Vec3d& orig = m_mouse.drag.start_position_3D; -#if ENABLE_6DOF_CAMERA double x = Geometry::deg2rad(pos(0) - orig(0)) * (double)TRACKBALLSIZE; double y = Geometry::deg2rad(pos(1) - orig(1)) * (double)TRACKBALLSIZE; if (wxGetApp().plater()->get_mouse3d_controller().is_running() || (wxGetApp().app_config->get("use_free_camera") == "1")) m_camera.rotate_local_around_target(Vec3d(y, x, 0.0)); else m_camera.rotate_on_sphere(x, y, wxGetApp().preset_bundle->printers.get_edited_preset().printer_technology() != ptSLA); -#else - float sign = m_camera.inverted_phi ? -1.0f : 1.0f; - m_camera.phi += sign * ((float)pos(0) - (float)orig(0)) * TRACKBALLSIZE; - m_camera.set_theta(m_camera.get_theta() - ((float)pos(1) - (float)orig(1)) * TRACKBALLSIZE, wxGetApp().preset_bundle->printers.get_edited_preset().printer_technology() != ptSLA); -#endif // ENABLE_6DOF_CAMERA + m_dirty = true; } m_mouse.drag.start_position_3D = Vec3d((double)pos(0), (double)pos(1), 0.0); @@ -3554,11 +3516,6 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt) if (!evt.ShiftDown() && m_picking_enabled) deselect_all(); } -#if !ENABLE_6DOF_CAMERA - else if (evt.LeftUp() && m_mouse.dragging) - // Flips X mouse deltas if bed is upside down - m_camera.inverted_phi = (m_camera.get_dir_up()(2) < 0.0); -#endif // !ENABLE_6DOF_CAMERA else if (evt.RightUp()) { m_mouse.position = pos.cast(); @@ -4163,16 +4120,9 @@ void GLCanvas3D::_render_thumbnail_internal(ThumbnailData& thumbnail_data, bool Camera camera; camera.set_type(Camera::Ortho); -#if ENABLE_6DOF_CAMERA camera.set_scene_box(scene_bounding_box()); -#endif // ENABLE_6DOF_CAMERA -#if ENABLE_6DOF_CAMERA camera.apply_viewport(0, 0, thumbnail_data.width, thumbnail_data.height); camera.zoom_to_volumes(visible_volumes); -#else - camera.zoom_to_volumes(visible_volumes, thumbnail_data.width, thumbnail_data.height); - camera.apply_viewport(0, 0, thumbnail_data.width, thumbnail_data.height); -#endif // ENABLE_6DOF_CAMERA camera.apply_view_matrix(); double near_z = -1.0; @@ -4221,11 +4171,7 @@ void GLCanvas3D::_render_thumbnail_internal(ThumbnailData& thumbnail_data, bool glsafe(::glDisable(GL_DEPTH_TEST)); if (show_bed) -#if ENABLE_6DOF_CAMERA _render_bed(!camera.is_looking_downward(), false); -#else - _render_bed(camera.get_theta(), false); -#endif // ENABLE_6DOF_CAMERA if (transparent_background) glsafe(::glClearColor(1.0f, 1.0f, 1.0f, 1.0f)); @@ -4762,11 +4708,6 @@ void GLCanvas3D::_resize(unsigned int w, unsigned int h) // ensures that this canvas is current _set_current(); - -#if !ENABLE_6DOF_CAMERA - // updates camera - m_camera.apply_viewport(0, 0, w, h); -#endif // !ENABLE_6DOF_CAMERA } BoundingBoxf3 GLCanvas3D::_max_bounding_box(bool include_gizmos, bool include_bed_model) const @@ -4790,12 +4731,7 @@ BoundingBoxf3 GLCanvas3D::_max_bounding_box(bool include_gizmos, bool include_be #if ENABLE_THUMBNAIL_GENERATOR void GLCanvas3D::_zoom_to_box(const BoundingBoxf3& box, double margin_factor) { -#if ENABLE_6DOF_CAMERA m_camera.zoom_to_box(box, margin_factor); -#else - const Size& cnv_size = get_canvas_size(); - m_camera.zoom_to_box(box, cnv_size.get_width(), cnv_size.get_height(), margin_factor); -#endif // ENABLE_6DOF_CAMERA m_dirty = true; } #else @@ -5098,7 +5034,6 @@ void GLCanvas3D::_render_overlays() const if ((m_layers_editing.last_object_id >= 0) && (m_layers_editing.object_max_z() > 0.0f)) m_layers_editing.render_overlay(*this); -#if ENABLE_SHOW_SCENE_LABELS const ConfigOptionBool* opt = dynamic_cast(m_config->option("complete_objects")); bool sequential_print = opt != nullptr && opt->value; std::vector sorted_instances; @@ -5109,7 +5044,6 @@ void GLCanvas3D::_render_overlays() const } } m_labels.render(sorted_instances); -#endif // ENABLE_SHOW_SCENE_LABELS glsafe(::glPopMatrix()); } diff --git a/src/slic3r/GUI/GLCanvas3D.hpp b/src/slic3r/GUI/GLCanvas3D.hpp index 21f3f012c1..9ae1278800 100644 --- a/src/slic3r/GUI/GLCanvas3D.hpp +++ b/src/slic3r/GUI/GLCanvas3D.hpp @@ -375,7 +375,6 @@ private: }; #endif // ENABLE_RENDER_STATISTICS -#if ENABLE_SHOW_SCENE_LABELS class Labels { bool m_enabled{ false }; @@ -389,7 +388,6 @@ private: bool is_shown() const { return m_shown; } void render(const std::vector& sorted_instances) const; }; -#endif // ENABLE_SHOW_SCENE_LABELS public: enum ECursorType : unsigned char @@ -468,9 +466,7 @@ private: mutable int m_imgui_undo_redo_hovered_pos{ -1 }; int m_selected_extruder; -#if ENABLE_SHOW_SCENE_LABELS Labels m_labels; -#endif // ENABLE_SHOW_SCENE_LABELS public: GLCanvas3D(wxGLCanvas* canvas, Bed3D& bed, Camera& camera, GLToolbar& view_toolbar); @@ -487,9 +483,7 @@ public: void set_as_dirty(); unsigned int get_volumes_count() const; -#if ENABLE_SHOW_SCENE_LABELS const GLVolumeCollection& get_volumes() const { return m_volumes; } -#endif // ENABLE_SHOW_SCENE_LABELS void reset_volumes(); int check_volumes_outside_state() const; @@ -501,9 +495,7 @@ public: void set_config(const DynamicPrintConfig* config); void set_process(BackgroundSlicingProcess* process); void set_model(Model* model); -#if ENABLE_SHOW_SCENE_LABELS const Model* get_model() const { return m_model; } -#endif // ENABLE_SHOW_SCENE_LABELS const Selection& get_selection() const { return m_selection; } Selection& get_selection() { return m_selection; } @@ -551,9 +543,7 @@ public: void enable_main_toolbar(bool enable); void enable_undoredo_toolbar(bool enable); void enable_dynamic_background(bool enable); -#if ENABLE_SHOW_SCENE_LABELS void enable_labels(bool enable) { m_labels.enable(enable); } -#endif // ENABLE_SHOW_SCENE_LABELS void allow_multisample(bool allow); void zoom_to_bed(); @@ -675,10 +665,8 @@ public: void mouse_up_cleanup(); -#if ENABLE_SHOW_SCENE_LABELS bool are_labels_shown() const { return m_labels.is_shown(); } void show_labels(bool show) { m_labels.show(show); } -#endif // ENABLE_SHOW_SCENE_LABELS private: bool _is_shown_on_screen() const; diff --git a/src/slic3r/GUI/GLTexture.cpp b/src/slic3r/GUI/GLTexture.cpp index 4ac69d71ff..f178ddc73c 100644 --- a/src/slic3r/GUI/GLTexture.cpp +++ b/src/slic3r/GUI/GLTexture.cpp @@ -168,25 +168,15 @@ bool GLTexture::load_from_svg_files_as_sprites_array(const std::vectorwidth, image->height); -#if ENABLE_MODIFIED_TOOLBAR_TEXTURES // offset by 1 to leave the first pixel empty (both in x and y) nsvgRasterize(rast, image, 1, 1, scale, sprite_data.data(), sprite_size_px, sprite_size_px, sprite_stride); -#else - nsvgRasterize(rast, image, 0, 0, scale, sprite_data.data(), sprite_size_px, sprite_size_px, sprite_stride); -#endif // ENABLE_MODIFIED_TOOLBAR_TEXTURES // makes white only copy of the sprite ::memcpy((void*)sprite_white_only_data.data(), (const void*)sprite_data.data(), sprite_bytes); @@ -250,11 +236,7 @@ bool GLTexture::load_from_svg_files_as_sprites_array(const std::vector& state : states) { @@ -273,7 +255,6 @@ bool GLTexture::load_from_svg_files_as_sprites_array(const std::vectorGLTexture::Quad_UVs { assert((tex_width != 0) && (tex_height != 0)); @@ -112,9 +111,6 @@ void GLToolbarItem::render(unsigned int tex_id, float left, float right, float b }; GLTexture::render_sub_texture(tex_id, left, right, bottom, top, uvs(tex_width, tex_height, icon_size)); -#else - GLTexture::render_sub_texture(tex_id, left, right, bottom, top, get_uvs(tex_width, tex_height, icon_size)); -#endif // ENABLE_MODIFIED_TOOLBAR_TEXTURES if (is_pressed()) { @@ -125,29 +121,6 @@ void GLToolbarItem::render(unsigned int tex_id, float left, float right, float b } } -#if !ENABLE_MODIFIED_TOOLBAR_TEXTURES -GLTexture::Quad_UVs GLToolbarItem::get_uvs(unsigned int tex_width, unsigned int tex_height, unsigned int icon_size) const -{ - GLTexture::Quad_UVs uvs; - - float inv_tex_width = (tex_width != 0) ? 1.0f / (float)tex_width : 0.0f; - float inv_tex_height = (tex_height != 0) ? 1.0f / (float)tex_height : 0.0f; - - float scaled_icon_width = (float)icon_size * inv_tex_width; - float scaled_icon_height = (float)icon_size * inv_tex_height; - float left = (float)m_state * scaled_icon_width; - float right = left + scaled_icon_width; - float top = (float)m_data.sprite_id * scaled_icon_height; - float bottom = top + scaled_icon_height; - uvs.left_top = { left, top }; - uvs.left_bottom = { left, bottom }; - uvs.right_bottom = { right, bottom }; - uvs.right_top = { right, top }; - - return uvs; -} -#endif // !ENABLE_MODIFIED_TOOLBAR_TEXTURES - BackgroundTexture::Metadata::Metadata() : filename("") , left(0) diff --git a/src/slic3r/GUI/GLToolbar.hpp b/src/slic3r/GUI/GLToolbar.hpp index f53b8efb99..6f24e22cf8 100644 --- a/src/slic3r/GUI/GLToolbar.hpp +++ b/src/slic3r/GUI/GLToolbar.hpp @@ -143,9 +143,6 @@ public: void render(unsigned int tex_id, float left, float right, float bottom, float top, unsigned int tex_width, unsigned int tex_height, unsigned int icon_size) const; private: -#if !ENABLE_MODIFIED_TOOLBAR_TEXTURES - GLTexture::Quad_UVs get_uvs(unsigned int tex_width, unsigned int tex_height, unsigned int icon_size) const; -#endif // !ENABLE_MODIFIED_TOOLBAR_TEXTURES void set_visible(bool visible) { m_data.visible = visible; } friend class GLToolbar; diff --git a/src/slic3r/GUI/GUI_ObjectList.cpp b/src/slic3r/GUI/GUI_ObjectList.cpp index 6e5c601d3e..11eebb0de3 100644 --- a/src/slic3r/GUI/GUI_ObjectList.cpp +++ b/src/slic3r/GUI/GUI_ObjectList.cpp @@ -2270,9 +2270,7 @@ void ObjectList::split() add_settings_item(vol_item, &volume->config); } -#if ENABLE_BACKWARD_COMPATIBLE_RELOAD_FROM_DISK model_object->input_file.clear(); -#endif // ENABLE_BACKWARD_COMPATIBLE_RELOAD_FROM_DISK if (parent == item) Expand(parent); diff --git a/src/slic3r/GUI/GUI_Preview.cpp b/src/slic3r/GUI/GUI_Preview.cpp index 5a1cd619ca..5afdb3bb43 100644 --- a/src/slic3r/GUI/GUI_Preview.cpp +++ b/src/slic3r/GUI/GUI_Preview.cpp @@ -65,9 +65,7 @@ bool View3D::init(wxWindow* parent, Bed3D& bed, Camera& camera, GLToolbar& view_ m_canvas->enable_selection(true); m_canvas->enable_main_toolbar(true); m_canvas->enable_undoredo_toolbar(true); -#if ENABLE_SHOW_SCENE_LABELS m_canvas->enable_labels(true); -#endif // ENABLE_SHOW_SCENE_LABELS wxBoxSizer* main_sizer = new wxBoxSizer(wxVERTICAL); main_sizer->Add(m_canvas_widget, 1, wxALL | wxEXPAND, 0); diff --git a/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp b/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp index 79ac6a00da..7e334c29f2 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp @@ -889,14 +889,9 @@ void GLGizmosManager::render_background(float left, float top, float right, floa void GLGizmosManager::do_render_overlay() const { -#if ENABLE_MODIFIED_TOOLBAR_TEXTURES std::vector selectable_idxs = get_selectable_idxs(); if (selectable_idxs.empty()) return; -#else - if (m_gizmos.empty()) - return; -#endif // ENABLE_MODIFIED_TOOLBAR_TEXTURES float cnv_w = (float)m_parent.get_canvas_size().get_width(); float cnv_h = (float)m_parent.get_canvas_size().get_height(); @@ -928,7 +923,6 @@ void GLGizmosManager::do_render_overlay() const int tex_width = m_icons_texture.get_width(); int tex_height = m_icons_texture.get_height(); -#if ENABLE_MODIFIED_TOOLBAR_TEXTURES if ((icons_texture_id == 0) || (tex_width <= 1) || (tex_height <= 1)) return; @@ -938,39 +932,18 @@ void GLGizmosManager::do_render_overlay() const // tiles in the texture are spaced by 1 pixel float u_offset = 1.0f / (float)tex_width; float v_offset = 1.0f / (float)tex_height; -#else - if ((icons_texture_id == 0) || (tex_width <= 0) || (tex_height <= 0)) - return; - float inv_tex_width = (tex_width != 0) ? 1.0f / tex_width : 0.0f; - float inv_tex_height = (tex_height != 0) ? 1.0f / tex_height : 0.0f; -#endif // ENABLE_MODIFIED_TOOLBAR_TEXTURES - -#if ENABLE_MODIFIED_TOOLBAR_TEXTURES for (size_t idx : selectable_idxs) -#else - for (size_t idx : get_selectable_idxs()) -#endif // ENABLE_MODIFIED_TOOLBAR_TEXTURES { GLGizmoBase* gizmo = m_gizmos[idx].get(); unsigned int sprite_id = gizmo->get_sprite_id(); int icon_idx = (m_current == idx) ? 2 : ((m_hover == idx) ? 1 : (gizmo->is_activable()? 0 : 3)); -#if ENABLE_MODIFIED_TOOLBAR_TEXTURES float v_top = v_offset + sprite_id * dv; float u_left = u_offset + icon_idx * du; float v_bottom = v_top + dv - v_offset; float u_right = u_left + du - u_offset; -#else - float u_icon_size = icons_size * inv_tex_width; - float v_icon_size = icons_size * inv_tex_height; - - float v_top = sprite_id * v_icon_size; - float u_left = icon_idx * u_icon_size; - float v_bottom = v_top + v_icon_size; - float u_right = u_left + u_icon_size; -#endif // ENABLE_MODIFIED_TOOLBAR_TEXTURES GLTexture::render_sub_texture(icons_texture_id, zoomed_top_x, zoomed_top_x + zoomed_icons_size, zoomed_top_y - zoomed_icons_size, zoomed_top_y, { { u_left, v_bottom }, { u_right, v_bottom }, { u_right, v_top }, { u_left, v_top } }); if (idx == m_current) { diff --git a/src/slic3r/GUI/MainFrame.cpp b/src/slic3r/GUI/MainFrame.cpp index bab831b20a..428dc283bd 100644 --- a/src/slic3r/GUI/MainFrame.cpp +++ b/src/slic3r/GUI/MainFrame.cpp @@ -672,12 +672,10 @@ void MainFrame::init_menubar() "", nullptr, [this](){return can_change_view(); }, this); append_menu_item(viewMenu, wxID_ANY, _(L("Right")) + sep + "&6", _(L("Right View")), [this](wxCommandEvent&) { select_view("right"); }, "", nullptr, [this](){return can_change_view(); }, this); -#if ENABLE_SHOW_SCENE_LABELS viewMenu->AppendSeparator(); append_menu_check_item(viewMenu, wxID_ANY, _(L("Show &labels")) + sep + "E", _(L("Show object/instance labels in 3D scene")), [this](wxCommandEvent&) { m_plater->show_view3D_labels(!m_plater->are_view3D_labels_shown()); }, this, [this]() { return m_plater->is_view3D_shown(); }, [this]() { return m_plater->are_view3D_labels_shown(); }, this); -#endif // ENABLE_SHOW_SCENE_LABELS } // Help menu diff --git a/src/slic3r/GUI/Mouse3DController.cpp b/src/slic3r/GUI/Mouse3DController.cpp index acadc5b2ed..2be017e540 100644 --- a/src/slic3r/GUI/Mouse3DController.cpp +++ b/src/slic3r/GUI/Mouse3DController.cpp @@ -60,17 +60,13 @@ const double Mouse3DController::State::DefaultTranslationDeadzone = 0.5 * Mouse3 const float Mouse3DController::State::DefaultRotationScale = 1.0f; const float Mouse3DController::State::MaxRotationDeadzone = 0.2f; const float Mouse3DController::State::DefaultRotationDeadzone = 0.5f * Mouse3DController::State::MaxRotationDeadzone; -#if ENABLE_3DCONNEXION_Y_AS_ZOOM const double Mouse3DController::State::DefaultZoomScale = 0.1; -#endif // ENABLE_3DCONNEXION_Y_AS_ZOOM Mouse3DController::State::State() : m_buttons_enabled(false) , m_translation_params(DefaultTranslationScale, DefaultTranslationDeadzone) , m_rotation_params(DefaultRotationScale, DefaultRotationDeadzone) -#if ENABLE_3DCONNEXION_Y_AS_ZOOM , m_zoom_params(DefaultZoomScale, 0.0) -#endif // ENABLE_3DCONNEXION_Y_AS_ZOOM , m_mouse_wheel_counter(0) #if ENABLE_3DCONNEXION_DEVICES_DEBUG_OUTPUT , m_translation_queue_max_size(0) @@ -156,31 +152,18 @@ bool Mouse3DController::State::apply(Camera& camera) if (has_translation()) { const Vec3d& translation = m_translation.queue.front(); -#if ENABLE_3DCONNEXION_Y_AS_ZOOM double zoom_factor = camera.min_zoom() / camera.get_zoom(); camera.set_target(camera.get_target() + zoom_factor * m_translation_params.scale * (translation(0) * camera.get_dir_right() + translation(2) * camera.get_dir_up())); if (translation(1) != 0.0) camera.update_zoom(m_zoom_params.scale * translation(1) / std::abs(translation(1))); -#else - camera.set_target(camera.get_target() + m_translation_params.scale * (translation(0) * camera.get_dir_right() + translation(1) * camera.get_dir_forward() + translation(2) * camera.get_dir_up())); -#endif // ENABLE_3DCONNEXION_Y_AS_ZOOM m_translation.queue.pop(); ret = true; } if (has_rotation()) { -#if ENABLE_6DOF_CAMERA Vec3d rotation = (m_rotation_params.scale * m_rotation.queue.front()).cast(); camera.rotate_local_around_target(Vec3d(Geometry::deg2rad(rotation(0)), Geometry::deg2rad(-rotation(2)), Geometry::deg2rad(-rotation(1)))); -#else - const Vec3f& rotation = m_rotation.queue.front(); - float theta = m_rotation_params.scale * rotation(0); - float phi = m_rotation_params.scale * rotation(2); - float sign = camera.inverted_phi ? -1.0f : 1.0f; - camera.phi += sign * phi; - camera.set_theta(camera.get_theta() + theta, wxGetApp().preset_bundle->printers.get_edited_preset().printer_technology() != ptSLA); -#endif // ENABLE_6DOF_CAMERA m_rotation.queue.pop(); ret = true; } @@ -321,11 +304,9 @@ void Mouse3DController::render_settings_dialog(GLCanvas3D& canvas) const if (imgui.slider_float(_(L("Rotation")) + "##1", &rotation_scale, 0.1f, 10.0f, "%.1f")) m_state.set_rotation_scale(State::DefaultRotationScale * rotation_scale); -#if ENABLE_3DCONNEXION_Y_AS_ZOOM float zoom_scale = m_state.get_zoom_scale() / State::DefaultZoomScale; if (imgui.slider_float(_(L("Zoom")), &zoom_scale, 0.1f, 10.0f, "%.1f")) m_state.set_zoom_scale(State::DefaultZoomScale * zoom_scale); -#endif // ENABLE_3DCONNEXION_Y_AS_ZOOM ImGui::Separator(); ImGui::PushStyleColor(ImGuiCol_Text, color); @@ -333,11 +314,7 @@ void Mouse3DController::render_settings_dialog(GLCanvas3D& canvas) const ImGui::PopStyleColor(); float translation_deadzone = (float)m_state.get_translation_deadzone(); -#if ENABLE_3DCONNEXION_Y_AS_ZOOM if (imgui.slider_float(_(L("Translation")) + "/" + _(L("Zoom")), &translation_deadzone, 0.0f, (float)State::MaxTranslationDeadzone, "%.2f")) -#else - if (imgui.slider_float(_(L("Translation")) + "##2", &translation_deadzone, 0.0f, (float)State::MaxTranslationDeadzone, "%.2f")) -#endif // ENABLE_3DCONNEXION_Y_AS_ZOOM m_state.set_translation_deadzone((double)translation_deadzone); float rotation_deadzone = m_state.get_rotation_deadzone(); @@ -651,24 +628,18 @@ bool Mouse3DController::connect_device() float rotation_speed = 4.0; double translation_deadzone = State::DefaultTranslationDeadzone; float rotation_deadzone = State::DefaultRotationDeadzone; -#if ENABLE_3DCONNEXION_Y_AS_ZOOM double zoom_speed = 2.0; -#endif // ENABLE_3DCONNEXION_Y_AS_ZOOM wxGetApp().app_config->get_mouse_device_translation_speed(m_device_str, translation_speed); wxGetApp().app_config->get_mouse_device_translation_deadzone(m_device_str, translation_deadzone); wxGetApp().app_config->get_mouse_device_rotation_speed(m_device_str, rotation_speed); wxGetApp().app_config->get_mouse_device_rotation_deadzone(m_device_str, rotation_deadzone); -#if ENABLE_3DCONNEXION_Y_AS_ZOOM wxGetApp().app_config->get_mouse_device_zoom_speed(m_device_str, zoom_speed); -#endif // ENABLE_3DCONNEXION_Y_AS_ZOOM // clamp to valid values m_state.set_translation_scale(State::DefaultTranslationScale * std::clamp(translation_speed, 0.1, 10.0)); m_state.set_translation_deadzone(std::clamp(translation_deadzone, 0.0, State::MaxTranslationDeadzone)); m_state.set_rotation_scale(State::DefaultRotationScale * std::clamp(rotation_speed, 0.1f, 10.0f)); m_state.set_rotation_deadzone(std::clamp(rotation_deadzone, 0.0f, State::MaxRotationDeadzone)); -#if ENABLE_3DCONNEXION_Y_AS_ZOOM m_state.set_zoom_scale(State::DefaultZoomScale * std::clamp(zoom_speed, 0.1, 10.0)); -#endif // ENABLE_3DCONNEXION_Y_AS_ZOOM } #if ENABLE_3DCONNEXION_DEVICES_DEBUG_OUTPUT else @@ -694,13 +665,9 @@ void Mouse3DController::disconnect_device() m_thread.join(); // Store current device parameters into the config -#if ENABLE_3DCONNEXION_Y_AS_ZOOM wxGetApp().app_config->set_mouse_device(m_device_str, m_state.get_translation_scale() / State::DefaultTranslationScale, m_state.get_translation_deadzone(), m_state.get_rotation_scale() / State::DefaultRotationScale, m_state.get_rotation_deadzone(), m_state.get_zoom_scale() / State::DefaultZoomScale); -#else - wxGetApp().app_config->set_mouse_device(m_device_str, m_state.get_translation_scale() / State::DefaultTranslationScale, m_state.get_translation_deadzone(), - m_state.get_rotation_scale() / State::DefaultRotationScale, m_state.get_rotation_deadzone()); -#endif // ENABLE_3DCONNEXION_Y_AS_ZOOM + wxGetApp().app_config->save(); // Close the 3Dconnexion device @@ -911,15 +878,9 @@ bool Mouse3DController::handle_packet_translation(const DataPacketRaw& packet) bool Mouse3DController::handle_packet_rotation(const DataPacketRaw& packet, unsigned int first_byte) { double deadzone = (double)m_state.get_rotation_deadzone(); -#if ENABLE_6DOF_CAMERA Vec3f rotation((float)convert_input(packet[first_byte + 0], packet[first_byte + 1], deadzone), (float)convert_input(packet[first_byte + 2], packet[first_byte + 3], deadzone), (float)convert_input(packet[first_byte + 4], packet[first_byte + 5], deadzone)); -#else - Vec3f rotation(-(float)convert_input(packet[first_byte + 0], packet[first_byte + 1], deadzone), - (float)convert_input(packet[first_byte + 2], packet[first_byte + 3], deadzone), - -(float)convert_input(packet[first_byte + 4], packet[first_byte + 5], deadzone)); -#endif // ENABLE_6DOF_CAMERA if (!rotation.isApprox(Vec3f::Zero())) { diff --git a/src/slic3r/GUI/Mouse3DController.hpp b/src/slic3r/GUI/Mouse3DController.hpp index 018cb98e6e..f987451245 100644 --- a/src/slic3r/GUI/Mouse3DController.hpp +++ b/src/slic3r/GUI/Mouse3DController.hpp @@ -37,9 +37,7 @@ class Mouse3DController static const float DefaultRotationScale; static const float MaxRotationDeadzone; static const float DefaultRotationDeadzone; -#if ENABLE_3DCONNEXION_Y_AS_ZOOM static const double DefaultZoomScale; -#endif // ENABLE_3DCONNEXION_Y_AS_ZOOM private: template @@ -71,9 +69,7 @@ class Mouse3DController CustomParameters m_translation_params; CustomParameters m_rotation_params; -#if ENABLE_3DCONNEXION_Y_AS_ZOOM CustomParameters m_zoom_params; -#endif // ENABLE_3DCONNEXION_Y_AS_ZOOM // When the 3Dconnexion driver is running the system gets, by default, mouse wheel events when rotations around the X axis are detected. // We want to filter these out because we are getting the data directly from the device, bypassing the driver, and those mouse wheel events interfere @@ -109,10 +105,8 @@ class Mouse3DController float get_rotation_scale() const { return m_rotation_params.scale; } void set_rotation_scale(float scale) { m_rotation_params.scale = scale; } -#if ENABLE_3DCONNEXION_Y_AS_ZOOM double get_zoom_scale() const { return m_zoom_params.scale; } void set_zoom_scale(double scale) { m_zoom_params.scale = scale; } -#endif // ENABLE_3DCONNEXION_Y_AS_ZOOM double get_translation_deadzone() const { return m_translation_params.deadzone; } void set_translation_deadzone(double deadzone) { m_translation_params.deadzone = deadzone; } diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 1e753206a4..72afafd320 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -26,9 +26,7 @@ #include #include #include -#if ENABLE_BACKWARD_COMPATIBLE_RELOAD_FROM_DISK #include -#endif // ENABLE_BACKWARD_COMPATIBLE_RELOAD_FROM_DISK #include "libslic3r/libslic3r.h" #include "libslic3r/Format/STL.hpp" @@ -1784,15 +1782,11 @@ struct Plater::priv bool is_preview_loaded() const { return preview->is_loaded(); } bool is_view3D_shown() const { return current_panel == view3D; } -#if ENABLE_SHOW_SCENE_LABELS bool are_view3D_labels_shown() const { return (current_panel == view3D) && view3D->get_canvas3d()->are_labels_shown(); } void show_view3D_labels(bool show) { if (current_panel == view3D) view3D->get_canvas3d()->show_labels(show); } -#endif // ENABLE_SHOW_SCENE_LABELS void set_current_canvas_as_dirty(); -#if ENABLE_BACKWARD_COMPATIBLE_RELOAD_FROM_DISK GLCanvas3D* get_current_canvas3D(); -#endif // ENABLE_BACKWARD_COMPATIBLE_RELOAD_FROM_DISK bool init_view_toolbar(); @@ -3256,10 +3250,8 @@ void Plater::priv::reload_from_disk() else missing_input_paths.push_back(volume->source.input_file); } -#if ENABLE_BACKWARD_COMPATIBLE_RELOAD_FROM_DISK else if (!object->input_file.empty() && !volume->name.empty()) missing_input_paths.push_back(volume->name); -#endif // ENABLE_BACKWARD_COMPATIBLE_RELOAD_FROM_DISK } std::sort(missing_input_paths.begin(), missing_input_paths.end()); @@ -3314,19 +3306,15 @@ void Plater::priv::reload_from_disk() std::sort(input_paths.begin(), input_paths.end()); input_paths.erase(std::unique(input_paths.begin(), input_paths.end()), input_paths.end()); -#if ENABLE_BACKWARD_COMPATIBLE_RELOAD_FROM_DISK std::vector fail_list; -#endif // ENABLE_BACKWARD_COMPATIBLE_RELOAD_FROM_DISK // load one file at a time for (size_t i = 0; i < input_paths.size(); ++i) { const auto& path = input_paths[i].string(); -#if ENABLE_BACKWARD_COMPATIBLE_RELOAD_FROM_DISK wxBusyCursor wait; wxBusyInfo info(_(L("Reload from: ")) + from_u8(path), q->get_current_canvas3D()->get_wxglcanvas()); -#endif // ENABLE_BACKWARD_COMPATIBLE_RELOAD_FROM_DISK Model new_model; try @@ -3350,19 +3338,10 @@ void Plater::priv::reload_from_disk() ModelObject* old_model_object = model.objects[sel_v.object_idx]; ModelVolume* old_volume = old_model_object->volumes[sel_v.volume_idx]; -#if ENABLE_BACKWARD_COMPATIBLE_RELOAD_FROM_DISK bool has_source = !old_volume->source.input_file.empty() && boost::algorithm::iequals(fs::path(old_volume->source.input_file).filename().string(), fs::path(path).filename().string()); bool has_name = !old_volume->name.empty() && boost::algorithm::iequals(old_volume->name, fs::path(path).filename().string()); if (has_source || has_name) -#else - int new_volume_idx = old_volume->source.volume_idx; - int new_object_idx = old_volume->source.object_idx; - - if (boost::algorithm::iequals(fs::path(old_volume->source.input_file).filename().string(), - fs::path(path).filename().string())) -#endif // ENABLE_BACKWARD_COMPATIBLE_RELOAD_FROM_DISK { -#if ENABLE_BACKWARD_COMPATIBLE_RELOAD_FROM_DISK int new_volume_idx = -1; int new_object_idx = -1; if (has_source) @@ -3398,17 +3377,12 @@ void Plater::priv::reload_from_disk() fail_list.push_back(from_u8(has_source ? old_volume->source.input_file : old_volume->name)); continue; } -#else - assert(new_object_idx < (int)new_model.objects.size()); -#endif // ENABLE_BACKWARD_COMPATIBLE_RELOAD_FROM_DISK ModelObject* new_model_object = new_model.objects[new_object_idx]; -#if ENABLE_BACKWARD_COMPATIBLE_RELOAD_FROM_DISK if ((new_volume_idx < 0) && ((int)new_model.objects.size() <= new_volume_idx)) { fail_list.push_back(from_u8(has_source ? old_volume->source.input_file : old_volume->name)); continue; } -#endif // ENABLE_BACKWARD_COMPATIBLE_RELOAD_FROM_DISK if (new_volume_idx < (int)new_model_object->volumes.size()) { old_model_object->add_volume(*new_model_object->volumes[new_volume_idx]); @@ -3419,9 +3393,6 @@ void Plater::priv::reload_from_disk() new_volume->set_material_id(old_volume->material_id()); new_volume->set_transformation(old_volume->get_transformation() * old_volume->source.transform); new_volume->translate(new_volume->get_transformation().get_matrix(true) * (new_volume->source.mesh_offset - old_volume->source.mesh_offset)); -#if !ENABLE_BACKWARD_COMPATIBLE_RELOAD_FROM_DISK - new_volume->source.input_file = path; -#endif // !ENABLE_BACKWARD_COMPATIBLE_RELOAD_FROM_DISK std::swap(old_model_object->volumes[sel_v.volume_idx], old_model_object->volumes.back()); old_model_object->delete_volume(old_model_object->volumes.size() - 1); old_model_object->ensure_on_bed(); @@ -3430,7 +3401,6 @@ void Plater::priv::reload_from_disk() } } -#if ENABLE_BACKWARD_COMPATIBLE_RELOAD_FROM_DISK if (!fail_list.empty()) { wxString message = _(L("Unable to reload:")) + "\n"; @@ -3441,7 +3411,6 @@ void Plater::priv::reload_from_disk() wxMessageDialog dlg(q, message, _(L("Error during reload")), wxOK | wxOK_DEFAULT | wxICON_WARNING); dlg.ShowModal(); } -#endif // ENABLE_BACKWARD_COMPATIBLE_RELOAD_FROM_DISK // update 3D scene update(); @@ -4073,12 +4042,10 @@ void Plater::priv::set_current_canvas_as_dirty() preview->set_as_dirty(); } -#if ENABLE_BACKWARD_COMPATIBLE_RELOAD_FROM_DISK GLCanvas3D* Plater::priv::get_current_canvas3D() { return (current_panel == view3D) ? view3D->get_canvas3d() : ((current_panel == preview) ? preview->get_canvas3d() : nullptr); } -#endif // ENABLE_BACKWARD_COMPATIBLE_RELOAD_FROM_DISK bool Plater::priv::init_view_toolbar() { @@ -4190,10 +4157,8 @@ bool Plater::priv::can_reload_from_disk() const const ModelVolume* volume = object->volumes[v.volume_idx]; if (!volume->source.input_file.empty()) paths.push_back(volume->source.input_file); -#if ENABLE_BACKWARD_COMPATIBLE_RELOAD_FROM_DISK else if (!object->input_file.empty() && !volume->name.empty()) paths.push_back(volume->name); -#endif // ENABLE_BACKWARD_COMPATIBLE_RELOAD_FROM_DISK } std::sort(paths.begin(), paths.end()); paths.erase(std::unique(paths.begin(), paths.end()), paths.end()); @@ -4669,10 +4634,8 @@ bool Plater::is_preview_shown() const { return p->is_preview_shown(); } bool Plater::is_preview_loaded() const { return p->is_preview_loaded(); } bool Plater::is_view3D_shown() const { return p->is_view3D_shown(); } -#if ENABLE_SHOW_SCENE_LABELS bool Plater::are_view3D_labels_shown() const { return p->are_view3D_labels_shown(); } void Plater::show_view3D_labels(bool show) { p->show_view3D_labels(show); } -#endif // ENABLE_SHOW_SCENE_LABELS void Plater::select_all() { p->select_all(); } void Plater::deselect_all() { p->deselect_all(); } @@ -5012,12 +4975,8 @@ void Plater::export_amf() wxBusyCursor wait; bool export_config = true; DynamicPrintConfig cfg = wxGetApp().preset_bundle->full_config_secure(); -#if ENABLE_CONFIGURABLE_PATHS_EXPORT_TO_3MF_AND_AMF bool full_pathnames = wxGetApp().app_config->get("export_sources_full_pathnames") == "1"; if (Slic3r::store_amf(path_u8.c_str(), &p->model, export_config ? &cfg : nullptr, full_pathnames)) { -#else - if (Slic3r::store_amf(path_u8.c_str(), &p->model, export_config ? &cfg : nullptr)) { -#endif // ENABLE_CONFIGURABLE_PATHS_EXPORT_TO_3MF_AND_AMF // Success p->statusbar()->set_status_text(wxString::Format(_(L("AMF file exported to %s")), path)); } else { @@ -5046,7 +5005,6 @@ void Plater::export_3mf(const boost::filesystem::path& output_path) DynamicPrintConfig cfg = wxGetApp().preset_bundle->full_config_secure(); const std::string path_u8 = into_u8(path); wxBusyCursor wait; -#if ENABLE_CONFIGURABLE_PATHS_EXPORT_TO_3MF_AND_AMF bool full_pathnames = wxGetApp().app_config->get("export_sources_full_pathnames") == "1"; #if ENABLE_THUMBNAIL_GENERATOR ThumbnailData thumbnail_data; @@ -5055,15 +5013,6 @@ void Plater::export_3mf(const boost::filesystem::path& output_path) #else if (Slic3r::store_3mf(path_u8.c_str(), &p->model, export_config ? &cfg : nullptr, full_pathnames)) { #endif // ENABLE_THUMBNAIL_GENERATOR -#else -#if ENABLE_THUMBNAIL_GENERATOR - ThumbnailData thumbnail_data; - p->generate_thumbnail(thumbnail_data, THUMBNAIL_SIZE_3MF.first, THUMBNAIL_SIZE_3MF.second, false, true, true, true); - if (Slic3r::store_3mf(path_u8.c_str(), &p->model, export_config ? &cfg : nullptr, &thumbnail_data)) { -#else - if (Slic3r::store_3mf(path_u8.c_str(), &p->model, export_config ? &cfg : nullptr)) { -#endif // ENABLE_THUMBNAIL_GENERATOR -#endif // ENABLE_CONFIGURABLE_PATHS_EXPORT_TO_3MF_AND_AMF // Success p->statusbar()->set_status_text(wxString::Format(_(L("3MF file exported to %s")), path)); p->set_project_filename(path); @@ -5521,12 +5470,10 @@ GLCanvas3D* Plater::canvas3D() return p->view3D->get_canvas3d(); } -#if ENABLE_BACKWARD_COMPATIBLE_RELOAD_FROM_DISK GLCanvas3D* Plater::get_current_canvas3D() { return p->get_current_canvas3D(); } -#endif // ENABLE_BACKWARD_COMPATIBLE_RELOAD_FROM_DISK BoundingBoxf Plater::bed_shape_bb() const { diff --git a/src/slic3r/GUI/Plater.hpp b/src/slic3r/GUI/Plater.hpp index 3c1dde0f3f..2e4f2ca85e 100644 --- a/src/slic3r/GUI/Plater.hpp +++ b/src/slic3r/GUI/Plater.hpp @@ -170,10 +170,8 @@ public: bool is_preview_loaded() const; bool is_view3D_shown() const; -#if ENABLE_SHOW_SCENE_LABELS bool are_view3D_labels_shown() const; void show_view3D_labels(bool show); -#endif // ENABLE_SHOW_SCENE_LABELS // Called after the Preferences dialog is closed and the program settings are saved. // Update the UI based on the current preferences. @@ -250,9 +248,7 @@ public: int get_selected_object_idx(); bool is_single_full_object_selection() const; GLCanvas3D* canvas3D(); -#if ENABLE_BACKWARD_COMPATIBLE_RELOAD_FROM_DISK GLCanvas3D* get_current_canvas3D(); -#endif // ENABLE_BACKWARD_COMPATIBLE_RELOAD_FROM_DISK BoundingBoxf bed_shape_bb() const; void set_current_canvas_as_dirty(); diff --git a/src/slic3r/GUI/Preferences.cpp b/src/slic3r/GUI/Preferences.cpp index 4fd63fe0ed..1299d9a48a 100644 --- a/src/slic3r/GUI/Preferences.cpp +++ b/src/slic3r/GUI/Preferences.cpp @@ -68,7 +68,6 @@ void PreferencesDialog::build() option = Option (def, "version_check"); m_optgroup_general->append_single_option_line(option); -#if ENABLE_CONFIGURABLE_PATHS_EXPORT_TO_3MF_AND_AMF // Please keep in sync with ConfigWizard def.label = L("Export sources full pathnames to 3mf and amf"); def.type = coBool; @@ -76,7 +75,6 @@ void PreferencesDialog::build() def.set_default_value(new ConfigOptionBool(app_config->get("export_sources_full_pathnames") == "1")); option = Option(def, "export_sources_full_pathnames"); m_optgroup_general->append_single_option_line(option); -#endif // ENABLE_CONFIGURABLE_PATHS_EXPORT_TO_3MF_AND_AMF // Please keep in sync with ConfigWizard def.label = L("Update built-in Presets automatically"); @@ -125,14 +123,12 @@ void PreferencesDialog::build() option = Option(def, "use_perspective_camera"); m_optgroup_camera->append_single_option_line(option); -#if ENABLE_6DOF_CAMERA def.label = L("Use free camera"); def.type = coBool; def.tooltip = L("If enabled, use free camera. If not enabled, use constrained camera."); def.set_default_value(new ConfigOptionBool(app_config->get("use_free_camera") == "1")); option = Option(def, "use_free_camera"); m_optgroup_camera->append_single_option_line(option); -#endif // ENABLE_6DOF_CAMERA m_optgroup_gui = std::make_shared(this, _(L("GUI"))); m_optgroup_gui->label_width = 40; diff --git a/src/slic3r/GUI/Selection.cpp b/src/slic3r/GUI/Selection.cpp index a4f5a4126d..bb81b56c0d 100644 --- a/src/slic3r/GUI/Selection.cpp +++ b/src/slic3r/GUI/Selection.cpp @@ -2005,11 +2005,7 @@ void Selection::render_sidebar_layers_hints(const std::string& sidebar_field) co const float max_y = box.max(1) + Margin; // view dependend order of rendering to keep correct transparency -#if ENABLE_6DOF_CAMERA bool camera_on_top = wxGetApp().plater()->get_camera().is_looking_downward(); -#else - bool camera_on_top = wxGetApp().plater()->get_camera().get_theta() <= 90.0f; -#endif // ENABLE_6DOF_CAMERA float z1 = camera_on_top ? min_z : max_z; float z2 = camera_on_top ? max_z : min_z; diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index f38db93c3b..c5c6dc4669 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -1708,12 +1708,16 @@ void TabPrinter::build_printhost(ConfigOptionsGroup *optgroup) host_line.append_widget(printhost_browse); host_line.append_widget(print_host_test); optgroup->append_line(host_line); - optgroup->append_single_option_line("printhost_apikey"); + option = optgroup->get_option("printhost_apikey"); + option.opt.width = Field::def_width_wider(); + optgroup->append_single_option_line(option); const auto ca_file_hint = _(L("HTTPS CA file is optional. It is only needed if you use HTTPS with a self-signed certificate.")); if (Http::ca_file_supported()) { - Line cafile_line = optgroup->create_single_option_line("printhost_cafile"); + option = optgroup->get_option("printhost_cafile"); + option.opt.width = Field::def_width_wider(); + Line cafile_line = optgroup->create_single_option_line(option); auto printhost_cafile_browse = [this, optgroup] (wxWindow* parent) { auto btn = new wxButton(parent, wxID_ANY, " " + _(L("Browse"))+" " +dots, wxDefaultPosition, wxDefaultSize, wxBU_LEFT); diff --git a/src/slic3r/Utils/FixModelByWin10.cpp b/src/slic3r/Utils/FixModelByWin10.cpp index 28f8b54d5e..0de526432b 100644 --- a/src/slic3r/Utils/FixModelByWin10.cpp +++ b/src/slic3r/Utils/FixModelByWin10.cpp @@ -363,17 +363,10 @@ void fix_model_by_win10_sdk_gui(ModelObject &model_object, int volume_idx) ModelObject *model_object = model.add_object(); model_object->add_volume(*volumes[ivolume]); model_object->add_instance(); -#if ENABLE_CONFIGURABLE_PATHS_EXPORT_TO_3MF_AND_AMF if (!Slic3r::store_3mf(path_src.string().c_str(), &model, nullptr, false)) { boost::filesystem::remove(path_src); throw std::runtime_error(L("Export of a temporary 3mf file failed")); } -#else - if (! Slic3r::store_3mf(path_src.string().c_str(), &model, nullptr)) { - boost::filesystem::remove(path_src); - throw std::runtime_error(L("Export of a temporary 3mf file failed")); - } -#endif // ENABLE_CONFIGURABLE_PATHS_EXPORT_TO_3MF_AND_AMF model.clear_objects(); model.clear_materials(); boost::filesystem::path path_dst = boost::filesystem::temp_directory_path() / boost::filesystem::unique_path(); diff --git a/tests/libslic3r/test_3mf.cpp b/tests/libslic3r/test_3mf.cpp index 6b60182b53..fb41ef93b5 100644 --- a/tests/libslic3r/test_3mf.cpp +++ b/tests/libslic3r/test_3mf.cpp @@ -51,11 +51,7 @@ SCENARIO("Export+Import geometry to/from 3mf file cycle", "[3mf]") { WHEN("model is saved+loaded to/from 3mf file") { // save the model to 3mf file std::string test_file = std::string(TEST_DATA_DIR) + "/test_3mf/prusa.3mf"; -#if ENABLE_CONFIGURABLE_PATHS_EXPORT_TO_3MF_AND_AMF store_3mf(test_file.c_str(), &src_model, nullptr, false); -#else - store_3mf(test_file.c_str(), &src_model, nullptr); -#endif // ENABLE_CONFIGURABLE_PATHS_EXPORT_TO_3MF_AND_AMF // load back the model from the 3mf file Model dst_model;