From 84657ff11ea231ef717b76eb0a941ba64aa3ec4e Mon Sep 17 00:00:00 2001 From: HanifKoh <76276251+HanifKoh@users.noreply.github.com> Date: Sat, 3 Oct 2026 13:45:21 +0800 Subject: [PATCH 1/8] Add Missing Includes Across the Remaining Sources and Tests (#16071) * Ignore Clipper, libpng, mcut and Boost.Polygon Internals in clang-tidy Each only works through a wrapper or umbrella header: libslic3r/clipper.hpp or clipper_z.hpp configure Clipper before including it, png.h pulls in libpng's config headers, and Boost.Polygon's headers only compile through polygon.hpp or voronoi.hpp. * Ignore minilzo's Config Headers in clang-tidy lzoconf.h and lzodefs.h are internal to minilzo.h, which is what the code includes. * Add Missing Includes Across the Remaining Sources and Tests Covers src/slic3r/Utils, src/slic3r/plugin, src/slic3r/Config, src/libvgcode, src/dev-utils, src/OrcaSlicer.cpp and tests/, the directories left after src/slic3r/GUI and src/libslic3r. Generated with clang-tidy misc-include-cleaner. libvgcode's own headers are included by relative path as in the rest of that library, and Catch2 and pybind11 with angle brackets as elsewhere in the repo. * Make the GUI and Test Headers Compile on Their Own Each now includes, or forward-declares, what it uses instead of relying on what its includers happened to include first. Headers that only compile on one platform, or that nothing built includes, are left alone. * Keep Windows and nanosvg Setup Ahead of the Added Includes OrcaSlicer.cpp and several tests set _WIN32_WINNT, WIN32_LEAN_AND_MEAN or NOMINMAX before including Windows.h, and the profile validator defines NANOSVG_IMPLEMENTATION before any libslic3r header. The added includes had landed above those blocks, which broke the Windows build. * Add the GUI Includes the First Pass Missed Covers headers that only became editable once they compiled on their own, and wx symbols whose suggested header changed as the clang-tidy ignore list grew after the src/slic3r/GUI pass. * Keep the Added Test Includes Below the NOMINMAX Guard test_marchingsquares.cpp and test_texture_displacement.cpp had includes inside #ifndef NOMINMAX, which the tests inherit as defined on Windows from libslic3r, so those were skipped there. .clang-tidy also ignores the MSVC STL and UCRT internals, Boost.Multiprecision's fwd.hpp and CPython's Windows include directory, as in #16068. --- .clang-tidy | 21 +++++++-- src/OrcaSlicer.cpp | 43 +++++++++++++++++++ src/OrcaSlicer.hpp | 7 +++ .../OrcaSlicer_profile_validator.cpp | 22 ++++++++++ src/dev-utils/encoding-check.cpp | 1 + src/dev-utils/generate_system_cache.cpp | 10 +++++ src/dev-utils/profile_include_dump.cpp | 6 +++ src/libvgcode/include/ColorPrint.hpp | 2 + src/libvgcode/include/ColorRange.hpp | 3 ++ src/libvgcode/include/GCodeInputData.hpp | 2 + src/libvgcode/include/PathVertex.hpp | 2 + src/libvgcode/include/Types.hpp | 1 + src/libvgcode/include/Viewer.hpp | 3 ++ src/libvgcode/src/Bitset.hpp | 3 ++ src/libvgcode/src/ColorRange.cpp | 5 +++ src/libvgcode/src/ExtrusionRoles.cpp | 5 +++ src/libvgcode/src/ExtrusionRoles.hpp | 3 ++ src/libvgcode/src/Layers.cpp | 5 +++ src/libvgcode/src/Layers.hpp | 5 +++ src/libvgcode/src/OpenGLUtils.cpp | 1 + src/libvgcode/src/OptionTemplate.cpp | 3 ++ src/libvgcode/src/PathVertex.cpp | 1 + src/libvgcode/src/Range.cpp | 1 + src/libvgcode/src/SegmentTemplate.cpp | 1 + src/libvgcode/src/Settings.hpp | 2 + src/libvgcode/src/ToolMarker.cpp | 1 + src/libvgcode/src/Types.cpp | 1 + src/libvgcode/src/Utils.cpp | 3 ++ src/libvgcode/src/Utils.hpp | 2 + src/libvgcode/src/ViewRange.cpp | 1 + src/libvgcode/src/ViewRange.hpp | 1 + src/libvgcode/src/Viewer.cpp | 6 +++ src/libvgcode/src/ViewerImpl.cpp | 12 ++++++ src/libvgcode/src/ViewerImpl.hpp | 6 +++ src/slic3r/Config/Snapshot.cpp | 19 ++++++++ src/slic3r/Config/Snapshot.hpp | 2 + src/slic3r/Config/Version.cpp | 12 ++++++ src/slic3r/Config/Version.hpp | 1 + src/slic3r/GUI/2DBed.cpp | 1 + src/slic3r/GUI/AMSMaterialsSetting.cpp | 1 + src/slic3r/GUI/AMSMaterialsSetting.hpp | 1 + src/slic3r/GUI/AMSSetting.cpp | 1 + src/slic3r/GUI/AMSSetting.hpp | 1 + src/slic3r/GUI/CAD/DesignCanvas.cpp | 1 + src/slic3r/GUI/CAD/DesignPanel.cpp | 1 + src/slic3r/GUI/CalibrationPanel.hpp | 18 ++++++++ src/slic3r/GUI/CapsuleButton.hpp | 1 + src/slic3r/GUI/ConfigExceptions.hpp | 4 ++ src/slic3r/GUI/ConfigManipulation.cpp | 1 + .../GUI/DeviceTab/uiAMSBestPositionPopup.cpp | 1 + .../GUI/DeviceTab/uiAMSBestPositionPopup.hpp | 1 + .../GUI/DeviceTab/uiAmsHumidityPopup.cpp | 1 + .../GUI/DeviceTab/wgtDeviceNozzleRack.h | 7 +++ src/slic3r/GUI/ExtrusionCalibration.cpp | 1 + src/slic3r/GUI/ExtrusionCalibration.hpp | 1 + src/slic3r/GUI/GUI_AuxiliaryList.hpp | 4 ++ src/slic3r/GUI/GUI_ObjectList.cpp | 1 + src/slic3r/GUI/GUI_ObjectTableSettings.cpp | 1 + src/slic3r/GUI/GUI_ObjectTableSettings.hpp | 6 +++ src/slic3r/GUI/Gizmos/GLGizmoCut.cpp | 1 + src/slic3r/GUI/Gizmos/GLGizmoEmboss.cpp | 1 + src/slic3r/GUI/Gizmos/GLGizmoMove.cpp | 1 + src/slic3r/GUI/Gizmos/GLGizmoScale.cpp | 1 + .../GUI/Gizmos/GizmoObjectManipulation.hpp | 6 +++ src/slic3r/GUI/Jobs/PlaterWorker.hpp | 13 ++++++ src/slic3r/GUI/Jobs/SLAImportDialog.hpp | 7 +++ src/slic3r/GUI/KBShortcutsDialog.cpp | 1 + src/slic3r/GUI/MarkdownTip.cpp | 1 + src/slic3r/GUI/MultiChoiceDialog.cpp | 1 + src/slic3r/GUI/PartSkipCommon.hpp | 2 + src/slic3r/GUI/Plater.cpp | 1 + src/slic3r/GUI/SavePresetDialog.cpp | 1 + src/slic3r/GUI/SavePresetDialog.hpp | 1 + src/slic3r/GUI/SendToPrinter.cpp | 1 + src/slic3r/GUI/TabButton.cpp | 1 + src/slic3r/GUI/UpgradePanel.cpp | 1 + src/slic3r/GUI/UpgradePanel.hpp | 1 + src/slic3r/GUI/Widgets/AMSControl.cpp | 1 + src/slic3r/GUI/Widgets/AMSControl.hpp | 1 + src/slic3r/GUI/Widgets/AMSItem.cpp | 1 + src/slic3r/GUI/Widgets/AMSItem.hpp | 1 + src/slic3r/GUI/Widgets/AnimaController.cpp | 1 + src/slic3r/GUI/Widgets/AnimaController.hpp | 1 + src/slic3r/GUI/Widgets/Button.cpp | 1 + src/slic3r/GUI/Widgets/Button.hpp | 1 + src/slic3r/GUI/Widgets/CheckBox.cpp | 1 + src/slic3r/GUI/Widgets/CheckBox.hpp | 1 + src/slic3r/GUI/Widgets/CheckList.cpp | 1 + src/slic3r/GUI/Widgets/CheckList.hpp | 1 + src/slic3r/GUI/Widgets/ComboBox.cpp | 1 + src/slic3r/GUI/Widgets/ComboBox.hpp | 1 + src/slic3r/GUI/Widgets/FanControl.cpp | 1 + src/slic3r/GUI/Widgets/FanControl.hpp | 1 + src/slic3r/GUI/Widgets/FilamentLoad.cpp | 1 + src/slic3r/GUI/Widgets/FilamentLoad.hpp | 1 + src/slic3r/GUI/Widgets/ImageSwitchButton.cpp | 1 + src/slic3r/GUI/Widgets/RadioBox.cpp | 1 + src/slic3r/GUI/Widgets/RadioGroup.hpp | 1 + src/slic3r/GUI/Widgets/RoundedRectangle.cpp | 1 + src/slic3r/GUI/Widgets/ScrolledWindow.hpp | 1 + src/slic3r/GUI/Widgets/SideButton.cpp | 1 + src/slic3r/GUI/Widgets/SideTools.hpp | 1 + src/slic3r/GUI/Widgets/SpinInput.cpp | 1 + src/slic3r/GUI/Widgets/StaticBox.cpp | 1 + src/slic3r/GUI/Widgets/StaticBox.hpp | 1 + src/slic3r/GUI/Widgets/StaticLine.cpp | 1 + src/slic3r/GUI/Widgets/StepCtrl.cpp | 1 + src/slic3r/GUI/Widgets/StepCtrl.hpp | 1 + src/slic3r/GUI/Widgets/SwitchButton.hpp | 1 + src/slic3r/GUI/Widgets/TabCtrl.cpp | 1 + src/slic3r/GUI/Widgets/TabCtrl.hpp | 1 + src/slic3r/GUI/Widgets/TempInput.cpp | 1 + src/slic3r/GUI/Widgets/TempInput.hpp | 1 + src/slic3r/GUI/Widgets/TextCtrl.h | 2 + src/slic3r/GUI/Widgets/TextInput.cpp | 1 + src/slic3r/GUI/WipeTowerDialog.hpp | 8 ++++ src/slic3r/GUI/calib_dlg.cpp | 1 + src/slic3r/GUI/calib_dlg.hpp | 1 + src/slic3r/Utils/3DPrinterOS.cpp | 11 +++++ src/slic3r/Utils/3DPrinterOS.hpp | 1 + src/slic3r/Utils/ASCIIFolding.cpp | 3 ++ src/slic3r/Utils/AstroBox.cpp | 4 ++ src/slic3r/Utils/AstroBox.hpp | 1 + src/slic3r/Utils/BBLCloudServiceAgent.cpp | 9 ++++ src/slic3r/Utils/BBLCloudServiceAgent.hpp | 5 +++ src/slic3r/Utils/BBLNetworkPlugin.cpp | 11 +++++ src/slic3r/Utils/BBLNetworkPlugin.hpp | 1 + src/slic3r/Utils/BBLPrinterAgent.cpp | 6 +++ src/slic3r/Utils/BBLPrinterAgent.hpp | 3 ++ src/slic3r/Utils/Bonjour.cpp | 21 +++++++++ src/slic3r/Utils/Bonjour.hpp | 10 +++++ src/slic3r/Utils/CalibUtils.cpp | 36 ++++++++++++++++ src/slic3r/Utils/CalibUtils.hpp | 5 +++ src/slic3r/Utils/ColorSpaceConvert.cpp | 6 +++ src/slic3r/Utils/CrealityHostDiscovery.cpp | 4 ++ src/slic3r/Utils/CrealityPrint.cpp | 18 ++++++++ src/slic3r/Utils/CrealityPrintAgent.cpp | 7 +++ src/slic3r/Utils/CrealityPrintAgent.hpp | 1 + src/slic3r/Utils/Duet.cpp | 4 ++ src/slic3r/Utils/ESP3D.cpp | 3 ++ src/slic3r/Utils/ElegooLink.cpp | 18 ++++++++ src/slic3r/Utils/ElegooLink.hpp | 3 ++ src/slic3r/Utils/EmbossStyleManager.cpp | 22 ++++++++++ src/slic3r/Utils/EmbossStyleManager.hpp | 4 ++ src/slic3r/Utils/FileHelp.cpp | 5 +++ src/slic3r/Utils/FileTransferUtils.cpp | 6 +++ src/slic3r/Utils/FixModelByCgal.cpp | 12 ++++++ src/slic3r/Utils/FixModelByCgal.hpp | 1 + src/slic3r/Utils/FlashAir.cpp | 3 ++ src/slic3r/Utils/Flashforge.cpp | 18 ++++++++ src/slic3r/Utils/FontConfigHelp.cpp | 7 +++ src/slic3r/Utils/FontConfigHelp.hpp | 1 + src/slic3r/Utils/HexFile.cpp | 6 +++ src/slic3r/Utils/Http.cpp | 16 +++++++ src/slic3r/Utils/Http.hpp | 2 + src/slic3r/Utils/InstanceID.cpp | 3 ++ src/slic3r/Utils/MKS.cpp | 4 ++ src/slic3r/Utils/MeshInspect.cpp | 6 +++ src/slic3r/Utils/MeshInspect.hpp | 1 + src/slic3r/Utils/Moonraker.cpp | 5 +++ src/slic3r/Utils/MoonrakerPrinterAgent.cpp | 27 ++++++++++++ src/slic3r/Utils/MoonrakerPrinterAgent.hpp | 5 +++ src/slic3r/Utils/NetworkAgent.cpp | 13 ++++++ src/slic3r/Utils/NetworkAgent.hpp | 3 ++ src/slic3r/Utils/NetworkAgentFactory.cpp | 6 +++ src/slic3r/Utils/NetworkAgentFactory.hpp | 2 + src/slic3r/Utils/Obico.cpp | 6 +++ src/slic3r/Utils/OctoPrint.cpp | 10 +++++ src/slic3r/Utils/OctoPrint.hpp | 1 + src/slic3r/Utils/OrcaCloudServiceAgent.cpp | 20 +++++++++ src/slic3r/Utils/OrcaCloudServiceAgent.hpp | 4 ++ src/slic3r/Utils/OrcaPrinterAgent.cpp | 5 +++ src/slic3r/Utils/OrcaPrinterAgent.hpp | 1 + src/slic3r/Utils/PaintCLI.cpp | 4 ++ src/slic3r/Utils/PresetUpdater.cpp | 13 ++++++ src/slic3r/Utils/PresetUpdater.hpp | 1 + src/slic3r/Utils/PrintHost.cpp | 13 ++++++ src/slic3r/Utils/PrintHost.hpp | 2 + src/slic3r/Utils/Process.cpp | 6 +++ src/slic3r/Utils/QidiPrinterAgent.cpp | 9 ++++ src/slic3r/Utils/QidiPrinterAgent.hpp | 1 + src/slic3r/Utils/RaycastManager.cpp | 12 ++++++ src/slic3r/Utils/RaycastManager.hpp | 5 +++ src/slic3r/Utils/Repetier.cpp | 7 +++ src/slic3r/Utils/Serial.cpp | 12 ++++++ src/slic3r/Utils/Serial.hpp | 3 ++ src/slic3r/Utils/SimplyPrint.cpp | 26 +++++++++++ src/slic3r/Utils/SimplyPrint.hpp | 5 +++ src/slic3r/Utils/SnapmakerPrinterAgent.cpp | 7 +++ src/slic3r/Utils/SnapmakerPrinterAgent.hpp | 1 + src/slic3r/Utils/TCPConsole.cpp | 7 +++ src/slic3r/Utils/TCPConsole.hpp | 4 ++ src/slic3r/Utils/UltiMaker.cpp | 10 +++++ src/slic3r/Utils/UndoRedo.cpp | 11 +++++ src/slic3r/Utils/UndoRedo.hpp | 3 ++ src/slic3r/Utils/WebSocketClient.hpp | 9 ++++ src/slic3r/Utils/WxFontUtils.cpp | 9 ++++ src/slic3r/Utils/WxFontUtils.hpp | 2 + src/slic3r/Utils/bambu_networking.hpp | 1 + src/slic3r/Utils/minilzo_extension.cpp | 1 + .../CustomWidgetsPlugin.cpp | 8 ++++ .../CustomWidgetsPlugin.hpp | 4 ++ .../wxInspectorPlugins/DPIAwarePlugin.cpp | 7 +++ .../wxInspectorPlugins/DPIAwarePlugin.hpp | 4 ++ src/slic3r/plugin/CloudPluginService.cpp | 4 ++ src/slic3r/plugin/PluginAuditManager.cpp | 9 ++++ src/slic3r/plugin/PluginAuditManager.hpp | 1 + src/slic3r/plugin/PluginBindingUtils.hpp | 3 ++ src/slic3r/plugin/PluginConfig.cpp | 14 ++++++ src/slic3r/plugin/PluginConfig.hpp | 1 + src/slic3r/plugin/PluginDescriptor.hpp | 1 + src/slic3r/plugin/PluginFsUtils.cpp | 8 ++++ src/slic3r/plugin/PluginFsUtils.hpp | 2 + src/slic3r/plugin/PluginHooks.cpp | 3 ++ src/slic3r/plugin/PluginLoader.cpp | 17 ++++++++ src/slic3r/plugin/PluginManager.cpp | 11 +++++ src/slic3r/plugin/PluginManager.hpp | 4 ++ src/slic3r/plugin/PluginResolver.cpp | 6 +++ src/slic3r/plugin/PyPluginTrampoline.hpp | 5 +++ src/slic3r/plugin/PythonInterpreter.cpp | 9 ++++ src/slic3r/plugin/PythonInterpreter.hpp | 1 + src/slic3r/plugin/PythonPluginBridge.cpp | 6 +++ src/slic3r/plugin/host/PluginHost.cpp | 2 + src/slic3r/plugin/host/PluginHostApp.cpp | 3 ++ src/slic3r/plugin/host/PluginHostGeometry.cpp | 8 ++++ src/slic3r/plugin/host/PluginHostMesh.cpp | 7 +++ src/slic3r/plugin/host/PluginHostModel.cpp | 4 ++ src/slic3r/plugin/host/PluginHostPresets.cpp | 5 +++ src/slic3r/plugin/host/PluginHostSlicing.cpp | 7 +++ src/slic3r/plugin/host/PluginHostUi.cpp | 11 +++++ src/slic3r/plugin/host/PluginPages.cpp | 14 ++++++ src/slic3r/plugin/host/PluginPages.hpp | 1 + .../pages/PagesPluginCapability.cpp | 7 +++ .../pages/PagesPluginCapabilityTrampoline.hpp | 6 +++ .../PrinterAgentPluginCapability.cpp | 5 +++ .../PrinterAgentPluginCapability.hpp | 2 + ...PrinterAgentPluginCapabilityTrampoline.hpp | 7 +++ .../script/ScriptPluginCapability.cpp | 2 + .../script/ScriptPluginCapability.hpp | 1 + .../ScriptPluginCapabilityTrampoline.hpp | 2 + .../SlicingPipelinePluginCapability.cpp | 7 +++ .../SlicingPipelinePluginCapability.hpp | 1 + ...cingPipelinePluginCapabilityTrampoline.hpp | 2 + tests/fff_print/test_cooling.cpp | 6 +++ tests/fff_print/test_extrusion_entity.cpp | 5 +++ tests/fff_print/test_extrusion_processor.cpp | 14 ++++++ tests/fff_print/test_fill.cpp | 22 ++++++++++ tests/fff_print/test_flow.cpp | 3 ++ tests/fff_print/test_gcode_timing.cpp | 8 ++++ tests/fff_print/test_gcodeprocessor.cpp | 2 + tests/fff_print/test_gcodewriter.cpp | 14 ++++++ tests/fff_print/test_helpers.cpp | 13 ++++++ tests/fff_print/test_helpers.hpp | 4 ++ tests/fff_print/test_mixed_filament.cpp | 11 +++++ tests/fff_print/test_model.cpp | 7 +++ tests/fff_print/test_multifilament.cpp | 8 ++++ tests/fff_print/test_perimeters.cpp | 12 ++++++ tests/fff_print/test_precise_seam.cpp | 15 +++++++ tests/fff_print/test_print.cpp | 14 ++++++ tests/fff_print/test_printobject.cpp | 19 ++++++++ tests/fff_print/test_seam_placer.cpp | 15 +++++++ tests/fff_print/test_skirt_brim.cpp | 16 +++++++ .../fff_print/test_slicing_pipeline_hook.cpp | 10 +++++ tests/fff_print/test_support_material.cpp | 16 +++++++ tests/fff_print/test_texture_displacement.cpp | 12 ++++++ tests/fff_print/test_tree_support.cpp | 8 ++++ tests/fff_print/test_trianglemesh.cpp | 7 +++ tests/fff_print/test_wipe.cpp | 16 +++++++ tests/fff_print/test_wipe_tower.cpp | 15 +++++++ tests/filament_group/fg_test_evaluator.hpp | 5 +++ .../filament_group/fg_test_serialization.hpp | 2 + tests/filament_group/fg_test_utils.hpp | 7 +++ .../filament_group_regression_main.cpp | 6 +++ tests/libnest2d/libnest2d_test_utils.hpp | 3 ++ tests/libnest2d/libnest2d_tests.cpp | 5 +++ tests/libnest2d/printer_parts.hpp | 1 + tests/libnest2d/test_geometry.cpp | 19 ++++++++ tests/libnest2d/test_nfp.cpp | 12 ++++++ tests/libnest2d/test_nfp_placer.cpp | 8 ++++ tests/libslic3r/libslic3r_tests.cpp | 5 +++ tests/libslic3r/test_3mf.cpp | 18 ++++++++ tests/libslic3r/test_aabbindirect.cpp | 5 +++ tests/libslic3r/test_appconfig.cpp | 1 + tests/libslic3r/test_arachne_walls.cpp | 11 +++++ tests/libslic3r/test_arrange.cpp | 14 ++++++ tests/libslic3r/test_bambu_networking.cpp | 1 + tests/libslic3r/test_buildvolume.cpp | 5 +++ tests/libslic3r/test_caddocument.cpp | 19 ++++++++ tests/libslic3r/test_calib.cpp | 4 ++ tests/libslic3r/test_clipper_offset.cpp | 7 +++ tests/libslic3r/test_clipper_utils.cpp | 8 ++++ tests/libslic3r/test_config.cpp | 12 ++++++ .../test_config_variant_expansion.cpp | 10 +++++ tests/libslic3r/test_drc.cpp | 9 ++++ .../test_elephant_foot_compensation.cpp | 4 ++ tests/libslic3r/test_filament_mixer.cpp | 8 ++++ .../libslic3r/test_fill_corner_smoothing.cpp | 4 ++ tests/libslic3r/test_fill_plane_path.cpp | 9 ++++ tests/libslic3r/test_geometry.cpp | 10 +++++ tests/libslic3r/test_hollowing.cpp | 3 ++ tests/libslic3r/test_indexed_triangle_set.cpp | 9 ++++ tests/libslic3r/test_instance_lock.cpp | 2 + tests/libslic3r/test_lay_on_face.cpp | 10 +++++ tests/libslic3r/test_locales_utils.cpp | 2 + tests/libslic3r/test_marchingsquares.cpp | 22 ++++++++++ tests/libslic3r/test_meshboolean.cpp | 2 + .../libslic3r/test_minimum_spanning_tree.cpp | 4 ++ tests/libslic3r/test_miniz_extension.cpp | 10 +++++ tests/libslic3r/test_model.cpp | 5 +++ .../test_multimaterial_segmentation.cpp | 6 +++ tests/libslic3r/test_mutable_polygon.cpp | 4 ++ .../libslic3r/test_mutable_priority_queue.cpp | 7 +++ tests/libslic3r/test_nozzle_volume_type.cpp | 4 ++ tests/libslic3r/test_obj.cpp | 7 +++ tests/libslic3r/test_optimizers.cpp | 4 ++ tests/libslic3r/test_ordering_strategies.cpp | 8 ++++ tests/libslic3r/test_parallel_resolve.cpp | 2 + tests/libslic3r/test_placeholder_parser.cpp | 7 +++ tests/libslic3r/test_polygon.cpp | 4 ++ tests/libslic3r/test_precise_seam_3mf.cpp | 11 +++++ .../libslic3r/test_preset_bundle_loading.cpp | 23 ++++++++++ tests/libslic3r/test_preset_diff.cpp | 6 +++ tests/libslic3r/test_preset_options.cpp | 4 ++ tests/libslic3r/test_preset_setting_id.cpp | 3 ++ tests/libslic3r/test_sketchconstraints.cpp | 7 +++ tests/libslic3r/test_sketchedit.cpp | 7 +++ tests/libslic3r/test_sketchimport.cpp | 6 +++ tests/libslic3r/test_sketchinference.cpp | 5 +++ tests/libslic3r/test_sketchprofile.cpp | 8 ++++ tests/libslic3r/test_slvs_constraints.cpp | 5 +++ tests/libslic3r/test_step.cpp | 4 ++ tests/libslic3r/test_stl.cpp | 3 ++ tests/libslic3r/test_texture_displacement.cpp | 23 ++++++++++ tests/libslic3r/test_timeutils.cpp | 3 ++ .../test_toolordering_nozzle_group.cpp | 8 ++++ tests/libslic3r/test_triangle_selector.cpp | 7 +++ tests/libslic3r/test_utils.cpp | 13 ++++++ tests/libslic3r/test_vendor_cache.cpp | 15 +++++++ tests/libslic3r/test_voronoi.cpp | 11 +++++ tests/libslic3r/test_wipe_path.cpp | 10 +++++ tests/libslic3r/test_wipe_tower.cpp | 10 +++++ tests/libslic3r/test_wipe_tower_estimate.cpp | 11 +++++ tests/sla_print/sla_print_tests.cpp | 20 +++++++++ tests/sla_print/sla_raycast_tests.cpp | 7 +++ tests/sla_print/sla_supptgen_tests.cpp | 13 ++++++ tests/sla_print/sla_test_utils.cpp | 31 +++++++++++++ tests/sla_print/sla_test_utils.hpp | 15 +++++++ tests/slic3rutils/plugin_test_utils.hpp | 1 + tests/slic3rutils/python_test_support.hpp | 2 + tests/slic3rutils/slic3rutils_tests_main.cpp | 1 + tests/slic3rutils/test_action_source.cpp | 4 ++ tests/slic3rutils/test_bambu_filament_ids.cpp | 2 + tests/slic3rutils/test_creality_cfs_match.cpp | 2 + tests/slic3rutils/test_dev_mapping.cpp | 6 +++ .../test_device_manager_integration.cpp | 3 ++ tests/slic3rutils/test_device_progress.cpp | 3 ++ .../test_filament_bitmap_utils.cpp | 6 +++ tests/slic3rutils/test_file_url.cpp | 3 ++ tests/slic3rutils/test_lazy.cpp | 3 ++ tests/slic3rutils/test_network_versions.cpp | 5 +++ tests/slic3rutils/test_orca_cloud_agent.cpp | 3 ++ tests/slic3rutils/test_plugin_audit.cpp | 4 ++ .../test_plugin_capabilities_in_use.cpp | 2 + .../test_plugin_capability_config.cpp | 5 +++ .../test_plugin_cloud_metadata.cpp | 5 +++ tests/slic3rutils/test_plugin_config.cpp | 5 +++ tests/slic3rutils/test_plugin_host_api.cpp | 8 ++++ tests/slic3rutils/test_plugin_install.cpp | 6 +++ tests/slic3rutils/test_plugin_lifecycle.cpp | 8 ++++ .../slic3rutils/test_plugin_printer_agent.cpp | 5 +++ tests/slic3rutils/test_plugin_sort.cpp | 3 ++ tests/slic3rutils/test_plugin_status.cpp | 1 + tests/slic3rutils/test_prebuild_queue.cpp | 2 + .../slic3rutils/test_precise_seam_plugin.cpp | 4 ++ tests/slic3rutils/test_printer_agent.cpp | 6 +++ tests/slic3rutils/test_printhost.cpp | 8 ++++ tests/slic3rutils/test_scene_raycaster.cpp | 10 +++++ tests/slic3rutils/test_shortcuts.cpp | 6 +++ .../test_slicing_pipeline_bindings.cpp | 14 ++++++ .../test_slicing_pipeline_config.cpp | 13 ++++++ tests/slic3rutils/test_staged_build.cpp | 1 + tests/slic3rutils/test_user_manager.cpp | 2 + .../slic3rutils/test_web_media_controller.cpp | 8 ++++ tests/test_utils.hpp | 3 ++ 384 files changed, 2308 insertions(+), 3 deletions(-) mode change 100755 => 100644 src/slic3r/Utils/3DPrinterOS.cpp mode change 100755 => 100644 src/slic3r/Utils/3DPrinterOS.hpp diff --git a/.clang-tidy b/.clang-tidy index a670e9e1b1..f45561badb 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -7,9 +7,15 @@ CheckOptions: misc-include-cleaner.UnusedIncludes: false # Headers that declare a symbol but are not the one to include: per-platform # implementations of wxWidgets and Boost.Thread (a Linux run would suggest the - # GTK or pthread one), library internals and forward declarations, CPython's - # headers behind Python.h, curl's behind curl.h, oneTBB's behind tbb/, and + # GTK or pthread one), library internals and forward declarations (MSVC's STL + # __msvc_* and the Windows UCRT's corecrt_* included), CPython's headers behind + # Python.h (python3.x/ on Linux and macOS, libpython/include/ on Windows), + # curl's behind curl.h, oneTBB's behind tbb/, and # admesh's stl.h, which the include path also exposes without its directory. + # Clipper's own clipper.hpp is only included through libslic3r/clipper.hpp or + # clipper_z.hpp, which configure it first, and Boost.Polygon's headers only + # work through boost/polygon/polygon.hpp or voronoi.hpp. minilzo's config + # headers are internal to minilzo.h. # FFmpeg's C headers are left alone because they are only included inside # extern "C", which an inserted include would miss. OS-specific headers (GLib, # GTK, D-Bus, POSIX, the Windows SDK) are only used inside platform #if blocks, @@ -23,7 +29,11 @@ CheckOptions: .*[/\\]impl[/\\].*; .*_fwd\.hpp; python3\.[0-9]+[/\\].*; + libpython[/\\]include[/\\].*; bits[/\\].*; + corecrt_.*\.h; + __msvc_.*\.hpp; + boost[/\\]multiprecision[/\\]fwd\.hpp; imconfig\.h; expat_external\.h; admesh[/\\]stl\.h; @@ -44,4 +54,9 @@ CheckOptions: fcntl\.h; termios\.h; [/\\](um|shared)[/\\].*; - sal\.h + sal\.h; + clipper[/\\]clipper\.hpp; + png(lib)?conf\.h; + mcut[/\\]platform\.h; + boost[/\\]polygon[/\\].*; + lzo(conf|defs)\.h diff --git a/src/OrcaSlicer.cpp b/src/OrcaSlicer.cpp index 87352f505e..992a9c9bc2 100644 --- a/src/OrcaSlicer.cpp +++ b/src/OrcaSlicer.cpp @@ -20,6 +20,49 @@ #endif /* SLIC3R_GUI */ #endif /* WIN32 */ +#include +#include +#include "libslic3r/PrintBase.hpp" +#include "slic3r/Utils/json_diff.hpp" +#include +#include +#include +#include +#include +#include "libslic3r/LocalesUtils.hpp" +#include +#include +#include +#include "libslic3r/Color.hpp" +#include "libslic3r/TriangleSelector.hpp" +#include +#include "libslic3r/Format/bbs_3mf.hpp" +#include +#include +#include +#include "libslic3r/Point.hpp" +#include "libslic3r_version.h" +#include "libslic3r/Semver.hpp" +#include "libslic3r/PrintConfig.hpp" +#include "libslic3r/BoundingBox.hpp" +#include "libslic3r/CustomGCode.hpp" +#include +#include +#include +#include +#include "libslic3r/ClipperUtils.hpp" +#include "libslic3r/GCode/WipeTowerEstimate.hpp" +#include "slic3r/GUI/Gizmos/GLGizmoBase.hpp" +#include +#include "libslic3r/Arrange.hpp" +#include "libslic3r/Polygon.hpp" +#include "libslic3r/GCode/ThumbnailData.hpp" +#include "slic3r/GUI/3DScene.hpp" +#include "slic3r/GUI/GLShader.hpp" +#include +#include +#include + #include #include #include diff --git a/src/OrcaSlicer.hpp b/src/OrcaSlicer.hpp index 380607e95f..9aceee4a20 100644 --- a/src/OrcaSlicer.hpp +++ b/src/OrcaSlicer.hpp @@ -1,7 +1,14 @@ #ifndef SLIC3R_HPP #define SLIC3R_HPP +#include +#include "libslic3r/BoundingBox.hpp" +#include "libslic3r/PrintConfig.hpp" +#include "libslic3r/Format/bbs_3mf.hpp" +#include "libslic3r/GCode/ThumbnailData.hpp" #include +#include +#include #include "libslic3r/Config.hpp" #include "libslic3r/Model.hpp" diff --git a/src/dev-utils/OrcaSlicer_profile_validator.cpp b/src/dev-utils/OrcaSlicer_profile_validator.cpp index c328c565c8..bbfa53c262 100644 --- a/src/dev-utils/OrcaSlicer_profile_validator.cpp +++ b/src/dev-utils/OrcaSlicer_profile_validator.cpp @@ -8,6 +8,28 @@ #define NANOSVGRAST_IMPLEMENTATION #include "nanosvg/nanosvgrast.h" +#include +#include +#include +#include "libslic3r/Point.hpp" +#include "libslic3r/libslic3r.h" +#include "libslic3r/Polygon.hpp" +#include "libslic3r/PrintConfig.hpp" +#include +#include "libslic3r/CustomGCode.hpp" +#include +#include +#include +#include +#include +#include +#include +#include "libslic3r/PlaceholderParser.hpp" +#include +#include +#include +#include + #include "libslic3r/BoundingBox.hpp" #include "libslic3r/GCode.hpp" #include "libslic3r/GCode/WipeTower.hpp" diff --git a/src/dev-utils/encoding-check.cpp b/src/dev-utils/encoding-check.cpp index 2a645e2ab2..0eb390f161 100644 --- a/src/dev-utils/encoding-check.cpp +++ b/src/dev-utils/encoding-check.cpp @@ -1,3 +1,4 @@ +#include #include #include #include diff --git a/src/dev-utils/generate_system_cache.cpp b/src/dev-utils/generate_system_cache.cpp index 017db79836..7baa11a8a0 100644 --- a/src/dev-utils/generate_system_cache.cpp +++ b/src/dev-utils/generate_system_cache.cpp @@ -4,9 +4,19 @@ #include #include +#include +#include #include #include +#include +#include +#include +#include +#include +#include #include +#include +#include "libslic3r/Config.hpp" using namespace Slic3r; namespace fs = boost::filesystem; diff --git a/src/dev-utils/profile_include_dump.cpp b/src/dev-utils/profile_include_dump.cpp index f2486dedfc..6561027f70 100644 --- a/src/dev-utils/profile_include_dump.cpp +++ b/src/dev-utils/profile_include_dump.cpp @@ -11,13 +11,19 @@ #include "libslic3r/Utils.hpp" #include +#include +#include #include #include "nlohmann/json.hpp" #include +#include +#include #include +#include "libslic3r/Config.hpp" #include #include +#include #include #include diff --git a/src/libvgcode/include/ColorPrint.hpp b/src/libvgcode/include/ColorPrint.hpp index 071b93a708..bbae9284a5 100644 --- a/src/libvgcode/include/ColorPrint.hpp +++ b/src/libvgcode/include/ColorPrint.hpp @@ -6,6 +6,8 @@ #define VGCODE_COLORPRINT_HPP #include "../include/Types.hpp" +#include +#include namespace libvgcode { diff --git a/src/libvgcode/include/ColorRange.hpp b/src/libvgcode/include/ColorRange.hpp index e6c83cb21d..ce34c3de7b 100644 --- a/src/libvgcode/include/ColorRange.hpp +++ b/src/libvgcode/include/ColorRange.hpp @@ -7,7 +7,10 @@ #include "../include/Types.hpp" +#include #include +#include +#include namespace libvgcode { diff --git a/src/libvgcode/include/GCodeInputData.hpp b/src/libvgcode/include/GCodeInputData.hpp index 5085322e37..a0057230e7 100644 --- a/src/libvgcode/include/GCodeInputData.hpp +++ b/src/libvgcode/include/GCodeInputData.hpp @@ -6,6 +6,8 @@ #define VGCODE_GCODEINPUTDATA_HPP #include "PathVertex.hpp" +#include +#include "Types.hpp" namespace libvgcode { diff --git a/src/libvgcode/include/PathVertex.hpp b/src/libvgcode/include/PathVertex.hpp index f5704d5376..8f24d6a440 100644 --- a/src/libvgcode/include/PathVertex.hpp +++ b/src/libvgcode/include/PathVertex.hpp @@ -7,7 +7,9 @@ #include "Types.hpp" +#include #include +#include namespace libvgcode { diff --git a/src/libvgcode/include/Types.hpp b/src/libvgcode/include/Types.hpp index 099f622dc3..1c3b50208a 100644 --- a/src/libvgcode/include/Types.hpp +++ b/src/libvgcode/include/Types.hpp @@ -5,6 +5,7 @@ #ifndef VGCODE_TYPES_HPP #define VGCODE_TYPES_HPP +#include #define VGCODE_ENABLE_COG_AND_TOOL_MARKERS 0 #include diff --git a/src/libvgcode/include/Viewer.hpp b/src/libvgcode/include/Viewer.hpp index 458bc4b69f..a714bf1756 100644 --- a/src/libvgcode/include/Viewer.hpp +++ b/src/libvgcode/include/Viewer.hpp @@ -7,7 +7,10 @@ #include "Types.hpp" +#include +#include #include +#include namespace libvgcode { diff --git a/src/libvgcode/src/Bitset.hpp b/src/libvgcode/src/Bitset.hpp index eebe297262..75dbe5580b 100644 --- a/src/libvgcode/src/Bitset.hpp +++ b/src/libvgcode/src/Bitset.hpp @@ -6,6 +6,9 @@ #define VGCODE_BITSET_HPP #include +#include +#include +#include #include namespace libvgcode { diff --git a/src/libvgcode/src/ColorRange.cpp b/src/libvgcode/src/ColorRange.cpp index 1ba0dfc526..86a034fffe 100644 --- a/src/libvgcode/src/ColorRange.cpp +++ b/src/libvgcode/src/ColorRange.cpp @@ -7,8 +7,13 @@ #include "Utils.hpp" #include +#include #include +#include #include +#include "../include/Types.hpp" +#include +#include namespace libvgcode { diff --git a/src/libvgcode/src/ExtrusionRoles.cpp b/src/libvgcode/src/ExtrusionRoles.cpp index e38886c57b..bac4eac60e 100644 --- a/src/libvgcode/src/ExtrusionRoles.cpp +++ b/src/libvgcode/src/ExtrusionRoles.cpp @@ -3,6 +3,11 @@ ///|/ libvgcode is released under the terms of the AGPLv3 or higher ///|/ #include "ExtrusionRoles.hpp" +#include "../include/Types.hpp" +#include +#include +#include +#include namespace libvgcode { diff --git a/src/libvgcode/src/ExtrusionRoles.hpp b/src/libvgcode/src/ExtrusionRoles.hpp index ee949fbf0d..5ab06cef94 100644 --- a/src/libvgcode/src/ExtrusionRoles.hpp +++ b/src/libvgcode/src/ExtrusionRoles.hpp @@ -7,7 +7,10 @@ #include "../include/Types.hpp" +#include +#include #include +#include namespace libvgcode { diff --git a/src/libvgcode/src/Layers.cpp b/src/libvgcode/src/Layers.cpp index 16a2e38fcd..5e52bc7aa9 100644 --- a/src/libvgcode/src/Layers.cpp +++ b/src/libvgcode/src/Layers.cpp @@ -9,6 +9,11 @@ #include #include +#include "../include/Types.hpp" +#include +#include +#include +#include namespace libvgcode { diff --git a/src/libvgcode/src/Layers.hpp b/src/libvgcode/src/Layers.hpp index bf3386016c..e55d1f04af 100644 --- a/src/libvgcode/src/Layers.hpp +++ b/src/libvgcode/src/Layers.hpp @@ -6,6 +6,11 @@ #define VGCODE_LAYERS_HPP #include "Range.hpp" +#include +#include +#include "../include/Types.hpp" +#include +#include namespace libvgcode { diff --git a/src/libvgcode/src/OpenGLUtils.cpp b/src/libvgcode/src/OpenGLUtils.cpp index bc39b29a4d..c6617af506 100644 --- a/src/libvgcode/src/OpenGLUtils.cpp +++ b/src/libvgcode/src/OpenGLUtils.cpp @@ -10,6 +10,7 @@ #include #include #include +#include namespace libvgcode { diff --git a/src/libvgcode/src/OptionTemplate.cpp b/src/libvgcode/src/OptionTemplate.cpp index 316897ad3b..cc2b39a5ec 100644 --- a/src/libvgcode/src/OptionTemplate.cpp +++ b/src/libvgcode/src/OptionTemplate.cpp @@ -6,6 +6,9 @@ #include "OpenGLUtils.hpp" #include "Utils.hpp" +#include +#include "../include/Types.hpp" +#include #include #include #include diff --git a/src/libvgcode/src/PathVertex.cpp b/src/libvgcode/src/PathVertex.cpp index ed1569bc36..e157f20ff7 100644 --- a/src/libvgcode/src/PathVertex.cpp +++ b/src/libvgcode/src/PathVertex.cpp @@ -3,6 +3,7 @@ ///|/ libvgcode is released under the terms of the AGPLv3 or higher ///|/ #include "../include/PathVertex.hpp" +#include "../include/Types.hpp" namespace libvgcode { diff --git a/src/libvgcode/src/Range.cpp b/src/libvgcode/src/Range.cpp index 4d8df12f3d..5ef4570d1f 100644 --- a/src/libvgcode/src/Range.cpp +++ b/src/libvgcode/src/Range.cpp @@ -5,6 +5,7 @@ #include "Range.hpp" #include +#include "../include/Types.hpp" namespace libvgcode { diff --git a/src/libvgcode/src/SegmentTemplate.cpp b/src/libvgcode/src/SegmentTemplate.cpp index 9d9872aa3b..f925e0a860 100644 --- a/src/libvgcode/src/SegmentTemplate.cpp +++ b/src/libvgcode/src/SegmentTemplate.cpp @@ -5,6 +5,7 @@ #include "SegmentTemplate.hpp" #include "OpenGLUtils.hpp" +#include #include #include diff --git a/src/libvgcode/src/Settings.hpp b/src/libvgcode/src/Settings.hpp index b3aa371c4a..fe205531f2 100644 --- a/src/libvgcode/src/Settings.hpp +++ b/src/libvgcode/src/Settings.hpp @@ -7,6 +7,8 @@ #include "../include/Types.hpp" +#include +#include #include namespace libvgcode { diff --git a/src/libvgcode/src/ToolMarker.cpp b/src/libvgcode/src/ToolMarker.cpp index 3e595faec0..f4447fe9ad 100644 --- a/src/libvgcode/src/ToolMarker.cpp +++ b/src/libvgcode/src/ToolMarker.cpp @@ -7,6 +7,7 @@ #include "Utils.hpp" #include +#include "../include/Types.hpp" #if VGCODE_ENABLE_COG_AND_TOOL_MARKERS diff --git a/src/libvgcode/src/Types.cpp b/src/libvgcode/src/Types.cpp index 2aa8a40e9d..1badfae81b 100644 --- a/src/libvgcode/src/Types.cpp +++ b/src/libvgcode/src/Types.cpp @@ -5,6 +5,7 @@ #include "../include/Types.hpp" #include +#include namespace libvgcode { diff --git a/src/libvgcode/src/Utils.cpp b/src/libvgcode/src/Utils.cpp index aee2cd4875..46ed6a336c 100644 --- a/src/libvgcode/src/Utils.cpp +++ b/src/libvgcode/src/Utils.cpp @@ -6,6 +6,9 @@ #include #include +#include "../include/Types.hpp" +#include +#include namespace libvgcode { diff --git a/src/libvgcode/src/Utils.hpp b/src/libvgcode/src/Utils.hpp index 84c3deb3c5..4db67e426f 100644 --- a/src/libvgcode/src/Utils.hpp +++ b/src/libvgcode/src/Utils.hpp @@ -6,6 +6,8 @@ #define VGCODE_UTILS_HPP #include "../include/Types.hpp" +#include +#include #ifdef _WIN32 #define STDVEC_MEMSIZE(NAME, TYPE) NAME.capacity() * ((sizeof(TYPE) + __alignof(TYPE) - 1) / __alignof(TYPE)) * __alignof(TYPE) diff --git a/src/libvgcode/src/ViewRange.cpp b/src/libvgcode/src/ViewRange.cpp index ea2f1e916e..b5657da1b7 100644 --- a/src/libvgcode/src/ViewRange.cpp +++ b/src/libvgcode/src/ViewRange.cpp @@ -3,6 +3,7 @@ ///|/ libvgcode is released under the terms of the AGPLv3 or higher ///|/ #include "ViewRange.hpp" +#include "../include/Types.hpp" namespace libvgcode { diff --git a/src/libvgcode/src/ViewRange.hpp b/src/libvgcode/src/ViewRange.hpp index b9356fc760..7d5f9eb32e 100644 --- a/src/libvgcode/src/ViewRange.hpp +++ b/src/libvgcode/src/ViewRange.hpp @@ -6,6 +6,7 @@ #define VGCODE_VIEWRANGE_HPP #include "Range.hpp" +#include "../include/Types.hpp" namespace libvgcode { diff --git a/src/libvgcode/src/Viewer.cpp b/src/libvgcode/src/Viewer.cpp index 089f1f7e7b..b082a6e29d 100644 --- a/src/libvgcode/src/Viewer.cpp +++ b/src/libvgcode/src/Viewer.cpp @@ -4,6 +4,12 @@ ///|/ #include "../include/Viewer.hpp" #include "ViewerImpl.hpp" +#include +#include +#include "../include/Types.hpp" +#include +#include +#include namespace libvgcode { diff --git a/src/libvgcode/src/ViewerImpl.cpp b/src/libvgcode/src/ViewerImpl.cpp index ee38594817..8dc908d6d8 100644 --- a/src/libvgcode/src/ViewerImpl.cpp +++ b/src/libvgcode/src/ViewerImpl.cpp @@ -9,14 +9,26 @@ #include "OpenGLUtils.hpp" #include "Utils.hpp" +#include +#include "../include/Types.hpp" +#include +#include "../include/PathVertex.hpp" +#include "Bitset.hpp" +#include "../include/ColorPrint.hpp" +#include +#include #include #include +#include #include #include #include #include #include #include +#include +#include +#include namespace libvgcode { diff --git a/src/libvgcode/src/ViewerImpl.hpp b/src/libvgcode/src/ViewerImpl.hpp index 335fb5ef52..0877e6265b 100644 --- a/src/libvgcode/src/ViewerImpl.hpp +++ b/src/libvgcode/src/ViewerImpl.hpp @@ -8,6 +8,12 @@ #include "Settings.hpp" #include "SegmentTemplate.hpp" #include "OptionTemplate.hpp" +#include "../include/Types.hpp" +#include +#include +#include +#include +#include #if VGCODE_ENABLE_COG_AND_TOOL_MARKERS #include "CogMarker.hpp" #include "ToolMarker.hpp" diff --git a/src/slic3r/Config/Snapshot.cpp b/src/slic3r/Config/Snapshot.cpp index a7135eac6f..cf568432dc 100644 --- a/src/slic3r/Config/Snapshot.cpp +++ b/src/slic3r/Config/Snapshot.cpp @@ -1,5 +1,21 @@ #include "Snapshot.hpp" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "libslic3r/Exception.hpp" +#include "slic3r/Config/Version.hpp" +#include #include #include @@ -26,7 +42,10 @@ #include "../GUI/MainFrame.hpp" #include "../GUI/MsgDialog.hpp" +#include +#include #include +#include #define SLIC3R_SNAPSHOTS_DIR "snapshots" #define SLIC3R_SNAPSHOT_FILE "snapshot.ini" diff --git a/src/slic3r/Config/Snapshot.hpp b/src/slic3r/Config/Snapshot.hpp index f453006338..96a0c33771 100644 --- a/src/slic3r/Config/Snapshot.hpp +++ b/src/slic3r/Config/Snapshot.hpp @@ -1,6 +1,8 @@ #ifndef slic3r_GUI_Snapshot_ #define slic3r_GUI_Snapshot_ +#include +#include #include #include #include diff --git a/src/slic3r/Config/Version.cpp b/src/slic3r/Config/Version.cpp index 092594ce51..f25577c9dc 100644 --- a/src/slic3r/Config/Version.cpp +++ b/src/slic3r/Config/Version.cpp @@ -1,9 +1,21 @@ #include "Version.hpp" +#include +#include +#include +#include #include #include #include +#include "libslic3r/Semver.hpp" +#include +#include +#include +#include +#include +#include +#include "libslic3r/Exception.hpp" #include "libslic3r/libslic3r.h" #include "libslic3r/Config.hpp" diff --git a/src/slic3r/Config/Version.hpp b/src/slic3r/Config/Version.hpp index 8249573dec..5e10e9ab95 100644 --- a/src/slic3r/Config/Version.hpp +++ b/src/slic3r/Config/Version.hpp @@ -1,6 +1,7 @@ #ifndef slic3r_GUI_ConfigIndex_ #define slic3r_GUI_ConfigIndex_ +#include #include #include diff --git a/src/slic3r/GUI/2DBed.cpp b/src/slic3r/GUI/2DBed.cpp index 3257d05adc..4bf71c2d50 100644 --- a/src/slic3r/GUI/2DBed.cpp +++ b/src/slic3r/GUI/2DBed.cpp @@ -18,6 +18,7 @@ #include "slic3r/GUI/Gizmos/GLGizmoBase.hpp" #include "slic3r/GUI/Widgets/StateColor.hpp" #include +#include #include #include #include diff --git a/src/slic3r/GUI/AMSMaterialsSetting.cpp b/src/slic3r/GUI/AMSMaterialsSetting.cpp index 08e7d7a056..66e87ac3af 100644 --- a/src/slic3r/GUI/AMSMaterialsSetting.cpp +++ b/src/slic3r/GUI/AMSMaterialsSetting.cpp @@ -12,6 +12,7 @@ #include #include #include +#include #include #include "slic3r/GUI/GUI_Utils.hpp" #include "slic3r/GUI/Widgets/Button.hpp" diff --git a/src/slic3r/GUI/AMSMaterialsSetting.hpp b/src/slic3r/GUI/AMSMaterialsSetting.hpp index 79880a6ec5..0ecc8809be 100644 --- a/src/slic3r/GUI/AMSMaterialsSetting.hpp +++ b/src/slic3r/GUI/AMSMaterialsSetting.hpp @@ -16,6 +16,7 @@ #include "Widgets/TextInput.hpp" #include "Widgets/HyperLink.hpp" #include "slic3r/Utils/CalibUtils.hpp" +#include #include #include #include diff --git a/src/slic3r/GUI/AMSSetting.cpp b/src/slic3r/GUI/AMSSetting.cpp index d967fa37ab..f953dd115a 100644 --- a/src/slic3r/GUI/AMSSetting.cpp +++ b/src/slic3r/GUI/AMSSetting.cpp @@ -12,6 +12,7 @@ #include "slic3r/GUI/Widgets/AnimaController.hpp" #include "slic3r/GUI/Widgets/Label.hpp" #include "slic3r/GUI/Widgets/ComboBox.hpp" +#include #include #include #include "slic3r/GUI/GUI_Utils.hpp" diff --git a/src/slic3r/GUI/AMSSetting.hpp b/src/slic3r/GUI/AMSSetting.hpp index 24467f8d13..1d6b559981 100644 --- a/src/slic3r/GUI/AMSSetting.hpp +++ b/src/slic3r/GUI/AMSSetting.hpp @@ -12,6 +12,7 @@ #include "Widgets/CheckBox.hpp" #include "slic3r/GUI/DeviceCore/DevFilaAmsSetting.h" +#include #include #include #include diff --git a/src/slic3r/GUI/CAD/DesignCanvas.cpp b/src/slic3r/GUI/CAD/DesignCanvas.cpp index 517fbcee63..1abfd81feb 100644 --- a/src/slic3r/GUI/CAD/DesignCanvas.cpp +++ b/src/slic3r/GUI/CAD/DesignCanvas.cpp @@ -18,6 +18,7 @@ #include #include +#include #include #include #include "libslic3r/CAD/SketchEngine.hpp" diff --git a/src/slic3r/GUI/CAD/DesignPanel.cpp b/src/slic3r/GUI/CAD/DesignPanel.cpp index 59e3aaac8e..d61d0aa11f 100644 --- a/src/slic3r/GUI/CAD/DesignPanel.cpp +++ b/src/slic3r/GUI/CAD/DesignPanel.cpp @@ -34,6 +34,7 @@ #include #include #include +#include #include #include #include diff --git a/src/slic3r/GUI/CalibrationPanel.hpp b/src/slic3r/GUI/CalibrationPanel.hpp index f427b37871..adf03e4be9 100644 --- a/src/slic3r/GUI/CalibrationPanel.hpp +++ b/src/slic3r/GUI/CalibrationPanel.hpp @@ -6,6 +6,24 @@ #include "Lazy.hpp" #include "SelectMachinePop.hpp" #include "Widgets/SideTools.hpp" +#include +#include "libslic3r/calib.hpp" +#include +#include "slic3r/GUI/wxExtensions.hpp" +#include "slic3r/GUI/DeviceManager.hpp" +#include +#include +#include +#include "slic3r/GUI/Widgets/PopupWindow.hpp" +#include +#include +#include +#include +#include +#include +#include +#include +#include "slic3r/GUI/StagedBuild.hpp" namespace Slic3r { namespace GUI { diff --git a/src/slic3r/GUI/CapsuleButton.hpp b/src/slic3r/GUI/CapsuleButton.hpp index ac23f174e8..f8afdddabb 100644 --- a/src/slic3r/GUI/CapsuleButton.hpp +++ b/src/slic3r/GUI/CapsuleButton.hpp @@ -3,6 +3,7 @@ #include "wxExtensions.hpp" #include "Widgets/Label.hpp" +#include #include #include #include diff --git a/src/slic3r/GUI/ConfigExceptions.hpp b/src/slic3r/GUI/ConfigExceptions.hpp index 181442d4e3..e3c5b08cea 100644 --- a/src/slic3r/GUI/ConfigExceptions.hpp +++ b/src/slic3r/GUI/ConfigExceptions.hpp @@ -1,4 +1,8 @@ #include +#include + +#include "libslic3r/Exception.hpp" + namespace Slic3r { class ConfigError : public Slic3r::RuntimeError { diff --git a/src/slic3r/GUI/ConfigManipulation.cpp b/src/slic3r/GUI/ConfigManipulation.cpp index 91c5f211e1..48c0cd0d5f 100644 --- a/src/slic3r/GUI/ConfigManipulation.cpp +++ b/src/slic3r/GUI/ConfigManipulation.cpp @@ -24,6 +24,7 @@ #include #include #include +#include namespace Slic3r { namespace GUI { diff --git a/src/slic3r/GUI/DeviceTab/uiAMSBestPositionPopup.cpp b/src/slic3r/GUI/DeviceTab/uiAMSBestPositionPopup.cpp index f02007593a..151d53810b 100644 --- a/src/slic3r/GUI/DeviceTab/uiAMSBestPositionPopup.cpp +++ b/src/slic3r/GUI/DeviceTab/uiAMSBestPositionPopup.cpp @@ -13,6 +13,7 @@ #include "slic3r/GUI/Widgets/StateColor.hpp" +#include #include #include #include diff --git a/src/slic3r/GUI/DeviceTab/uiAMSBestPositionPopup.hpp b/src/slic3r/GUI/DeviceTab/uiAMSBestPositionPopup.hpp index 34cd85e692..dcc7654b41 100644 --- a/src/slic3r/GUI/DeviceTab/uiAMSBestPositionPopup.hpp +++ b/src/slic3r/GUI/DeviceTab/uiAMSBestPositionPopup.hpp @@ -18,6 +18,7 @@ #include "libslic3r/ProjectTask.hpp" #include #include +#include #include #include #include diff --git a/src/slic3r/GUI/DeviceTab/uiAmsHumidityPopup.cpp b/src/slic3r/GUI/DeviceTab/uiAmsHumidityPopup.cpp index 5014743f2d..462fcf892e 100644 --- a/src/slic3r/GUI/DeviceTab/uiAmsHumidityPopup.cpp +++ b/src/slic3r/GUI/DeviceTab/uiAmsHumidityPopup.cpp @@ -14,6 +14,7 @@ #include "slic3r/GUI/Widgets/StateColor.hpp" +#include #include #include "slic3r/GUI/Widgets/Label.hpp" #include diff --git a/src/slic3r/GUI/DeviceTab/wgtDeviceNozzleRack.h b/src/slic3r/GUI/DeviceTab/wgtDeviceNozzleRack.h index 16cd311120..c433973e44 100644 --- a/src/slic3r/GUI/DeviceTab/wgtDeviceNozzleRack.h +++ b/src/slic3r/GUI/DeviceTab/wgtDeviceNozzleRack.h @@ -14,9 +14,16 @@ #include "slic3r/GUI/Widgets/StaticBox.hpp" #include "slic3r/GUI/Widgets/AnimaController.hpp" +#include +#include +#include +#include +#include #include #include #include +#include +#include // Previous definitions class Button; diff --git a/src/slic3r/GUI/ExtrusionCalibration.cpp b/src/slic3r/GUI/ExtrusionCalibration.cpp index e15470e462..a2d14fa370 100644 --- a/src/slic3r/GUI/ExtrusionCalibration.cpp +++ b/src/slic3r/GUI/ExtrusionCalibration.cpp @@ -6,6 +6,7 @@ #include #include "I18N.hpp" #include +#include #include #include "slic3r/GUI/GUI_Utils.hpp" #include "slic3r/GUI/wxExtensions.hpp" diff --git a/src/slic3r/GUI/ExtrusionCalibration.hpp b/src/slic3r/GUI/ExtrusionCalibration.hpp index cbee1b56b1..3b500373da 100644 --- a/src/slic3r/GUI/ExtrusionCalibration.hpp +++ b/src/slic3r/GUI/ExtrusionCalibration.hpp @@ -16,6 +16,7 @@ #include "ParamsDialog.hpp" #include "GUI_App.hpp" #include "wx/hyperlink.h" +#include #include #include #include diff --git a/src/slic3r/GUI/GUI_AuxiliaryList.hpp b/src/slic3r/GUI/GUI_AuxiliaryList.hpp index 8604259371..88bab94a3d 100644 --- a/src/slic3r/GUI/GUI_AuxiliaryList.hpp +++ b/src/slic3r/GUI/GUI_AuxiliaryList.hpp @@ -6,10 +6,14 @@ #include #include +#include #include +#include #include #include #include +#include +#include #include "AuxiliaryDataViewModel.hpp" diff --git a/src/slic3r/GUI/GUI_ObjectList.cpp b/src/slic3r/GUI/GUI_ObjectList.cpp index e2226b3d3e..38633dc86a 100644 --- a/src/slic3r/GUI/GUI_ObjectList.cpp +++ b/src/slic3r/GUI/GUI_ObjectList.cpp @@ -67,6 +67,7 @@ #include #include #include +#include #include #include #include diff --git a/src/slic3r/GUI/GUI_ObjectTableSettings.cpp b/src/slic3r/GUI/GUI_ObjectTableSettings.cpp index fbca655a24..949abfcb13 100644 --- a/src/slic3r/GUI/GUI_ObjectTableSettings.cpp +++ b/src/slic3r/GUI/GUI_ObjectTableSettings.cpp @@ -15,6 +15,7 @@ #include "I18N.hpp" #include "ConfigManipulation.hpp" +#include #include #include #include diff --git a/src/slic3r/GUI/GUI_ObjectTableSettings.hpp b/src/slic3r/GUI/GUI_ObjectTableSettings.hpp index 24e3d427a9..490df76a75 100644 --- a/src/slic3r/GUI/GUI_ObjectTableSettings.hpp +++ b/src/slic3r/GUI/GUI_ObjectTableSettings.hpp @@ -1,15 +1,21 @@ #ifndef slic3r_GUI_ObjectTableSettings_hpp_ #define slic3r_GUI_ObjectTableSettings_hpp_ +#include #include +#include #include +#include #include +#include #include "wxExtensions.hpp" +#include "libslic3r/PrintConfig.hpp" class wxBoxSizer; namespace Slic3r { class DynamicPrintConfig; +class ModelObject; class ModelConfig; namespace GUI { class ConfigOptionsGroup; diff --git a/src/slic3r/GUI/Gizmos/GLGizmoCut.cpp b/src/slic3r/GUI/Gizmos/GLGizmoCut.cpp index ebd0821ded..69999155af 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoCut.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoCut.cpp @@ -32,6 +32,7 @@ #include "slic3r/GUI/3DScene.hpp" #include "libslic3r/Config.hpp" #include "libslic3r/Line.hpp" +#include #include #include "libslic3r/TriangleMesh.hpp" #include "slic3r/GUI/MeshUtils.hpp" diff --git a/src/slic3r/GUI/Gizmos/GLGizmoEmboss.cpp b/src/slic3r/GUI/Gizmos/GLGizmoEmboss.cpp index 5bf94c7d77..38aeb26bdf 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoEmboss.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoEmboss.cpp @@ -75,6 +75,7 @@ #include #include "slic3r/GUI/Jobs/Worker.hpp" #include +#include #ifndef IMGUI_DEFINE_MATH_OPERATORS #define IMGUI_DEFINE_MATH_OPERATORS #endif diff --git a/src/slic3r/GUI/Gizmos/GLGizmoMove.cpp b/src/slic3r/GUI/Gizmos/GLGizmoMove.cpp index bed2c42267..87ffbb762f 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoMove.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoMove.cpp @@ -25,6 +25,7 @@ #include "libslic3r/Geometry.hpp" #include #include "libslic3r/Model.hpp" +#include #include namespace Slic3r { diff --git a/src/slic3r/GUI/Gizmos/GLGizmoScale.cpp b/src/slic3r/GUI/Gizmos/GLGizmoScale.cpp index a223749b6c..56c0944da9 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoScale.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoScale.cpp @@ -24,6 +24,7 @@ #include "slic3r/GUI/GLShader.hpp" #include #include "libslic3r/Geometry.hpp" +#include #include namespace Slic3r { diff --git a/src/slic3r/GUI/Gizmos/GizmoObjectManipulation.hpp b/src/slic3r/GUI/Gizmos/GizmoObjectManipulation.hpp index 84ff8ebe62..e43a129734 100644 --- a/src/slic3r/GUI/Gizmos/GizmoObjectManipulation.hpp +++ b/src/slic3r/GUI/Gizmos/GizmoObjectManipulation.hpp @@ -1,11 +1,16 @@ #ifndef slic3r_GizmoObjectManipulation_hpp_ #define slic3r_GizmoObjectManipulation_hpp_ +#include #include #include "libslic3r/Point.hpp" #include "libslic3r/Geometry.hpp" #include +#include +#include +#include +#include #include "slic3r/GUI/GUI_Geometry.hpp" @@ -14,6 +19,7 @@ namespace Slic3r { namespace GUI { +class ImGuiWrapper; class Selection; class GLCanvas3D; diff --git a/src/slic3r/GUI/Jobs/PlaterWorker.hpp b/src/slic3r/GUI/Jobs/PlaterWorker.hpp index f22bd6d511..9b149ab91b 100644 --- a/src/slic3r/GUI/Jobs/PlaterWorker.hpp +++ b/src/slic3r/GUI/Jobs/PlaterWorker.hpp @@ -1,13 +1,26 @@ #ifndef PLATERWORKER_HPP #define PLATERWORKER_HPP +#include +#include +#include +#include +#include #include #include #include "Worker.hpp" #include "BusyCursorJob.hpp" +#include "slic3r/GUI/Jobs/Job.hpp" +#include +#include +#include +#include +#include + #include "slic3r/GUI/GUI.hpp" +#include "slic3r/GUI/GUI_Utils.hpp" #include "slic3r/GUI/I18N.hpp" namespace Slic3r { namespace GUI { diff --git a/src/slic3r/GUI/Jobs/SLAImportDialog.hpp b/src/slic3r/GUI/Jobs/SLAImportDialog.hpp index 5bb101b74a..68ad749726 100644 --- a/src/slic3r/GUI/Jobs/SLAImportDialog.hpp +++ b/src/slic3r/GUI/Jobs/SLAImportDialog.hpp @@ -3,7 +3,14 @@ #include "SLAImportJob.hpp" +#include +#include +#include "libslic3r/Point.hpp" +#include #include +#include +#include +#include #include #include #include diff --git a/src/slic3r/GUI/KBShortcutsDialog.cpp b/src/slic3r/GUI/KBShortcutsDialog.cpp index 92051d116e..903ce4c43a 100644 --- a/src/slic3r/GUI/KBShortcutsDialog.cpp +++ b/src/slic3r/GUI/KBShortcutsDialog.cpp @@ -34,6 +34,7 @@ #include "Widgets/StaticLine.hpp" #include "Widgets/TabCtrl.hpp" #include +#include #include #include #include diff --git a/src/slic3r/GUI/MarkdownTip.cpp b/src/slic3r/GUI/MarkdownTip.cpp index 70422a4232..9a80870fe0 100644 --- a/src/slic3r/GUI/MarkdownTip.cpp +++ b/src/slic3r/GUI/MarkdownTip.cpp @@ -16,6 +16,7 @@ #include #include #include +#include #include #include #include diff --git a/src/slic3r/GUI/MultiChoiceDialog.cpp b/src/slic3r/GUI/MultiChoiceDialog.cpp index e106d7869f..e78f5d1856 100644 --- a/src/slic3r/GUI/MultiChoiceDialog.cpp +++ b/src/slic3r/GUI/MultiChoiceDialog.cpp @@ -2,6 +2,7 @@ #include "GUI_App.hpp" #include "MainFrame.hpp" +#include #include #include #include "slic3r/GUI/GUI_Utils.hpp" diff --git a/src/slic3r/GUI/PartSkipCommon.hpp b/src/slic3r/GUI/PartSkipCommon.hpp index bd158edbf8..ae7ad6f6a5 100644 --- a/src/slic3r/GUI/PartSkipCommon.hpp +++ b/src/slic3r/GUI/PartSkipCommon.hpp @@ -1,6 +1,8 @@ #ifndef PARTSKIPCOMMON_H #define PARTSKIPCOMMON_H +#include +#include namespace Slic3r { namespace GUI { diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 43a8b9a6a1..158991a92f 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -6,6 +6,7 @@ #include "libslic3r/Config.hpp" #include "libslic3r_version.h" +#include #include #include #include diff --git a/src/slic3r/GUI/SavePresetDialog.cpp b/src/slic3r/GUI/SavePresetDialog.cpp index 7aff669668..7f280debf5 100644 --- a/src/slic3r/GUI/SavePresetDialog.cpp +++ b/src/slic3r/GUI/SavePresetDialog.cpp @@ -21,6 +21,7 @@ #include #include +#include #include #include #include diff --git a/src/slic3r/GUI/SavePresetDialog.hpp b/src/slic3r/GUI/SavePresetDialog.hpp index 10cf25883b..3bbeeb0cde 100644 --- a/src/slic3r/GUI/SavePresetDialog.hpp +++ b/src/slic3r/GUI/SavePresetDialog.hpp @@ -12,6 +12,7 @@ #include "Widgets/Label.hpp" #include "Widgets/TextInput.hpp" #include +#include #include #include #include diff --git a/src/slic3r/GUI/SendToPrinter.cpp b/src/slic3r/GUI/SendToPrinter.cpp index 7a44305e4e..3ab630b404 100644 --- a/src/slic3r/GUI/SendToPrinter.cpp +++ b/src/slic3r/GUI/SendToPrinter.cpp @@ -16,6 +16,7 @@ #include "Jobs/BoostThreadWorker.hpp" #include "Jobs/PlaterWorker.hpp" +#include #include #include #include diff --git a/src/slic3r/GUI/TabButton.cpp b/src/slic3r/GUI/TabButton.cpp index 3469c9c980..f7c1a55d7c 100644 --- a/src/slic3r/GUI/TabButton.cpp +++ b/src/slic3r/GUI/TabButton.cpp @@ -2,6 +2,7 @@ #include "Widgets/Label.hpp" #include "slic3r/GUI/Widgets/StaticBox.hpp" +#include #include #include #include "slic3r/GUI/wxExtensions.hpp" diff --git a/src/slic3r/GUI/UpgradePanel.cpp b/src/slic3r/GUI/UpgradePanel.cpp index 485ac48b99..ca20f4edb1 100644 --- a/src/slic3r/GUI/UpgradePanel.cpp +++ b/src/slic3r/GUI/UpgradePanel.cpp @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include diff --git a/src/slic3r/GUI/UpgradePanel.hpp b/src/slic3r/GUI/UpgradePanel.hpp index 2e0245e40e..c67ec0bbc3 100644 --- a/src/slic3r/GUI/UpgradePanel.hpp +++ b/src/slic3r/GUI/UpgradePanel.hpp @@ -2,6 +2,7 @@ #define slic3r_UpgradePanel_hpp_ #include "slic3r/GUI/wxExtensions.hpp" +#include #include #include #include diff --git a/src/slic3r/GUI/Widgets/AMSControl.cpp b/src/slic3r/GUI/Widgets/AMSControl.cpp index 8a5f03b7ad..1abe045942 100644 --- a/src/slic3r/GUI/Widgets/AMSControl.cpp +++ b/src/slic3r/GUI/Widgets/AMSControl.cpp @@ -11,6 +11,7 @@ #include "slic3r/GUI/DeviceCore/DevFilaSystem.h" #include "slic3r/GUI/DeviceCore/DevFilaSwitch.h" +#include #include #include #include "slic3r/GUI/AmsMappingPopup.hpp" diff --git a/src/slic3r/GUI/Widgets/AMSControl.hpp b/src/slic3r/GUI/Widgets/AMSControl.hpp index 4f44d7a1e7..f4c83667c2 100644 --- a/src/slic3r/GUI/Widgets/AMSControl.hpp +++ b/src/slic3r/GUI/Widgets/AMSControl.hpp @@ -9,6 +9,7 @@ #include "../DeviceManager.hpp" #include "slic3r/GUI/Event.hpp" #include "slic3r/GUI/AmsMappingPopup.hpp" +#include #include #include #include diff --git a/src/slic3r/GUI/Widgets/AMSItem.cpp b/src/slic3r/GUI/Widgets/AMSItem.cpp index 96ca92494d..303b4221bb 100644 --- a/src/slic3r/GUI/Widgets/AMSItem.cpp +++ b/src/slic3r/GUI/Widgets/AMSItem.cpp @@ -12,6 +12,7 @@ #include "slic3r/GUI/DeviceCore/DevConfig.h" #include "slic3r/GUI/DeviceCore/DevManager.h" +#include #include #include #include "slic3r/GUI/Event.hpp" diff --git a/src/slic3r/GUI/Widgets/AMSItem.hpp b/src/slic3r/GUI/Widgets/AMSItem.hpp index e84ba64d98..55c0a3ca8d 100644 --- a/src/slic3r/GUI/Widgets/AMSItem.hpp +++ b/src/slic3r/GUI/Widgets/AMSItem.hpp @@ -9,6 +9,7 @@ #include "slic3r/GUI/Event.hpp" #include "slic3r/GUI/AmsMappingPopup.hpp" #include +#include #include #include #include "slic3r/GUI/DeviceCore/DevDefs.h" diff --git a/src/slic3r/GUI/Widgets/AnimaController.cpp b/src/slic3r/GUI/Widgets/AnimaController.cpp index a73c6d8e50..0267650e1d 100644 --- a/src/slic3r/GUI/Widgets/AnimaController.cpp +++ b/src/slic3r/GUI/Widgets/AnimaController.cpp @@ -1,5 +1,6 @@ #include "AnimaController.hpp" +#include #include #include #include diff --git a/src/slic3r/GUI/Widgets/AnimaController.hpp b/src/slic3r/GUI/Widgets/AnimaController.hpp index e32eae6fb7..a1ddb7bc74 100644 --- a/src/slic3r/GUI/Widgets/AnimaController.hpp +++ b/src/slic3r/GUI/Widgets/AnimaController.hpp @@ -3,6 +3,7 @@ #include "../wxExtensions.hpp" #include "Label.hpp" +#include #include #include #include diff --git a/src/slic3r/GUI/Widgets/Button.cpp b/src/slic3r/GUI/Widgets/Button.cpp index 7010dbd91c..54e720feb4 100644 --- a/src/slic3r/GUI/Widgets/Button.cpp +++ b/src/slic3r/GUI/Widgets/Button.cpp @@ -3,6 +3,7 @@ #include "slic3r/GUI/Widgets/StaticBox.hpp" #include +#include #include #include #include diff --git a/src/slic3r/GUI/Widgets/Button.hpp b/src/slic3r/GUI/Widgets/Button.hpp index cee2eb15b6..b4b1e24bb2 100644 --- a/src/slic3r/GUI/Widgets/Button.hpp +++ b/src/slic3r/GUI/Widgets/Button.hpp @@ -3,6 +3,7 @@ #include "../wxExtensions.hpp" #include "StaticBox.hpp" +#include #include #include "slic3r/GUI/Widgets/StateColor.hpp" #include diff --git a/src/slic3r/GUI/Widgets/CheckBox.cpp b/src/slic3r/GUI/Widgets/CheckBox.cpp index f019f18784..c36a53d8af 100644 --- a/src/slic3r/GUI/Widgets/CheckBox.cpp +++ b/src/slic3r/GUI/Widgets/CheckBox.cpp @@ -1,6 +1,7 @@ #include "CheckBox.hpp" #include "../wxExtensions.hpp" +#include #include #include #include diff --git a/src/slic3r/GUI/Widgets/CheckBox.hpp b/src/slic3r/GUI/Widgets/CheckBox.hpp index 3ad3dac2c4..bab691eb53 100644 --- a/src/slic3r/GUI/Widgets/CheckBox.hpp +++ b/src/slic3r/GUI/Widgets/CheckBox.hpp @@ -3,6 +3,7 @@ #include "../wxExtensions.hpp" +#include #include #include diff --git a/src/slic3r/GUI/Widgets/CheckList.cpp b/src/slic3r/GUI/Widgets/CheckList.cpp index 2b8dcac75e..a9c5c15be4 100644 --- a/src/slic3r/GUI/Widgets/CheckList.cpp +++ b/src/slic3r/GUI/Widgets/CheckList.cpp @@ -2,6 +2,7 @@ #include "slic3r/GUI/GUI_App.hpp" #include "slic3r/GUI/I18N.hpp" +#include #include #include #include diff --git a/src/slic3r/GUI/Widgets/CheckList.hpp b/src/slic3r/GUI/Widgets/CheckList.hpp index 9e5ae4c9e1..5518b10fd0 100644 --- a/src/slic3r/GUI/Widgets/CheckList.hpp +++ b/src/slic3r/GUI/Widgets/CheckList.hpp @@ -6,6 +6,7 @@ #include "Label.hpp" #include "TextInput.hpp" +#include #include #include #include diff --git a/src/slic3r/GUI/Widgets/ComboBox.cpp b/src/slic3r/GUI/Widgets/ComboBox.cpp index 7d507789f5..20998eda0a 100644 --- a/src/slic3r/GUI/Widgets/ComboBox.cpp +++ b/src/slic3r/GUI/Widgets/ComboBox.cpp @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include diff --git a/src/slic3r/GUI/Widgets/ComboBox.hpp b/src/slic3r/GUI/Widgets/ComboBox.hpp index f13bc876c4..1dae23b85d 100644 --- a/src/slic3r/GUI/Widgets/ComboBox.hpp +++ b/src/slic3r/GUI/Widgets/ComboBox.hpp @@ -3,6 +3,7 @@ #include "TextInput.hpp" #include "DropDown.hpp" +#include #include #include #include diff --git a/src/slic3r/GUI/Widgets/FanControl.cpp b/src/slic3r/GUI/Widgets/FanControl.cpp index 3ffaf59141..e4f039307b 100644 --- a/src/slic3r/GUI/Widgets/FanControl.cpp +++ b/src/slic3r/GUI/Widgets/FanControl.cpp @@ -6,6 +6,7 @@ #include "../MsgDialog.hpp" #include "json_diff.hpp" +#include #include #include #include diff --git a/src/slic3r/GUI/Widgets/FanControl.hpp b/src/slic3r/GUI/Widgets/FanControl.hpp index b97c9a4d27..e5eb49ed45 100644 --- a/src/slic3r/GUI/Widgets/FanControl.hpp +++ b/src/slic3r/GUI/Widgets/FanControl.hpp @@ -9,6 +9,7 @@ #include "../SelectMachine.hpp" #include "../DeviceManager.hpp" #include "slic3r/GUI/Event.hpp" +#include #include #include #include diff --git a/src/slic3r/GUI/Widgets/FilamentLoad.cpp b/src/slic3r/GUI/Widgets/FilamentLoad.cpp index 712c103826..11541a95a3 100644 --- a/src/slic3r/GUI/Widgets/FilamentLoad.cpp +++ b/src/slic3r/GUI/Widgets/FilamentLoad.cpp @@ -5,6 +5,7 @@ #include "../GUI_App.hpp" #include "../DeviceCore/DevFilaSystem.h" +#include #include #include #include "slic3r/GUI/Widgets/StepCtrl.hpp" diff --git a/src/slic3r/GUI/Widgets/FilamentLoad.hpp b/src/slic3r/GUI/Widgets/FilamentLoad.hpp index 257e92d21c..2c516987fc 100644 --- a/src/slic3r/GUI/Widgets/FilamentLoad.hpp +++ b/src/slic3r/GUI/Widgets/FilamentLoad.hpp @@ -8,6 +8,7 @@ #include "../DeviceManager.hpp" #include "slic3r/GUI/Event.hpp" #include "slic3r/GUI/AmsMappingPopup.hpp" +#include #include #include #include diff --git a/src/slic3r/GUI/Widgets/ImageSwitchButton.cpp b/src/slic3r/GUI/Widgets/ImageSwitchButton.cpp index 9915795af5..80e7e85c66 100644 --- a/src/slic3r/GUI/Widgets/ImageSwitchButton.cpp +++ b/src/slic3r/GUI/Widgets/ImageSwitchButton.cpp @@ -4,6 +4,7 @@ #include "../wxExtensions.hpp" #include "slic3r/GUI/I18N.hpp" +#include #include #include #include diff --git a/src/slic3r/GUI/Widgets/RadioBox.cpp b/src/slic3r/GUI/Widgets/RadioBox.cpp index 93e8f63b91..5b4af4e7b5 100644 --- a/src/slic3r/GUI/Widgets/RadioBox.cpp +++ b/src/slic3r/GUI/Widgets/RadioBox.cpp @@ -1,6 +1,7 @@ #include "RadioBox.hpp" #include "../wxExtensions.hpp" +#include #include #include diff --git a/src/slic3r/GUI/Widgets/RadioGroup.hpp b/src/slic3r/GUI/Widgets/RadioGroup.hpp index 6f25190431..ce6499c727 100644 --- a/src/slic3r/GUI/Widgets/RadioGroup.hpp +++ b/src/slic3r/GUI/Widgets/RadioGroup.hpp @@ -3,6 +3,7 @@ #include "../wxExtensions.hpp" +#include #include #include #include diff --git a/src/slic3r/GUI/Widgets/RoundedRectangle.cpp b/src/slic3r/GUI/Widgets/RoundedRectangle.cpp index 5b5cd98076..d53f176ac3 100644 --- a/src/slic3r/GUI/Widgets/RoundedRectangle.cpp +++ b/src/slic3r/GUI/Widgets/RoundedRectangle.cpp @@ -1,5 +1,6 @@ #include "RoundedRectangle.hpp" #include "../wxExtensions.hpp" +#include #include #include #include diff --git a/src/slic3r/GUI/Widgets/ScrolledWindow.hpp b/src/slic3r/GUI/Widgets/ScrolledWindow.hpp index a430dec423..cb497d1015 100644 --- a/src/slic3r/GUI/Widgets/ScrolledWindow.hpp +++ b/src/slic3r/GUI/Widgets/ScrolledWindow.hpp @@ -1,4 +1,5 @@ #pragma once +#include #include #include #include diff --git a/src/slic3r/GUI/Widgets/SideButton.cpp b/src/slic3r/GUI/Widgets/SideButton.cpp index e9fe493621..54b75f1e14 100644 --- a/src/slic3r/GUI/Widgets/SideButton.cpp +++ b/src/slic3r/GUI/Widgets/SideButton.cpp @@ -3,6 +3,7 @@ #include #include "slic3r/GUI/Widgets/StateHandler.hpp" +#include #include #include #include diff --git a/src/slic3r/GUI/Widgets/SideTools.hpp b/src/slic3r/GUI/Widgets/SideTools.hpp index 81c42ecef0..94af1e64c9 100644 --- a/src/slic3r/GUI/Widgets/SideTools.hpp +++ b/src/slic3r/GUI/Widgets/SideTools.hpp @@ -8,6 +8,7 @@ #include #include #include +#include #include #include "Button.hpp" #include "Label.hpp" diff --git a/src/slic3r/GUI/Widgets/SpinInput.cpp b/src/slic3r/GUI/Widgets/SpinInput.cpp index 3077304947..80c000fe46 100644 --- a/src/slic3r/GUI/Widgets/SpinInput.cpp +++ b/src/slic3r/GUI/Widgets/SpinInput.cpp @@ -6,6 +6,7 @@ #include "slic3r/GUI/Widgets/StaticBox.hpp" #include #include "slic3r/GUI/Widgets/StateHandler.hpp" +#include #include #include #include diff --git a/src/slic3r/GUI/Widgets/StaticBox.cpp b/src/slic3r/GUI/Widgets/StaticBox.cpp index 87a1d26827..5b18f733c9 100644 --- a/src/slic3r/GUI/Widgets/StaticBox.cpp +++ b/src/slic3r/GUI/Widgets/StaticBox.cpp @@ -1,6 +1,7 @@ #include "StaticBox.hpp" #include "../GUI.hpp" #include +#include #include #include #include diff --git a/src/slic3r/GUI/Widgets/StaticBox.hpp b/src/slic3r/GUI/Widgets/StaticBox.hpp index b7662ff670..7c8d7c50ee 100644 --- a/src/slic3r/GUI/Widgets/StaticBox.hpp +++ b/src/slic3r/GUI/Widgets/StaticBox.hpp @@ -4,6 +4,7 @@ #include "../wxExtensions.hpp" #include "StateHandler.hpp" +#include #include #include #include "slic3r/GUI/Widgets/StateColor.hpp" diff --git a/src/slic3r/GUI/Widgets/StaticLine.cpp b/src/slic3r/GUI/Widgets/StaticLine.cpp index f574a5b739..61602d520d 100644 --- a/src/slic3r/GUI/Widgets/StaticLine.cpp +++ b/src/slic3r/GUI/Widgets/StaticLine.cpp @@ -2,6 +2,7 @@ #include "Label.hpp" #include "StateColor.hpp" +#include #include #include #include diff --git a/src/slic3r/GUI/Widgets/StepCtrl.cpp b/src/slic3r/GUI/Widgets/StepCtrl.cpp index 34ce8506de..e50db7c821 100644 --- a/src/slic3r/GUI/Widgets/StepCtrl.cpp +++ b/src/slic3r/GUI/Widgets/StepCtrl.cpp @@ -1,6 +1,7 @@ #include "StepCtrl.hpp" #include "Label.hpp" +#include #include #include "slic3r/GUI/Widgets/StaticBox.hpp" #include diff --git a/src/slic3r/GUI/Widgets/StepCtrl.hpp b/src/slic3r/GUI/Widgets/StepCtrl.hpp index d568443eaa..3b5abdab57 100644 --- a/src/slic3r/GUI/Widgets/StepCtrl.hpp +++ b/src/slic3r/GUI/Widgets/StepCtrl.hpp @@ -2,6 +2,7 @@ #define slic3r_GUI_StepCtrlBase_hpp_ #include "StaticBox.hpp" +#include #include #include "slic3r/GUI/Widgets/StateColor.hpp" #include diff --git a/src/slic3r/GUI/Widgets/SwitchButton.hpp b/src/slic3r/GUI/Widgets/SwitchButton.hpp index e4ef0005ad..24fcf59981 100644 --- a/src/slic3r/GUI/Widgets/SwitchButton.hpp +++ b/src/slic3r/GUI/Widgets/SwitchButton.hpp @@ -7,6 +7,7 @@ #include #include +#include #include #include #include diff --git a/src/slic3r/GUI/Widgets/TabCtrl.cpp b/src/slic3r/GUI/Widgets/TabCtrl.cpp index 66ff926d25..7c39cdd3f4 100644 --- a/src/slic3r/GUI/Widgets/TabCtrl.cpp +++ b/src/slic3r/GUI/Widgets/TabCtrl.cpp @@ -1,6 +1,7 @@ #include "TabCtrl.hpp" #include "slic3r/GUI/Widgets/StaticBox.hpp" +#include #include #include #include diff --git a/src/slic3r/GUI/Widgets/TabCtrl.hpp b/src/slic3r/GUI/Widgets/TabCtrl.hpp index 80ac49da0a..f80a1aa08c 100644 --- a/src/slic3r/GUI/Widgets/TabCtrl.hpp +++ b/src/slic3r/GUI/Widgets/TabCtrl.hpp @@ -2,6 +2,7 @@ #define slic3r_GUI_TabCtrl_hpp_ #include "Button.hpp" +#include #include #include "slic3r/GUI/Widgets/StaticBox.hpp" #include diff --git a/src/slic3r/GUI/Widgets/TempInput.cpp b/src/slic3r/GUI/Widgets/TempInput.cpp index 99f50269ed..5890c702ac 100644 --- a/src/slic3r/GUI/Widgets/TempInput.cpp +++ b/src/slic3r/GUI/Widgets/TempInput.cpp @@ -5,6 +5,7 @@ #include "slic3r/GUI/Widgets/StaticBox.hpp" #include #include +#include #include #include "slic3r/GUI/Widgets/StateHandler.hpp" #include diff --git a/src/slic3r/GUI/Widgets/TempInput.hpp b/src/slic3r/GUI/Widgets/TempInput.hpp index 8560576b96..3ca55e558c 100644 --- a/src/slic3r/GUI/Widgets/TempInput.hpp +++ b/src/slic3r/GUI/Widgets/TempInput.hpp @@ -2,6 +2,7 @@ #define slic3r_GUI_TempInput_hpp_ #include "../wxExtensions.hpp" +#include #include #include #include diff --git a/src/slic3r/GUI/Widgets/TextCtrl.h b/src/slic3r/GUI/Widgets/TextCtrl.h index 3f3ab2b4de..2d57c38146 100644 --- a/src/slic3r/GUI/Widgets/TextCtrl.h +++ b/src/slic3r/GUI/Widgets/TextCtrl.h @@ -1,3 +1,5 @@ +#include + #ifdef __WXMSW__ class TextCtrl : public wxTextCtrl { diff --git a/src/slic3r/GUI/Widgets/TextInput.cpp b/src/slic3r/GUI/Widgets/TextInput.cpp index 0ed38ff8de..e3670cbaed 100644 --- a/src/slic3r/GUI/Widgets/TextInput.cpp +++ b/src/slic3r/GUI/Widgets/TextInput.cpp @@ -7,6 +7,7 @@ #include #include #include "slic3r/GUI/Widgets/StateHandler.hpp" +#include #include #include #include diff --git a/src/slic3r/GUI/WipeTowerDialog.hpp b/src/slic3r/GUI/WipeTowerDialog.hpp index 91944cfc78..6f6af5f59d 100644 --- a/src/slic3r/GUI/WipeTowerDialog.hpp +++ b/src/slic3r/GUI/WipeTowerDialog.hpp @@ -1,8 +1,16 @@ #ifndef _WIPE_TOWER_DIALOG_H_ #define _WIPE_TOWER_DIALOG_H_ +#include +#include +#include +#include #include +#include +#include +#include #include +#include "libslic3r/FlushVolCalc.hpp" #include "libslic3r/PrintConfig.hpp" #include "Widgets/SpinInput.hpp" diff --git a/src/slic3r/GUI/calib_dlg.cpp b/src/slic3r/GUI/calib_dlg.cpp index 48ea425cf0..24abe219bc 100644 --- a/src/slic3r/GUI/calib_dlg.cpp +++ b/src/slic3r/GUI/calib_dlg.cpp @@ -6,6 +6,7 @@ #include #include #include "slic3r/GUI/Widgets/CheckBox.hpp" +#include #include #include "libslic3r/Config.hpp" #include diff --git a/src/slic3r/GUI/calib_dlg.hpp b/src/slic3r/GUI/calib_dlg.hpp index da6e9ee7c5..81d6b15200 100644 --- a/src/slic3r/GUI/calib_dlg.hpp +++ b/src/slic3r/GUI/calib_dlg.hpp @@ -13,6 +13,7 @@ #include "Widgets/RadioGroup.hpp" #include "GUI_App.hpp" #include "wx/hyperlink.h" +#include #include #include #include diff --git a/src/slic3r/Utils/3DPrinterOS.cpp b/src/slic3r/Utils/3DPrinterOS.cpp old mode 100755 new mode 100644 index 081afb667c..29b6bd63f8 --- a/src/slic3r/Utils/3DPrinterOS.cpp +++ b/src/slic3r/Utils/3DPrinterOS.cpp @@ -1,7 +1,12 @@ #include "3DPrinterOS.hpp" #include +#include "slic3r/GUI/Widgets/DropDown.hpp" +#include +#include +#include #include +#include #include #include #include @@ -11,12 +16,16 @@ #include #include +#include +#include +#include #include #include #include #include #include +#include "PrintHost.hpp" #include "libslic3r/PrintConfig.hpp" #include "libslic3r/Utils.hpp" #include "slic3r/GUI/I18N.hpp" @@ -30,6 +39,8 @@ #include "Http.hpp" #include +#include +#include using json = nlohmann::json; diff --git a/src/slic3r/Utils/3DPrinterOS.hpp b/src/slic3r/Utils/3DPrinterOS.hpp old mode 100755 new mode 100644 index 8c8e4ca6dc..02cc81ee6f --- a/src/slic3r/Utils/3DPrinterOS.hpp +++ b/src/slic3r/Utils/3DPrinterOS.hpp @@ -1,6 +1,7 @@ #ifndef slic3r_3DPrinterOS_hpp_ #define slic3r_3DPrinterOS_hpp_ +#include #include #include #include diff --git a/src/slic3r/Utils/ASCIIFolding.cpp b/src/slic3r/Utils/ASCIIFolding.cpp index 016c30fcde..acf6f96fc9 100644 --- a/src/slic3r/Utils/ASCIIFolding.cpp +++ b/src/slic3r/Utils/ASCIIFolding.cpp @@ -1,10 +1,13 @@ #include "ASCIIFolding.hpp" +#include +#include #include #include #include #include #include +#include namespace Slic3r { diff --git a/src/slic3r/Utils/AstroBox.cpp b/src/slic3r/Utils/AstroBox.cpp index 61f9f96c33..6904b56920 100644 --- a/src/slic3r/Utils/AstroBox.cpp +++ b/src/slic3r/Utils/AstroBox.cpp @@ -1,6 +1,7 @@ #include "AstroBox.hpp" #include +#include #include #include #include @@ -9,8 +10,11 @@ #include #include +#include #include +#include +#include "PrintHost.hpp" #include "libslic3r/PrintConfig.hpp" #include "slic3r/GUI/I18N.hpp" #include "slic3r/GUI/GUI.hpp" diff --git a/src/slic3r/Utils/AstroBox.hpp b/src/slic3r/Utils/AstroBox.hpp index 72ab273228..04bbb00b67 100644 --- a/src/slic3r/Utils/AstroBox.hpp +++ b/src/slic3r/Utils/AstroBox.hpp @@ -1,6 +1,7 @@ #ifndef slic3r_AstroBox_hpp_ #define slic3r_AstroBox_hpp_ +#include #include #include #include diff --git a/src/slic3r/Utils/BBLCloudServiceAgent.cpp b/src/slic3r/Utils/BBLCloudServiceAgent.cpp index 801ad1cf57..8943a01914 100644 --- a/src/slic3r/Utils/BBLCloudServiceAgent.cpp +++ b/src/slic3r/Utils/BBLCloudServiceAgent.cpp @@ -2,12 +2,21 @@ #include "BBLNetworkPlugin.hpp" #include +#include "CloudProvider.hpp" #include "Http.hpp" +#include "bambu_networking.hpp" +#include "ICloudServiceAgent.hpp" #include "slic3r/GUI/GUI_App.hpp" +#include +#include +#include "libslic3r/ProjectTask.hpp" #include #include #include +#include +#include +#include using json = nlohmann::json; diff --git a/src/slic3r/Utils/BBLCloudServiceAgent.hpp b/src/slic3r/Utils/BBLCloudServiceAgent.hpp index 9f03f0b839..8ca07377ee 100644 --- a/src/slic3r/Utils/BBLCloudServiceAgent.hpp +++ b/src/slic3r/Utils/BBLCloudServiceAgent.hpp @@ -1,9 +1,14 @@ #ifndef __BBL_CLOUD_SERVICE_AGENT_HPP__ #define __BBL_CLOUD_SERVICE_AGENT_HPP__ +#include "CloudProvider.hpp" #include "ICloudServiceAgent.hpp" +#include "bambu_networking.hpp" +#include +#include "libslic3r/ProjectTask.hpp" #include #include +#include namespace Slic3r { diff --git a/src/slic3r/Utils/BBLNetworkPlugin.cpp b/src/slic3r/Utils/BBLNetworkPlugin.cpp index d795abf354..94ac57aaf0 100644 --- a/src/slic3r/Utils/BBLNetworkPlugin.cpp +++ b/src/slic3r/Utils/BBLNetworkPlugin.cpp @@ -1,11 +1,22 @@ #include "BBLNetworkPlugin.hpp" #include "NetworkAgent.hpp" +#include +#include +#include +#include +#include +#include +#include #include #include #include #include #include +#include "bambu_networking.hpp" +#include +#include +#include #include "libslic3r/Utils.hpp" #include "slic3r/Utils/FileTransferUtils.hpp" diff --git a/src/slic3r/Utils/BBLNetworkPlugin.hpp b/src/slic3r/Utils/BBLNetworkPlugin.hpp index 3788568e37..8541f90bce 100644 --- a/src/slic3r/Utils/BBLNetworkPlugin.hpp +++ b/src/slic3r/Utils/BBLNetworkPlugin.hpp @@ -3,6 +3,7 @@ #include "bambu_networking.hpp" #include "libslic3r/ProjectTask.hpp" +#include "libslic3r/AppConfig.hpp" #include #include #include diff --git a/src/slic3r/Utils/BBLPrinterAgent.cpp b/src/slic3r/Utils/BBLPrinterAgent.cpp index 4e2015d5d7..0e468b642b 100644 --- a/src/slic3r/Utils/BBLPrinterAgent.cpp +++ b/src/slic3r/Utils/BBLPrinterAgent.cpp @@ -3,6 +3,7 @@ #include "IPrinterAgent.hpp" #include "NetworkAgentFactory.hpp" #include "NetworkAgent.hpp" +#include "bambu_networking.hpp" #include "libslic3r/Utils.hpp" #include "slic3r/GUI/GUI_App.hpp" #include "slic3r/GUI/DeviceCore/DevManager.h" @@ -10,9 +11,14 @@ #include #include #include +#include +#include #include #include #include +#include +#include +#include using json = nlohmann::json; #include diff --git a/src/slic3r/Utils/BBLPrinterAgent.hpp b/src/slic3r/Utils/BBLPrinterAgent.hpp index 4398602976..89315219c0 100644 --- a/src/slic3r/Utils/BBLPrinterAgent.hpp +++ b/src/slic3r/Utils/BBLPrinterAgent.hpp @@ -3,9 +3,12 @@ #include "IPrinterAgent.hpp" #include "ICloudServiceAgent.hpp" +#include "bambu_networking.hpp" +#include #include #include #include +#include namespace Slic3r { diff --git a/src/slic3r/Utils/Bonjour.cpp b/src/slic3r/Utils/Bonjour.cpp index 0bff5b526c..e67d3f0240 100644 --- a/src/slic3r/Utils/Bonjour.cpp +++ b/src/slic3r/Utils/Bonjour.cpp @@ -1,8 +1,29 @@ #include "Bonjour.hpp" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include +#include +#include +#include +#include +#include +#include #include #include #include diff --git a/src/slic3r/Utils/Bonjour.hpp b/src/slic3r/Utils/Bonjour.hpp index 3ef8f0e1a2..e267575f74 100644 --- a/src/slic3r/Utils/Bonjour.hpp +++ b/src/slic3r/Utils/Bonjour.hpp @@ -1,8 +1,16 @@ #ifndef slic3r_Bonjour_hpp_ #define slic3r_Bonjour_hpp_ +#include +#include +#include +#include +#include +#include +#include #include #include +#include #include #include #include @@ -13,6 +21,8 @@ #include #include #include +#include +#include namespace Slic3r { diff --git a/src/slic3r/Utils/CalibUtils.cpp b/src/slic3r/Utils/CalibUtils.cpp index 462f8c2712..82686cb7c7 100644 --- a/src/slic3r/Utils/CalibUtils.cpp +++ b/src/slic3r/Utils/CalibUtils.cpp @@ -6,6 +6,7 @@ #include "NetworkAgent.hpp" #include "../GUI/Jobs/ProgressIndicator.hpp" #include "../GUI/PartPlate.hpp" +#include "json_diff.hpp" #include "libslic3r/CutUtils.hpp" #include "libslic3r/ClipperUtils.hpp" #include "libslic3r/Utils.hpp" @@ -22,6 +23,41 @@ #include "../GUI/DeviceCore/DevStorage.h" #include "libslic3r/FlushVolCalc.hpp" #include "../GUI/Plater.hpp" +#include +#include "slic3r/GUI/Jobs/Worker.hpp" +#include +#include +#include "libslic3r/PrintConfig.hpp" +#include "libslic3r/Config.hpp" +#include "libslic3r/Flow.hpp" +#include +#include "libslic3r/ParameterUtils.hpp" +#include +#include +#include +#include "libslic3r/calib.hpp" +#include +#include "libslic3r/CommonDefs.hpp" +#include +#include +#include "libslic3r/Point.hpp" +#include "libslic3r/Geometry.hpp" +#include "libslic3r/Format/bbs_3mf.hpp" +#include "libslic3r/Semver.hpp" +#include +#include "libslic3r/BoundingBox.hpp" +#include +#include "libslic3r/libslic3r.h" +#include "slic3r/GUI/DeviceCore/DevDefs.h" +#include "libslic3r/PrintBase.hpp" +#include "libslic3r/GCode/ThumbnailData.hpp" +#include "libslic3r/ProjectTask.hpp" +#include "slic3r/GUI/3DScene.hpp" +#include "libslic3r/Color.hpp" +#include "slic3r/GUI/GLShader.hpp" +#include "slic3r/GUI/OpenGLManager.hpp" +#include +#include "slic3r/GUI/Jobs/PrintJob.hpp" namespace Slic3r { namespace GUI { diff --git a/src/slic3r/Utils/CalibUtils.hpp b/src/slic3r/Utils/CalibUtils.hpp index 1060a7d3d9..00b9e0020c 100644 --- a/src/slic3r/Utils/CalibUtils.hpp +++ b/src/slic3r/Utils/CalibUtils.hpp @@ -3,6 +3,11 @@ #include "../GUI/DeviceManager.hpp" #include "../GUI/Jobs/PrintJob.hpp" #include "slic3r/GUI/Jobs/Worker.hpp" +#include "libslic3r/PrintConfig.hpp" +#include +#include +#include +#include namespace Slic3r { diff --git a/src/slic3r/Utils/ColorSpaceConvert.cpp b/src/slic3r/Utils/ColorSpaceConvert.cpp index 176bd29304..63ebc6b7b8 100644 --- a/src/slic3r/Utils/ColorSpaceConvert.cpp +++ b/src/slic3r/Utils/ColorSpaceConvert.cpp @@ -2,6 +2,12 @@ #include #include +#include +#include +#include +#include +#include +#include #include #include diff --git a/src/slic3r/Utils/CrealityHostDiscovery.cpp b/src/slic3r/Utils/CrealityHostDiscovery.cpp index a3256794e2..556309ef30 100644 --- a/src/slic3r/Utils/CrealityHostDiscovery.cpp +++ b/src/slic3r/Utils/CrealityHostDiscovery.cpp @@ -4,9 +4,13 @@ #include "Http.hpp" #include +#include #include #include +#include +#include +#include namespace Slic3r { diff --git a/src/slic3r/Utils/CrealityPrint.cpp b/src/slic3r/Utils/CrealityPrint.cpp index 323db56ff6..20e702ba54 100644 --- a/src/slic3r/Utils/CrealityPrint.cpp +++ b/src/slic3r/Utils/CrealityPrint.cpp @@ -1,6 +1,20 @@ #include "CrealityPrint.hpp" #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include @@ -16,8 +30,11 @@ #include #include +#include +#include #include +#include "PrintHost.hpp" #include "slic3r/GUI/GUI.hpp" #include "slic3r/GUI/I18N.hpp" #include "slic3r/GUI/GUI_App.hpp" @@ -37,6 +54,7 @@ #include #include +#include using json = nlohmann::json; using std::to_string; diff --git a/src/slic3r/Utils/CrealityPrintAgent.cpp b/src/slic3r/Utils/CrealityPrintAgent.cpp index 4730903c59..10f6a51c5d 100644 --- a/src/slic3r/Utils/CrealityPrintAgent.cpp +++ b/src/slic3r/Utils/CrealityPrintAgent.cpp @@ -1,16 +1,23 @@ #include "CrealityPrintAgent.hpp" #include "CrealityPrint.hpp" +#include "MoonrakerPrinterAgent.hpp" +#include "IPrinterAgent.hpp" #include "libslic3r/PresetBundle.hpp" #include "libslic3r/PrintConfig.hpp" #include "slic3r/GUI/GUI_App.hpp" #include +#include "libslic3r/Config.hpp" +#include #include #include #include #include #include +#include +#include +#include using json = nlohmann::json; diff --git a/src/slic3r/Utils/CrealityPrintAgent.hpp b/src/slic3r/Utils/CrealityPrintAgent.hpp index cf22d104ec..3b925c5d21 100644 --- a/src/slic3r/Utils/CrealityPrintAgent.hpp +++ b/src/slic3r/Utils/CrealityPrintAgent.hpp @@ -1,6 +1,7 @@ #ifndef __CREALITY_PRINT_AGENT_HPP__ #define __CREALITY_PRINT_AGENT_HPP__ +#include "IPrinterAgent.hpp" #include "MoonrakerPrinterAgent.hpp" #include diff --git a/src/slic3r/Utils/Duet.cpp b/src/slic3r/Utils/Duet.cpp index e26a493131..592e198808 100644 --- a/src/slic3r/Utils/Duet.cpp +++ b/src/slic3r/Utils/Duet.cpp @@ -1,6 +1,7 @@ #include "Duet.hpp" #include +#include #include #include #include @@ -8,14 +9,17 @@ #include #include +#include #include #include #include #include #include +#include #include #include +#include "PrintHost.hpp" #include "libslic3r/PrintConfig.hpp" #include "slic3r/GUI/GUI.hpp" #include "slic3r/GUI/I18N.hpp" diff --git a/src/slic3r/Utils/ESP3D.cpp b/src/slic3r/Utils/ESP3D.cpp index 5c10862118..0fc28cfcaf 100644 --- a/src/slic3r/Utils/ESP3D.cpp +++ b/src/slic3r/Utils/ESP3D.cpp @@ -12,14 +12,17 @@ #include #include +#include #include #include #include #include #include +#include #include #include +#include "PrintHost.hpp" #include "libslic3r/PrintConfig.hpp" #include "slic3r/GUI/GUI.hpp" #include "slic3r/GUI/I18N.hpp" diff --git a/src/slic3r/Utils/ElegooLink.cpp b/src/slic3r/Utils/ElegooLink.cpp index 64ff4a9455..fb74a384d1 100644 --- a/src/slic3r/Utils/ElegooLink.cpp +++ b/src/slic3r/Utils/ElegooLink.cpp @@ -1,8 +1,19 @@ #include "ElegooLink.hpp" #include +#include "libslic3r/Utils.hpp" +#include +#include +#include +#include +#include +#include +#include "libslic3r/PrintConfig.hpp" +#include #include #include +#include +#include #include #include #include @@ -20,8 +31,15 @@ #include +#include +#include +#include +#include #include +#include "OctoPrint.hpp" +#include "PrintHost.hpp" +#include "WebSocketClient.hpp" #include "slic3r/GUI/GUI.hpp" #include "slic3r/GUI/I18N.hpp" #include "slic3r/GUI/GUI_App.hpp" diff --git a/src/slic3r/Utils/ElegooLink.hpp b/src/slic3r/Utils/ElegooLink.hpp index a60d2de1b3..9072fd5c78 100644 --- a/src/slic3r/Utils/ElegooLink.hpp +++ b/src/slic3r/Utils/ElegooLink.hpp @@ -1,6 +1,9 @@ #ifndef slic3r_ElegooLink_hpp_ #define slic3r_ElegooLink_hpp_ +#include +#include +#include #include #include #include diff --git a/src/slic3r/Utils/EmbossStyleManager.cpp b/src/slic3r/Utils/EmbossStyleManager.cpp index 5e777e2f29..5f03bd5df3 100644 --- a/src/slic3r/Utils/EmbossStyleManager.cpp +++ b/src/slic3r/Utils/EmbossStyleManager.cpp @@ -1,4 +1,19 @@ #include "EmbossStyleManager.hpp" +#include +#include +#include "libslic3r/TextConfiguration.hpp" +#include +#include +#include +#include +#include +#include "libslic3r/Emboss.hpp" +#include "libslic3r/Point.hpp" +#include +#include +#include +#include +#include "libslic3r/EmbossShape.hpp" #include #include // Imgui texture #include // ImTextCharFromUtf8 @@ -12,6 +27,13 @@ #include #include +#include +#include +#include +#include "slic3r/GUI/GUI_Utils.hpp" +#include "slic3r/GUI/Jobs/Worker.hpp" +#include +#include "slic3r/GUI/OpenGLManager.hpp" using namespace Slic3r; using namespace Slic3r::Emboss; diff --git a/src/slic3r/Utils/EmbossStyleManager.hpp b/src/slic3r/Utils/EmbossStyleManager.hpp index 171f6fb1aa..76be39ac04 100644 --- a/src/slic3r/Utils/EmbossStyleManager.hpp +++ b/src/slic3r/Utils/EmbossStyleManager.hpp @@ -1,11 +1,15 @@ #ifndef slic3r_EmbossStyleManager_hpp_ #define slic3r_EmbossStyleManager_hpp_ +#include +#include +#include "libslic3r/Point.hpp" #include #include #include #include #include +#include #include #include #include diff --git a/src/slic3r/Utils/FileHelp.cpp b/src/slic3r/Utils/FileHelp.cpp index bd67dab46f..12c1d5728f 100644 --- a/src/slic3r/Utils/FileHelp.cpp +++ b/src/slic3r/Utils/FileHelp.cpp @@ -1,6 +1,11 @@ #include "FileHelp.hpp" +#include #include +#include +#include #include +#include +#include namespace Slic3r { namespace Utils { diff --git a/src/slic3r/Utils/FileTransferUtils.cpp b/src/slic3r/Utils/FileTransferUtils.cpp index 822ccdf09d..e56cdc1551 100644 --- a/src/slic3r/Utils/FileTransferUtils.cpp +++ b/src/slic3r/Utils/FileTransferUtils.cpp @@ -1,3 +1,9 @@ +#include +#include +#include +#include +#include +#include #include #include #include "FileTransferUtils.hpp" diff --git a/src/slic3r/Utils/FixModelByCgal.cpp b/src/slic3r/Utils/FixModelByCgal.cpp index 9d973844bb..237a4b9dc6 100644 --- a/src/slic3r/Utils/FixModelByCgal.cpp +++ b/src/slic3r/Utils/FixModelByCgal.cpp @@ -1,14 +1,26 @@ #include "FixModelByCgal.hpp" +#include #include #include #include #include +#include "libslic3r/TriangleMesh.hpp" +#include "libslic3r/BoundingBox.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/libslic3r.h" +#include +#include +#include "libslic3r/Exception.hpp" #include #include +#include "slic3r/GUI/Widgets/ProgressDialog.hpp" +#include #include #include +#include #include +#include #include "libslic3r/MeshBoolean.hpp" #include "libslic3r/Model.hpp" diff --git a/src/slic3r/Utils/FixModelByCgal.hpp b/src/slic3r/Utils/FixModelByCgal.hpp index 61c8c91087..03bec43f47 100644 --- a/src/slic3r/Utils/FixModelByCgal.hpp +++ b/src/slic3r/Utils/FixModelByCgal.hpp @@ -2,6 +2,7 @@ #define slic3r_GUI_Utils_FixModelByCgal_hpp_ #include +#include #include "../GUI/Widgets/ProgressDialog.hpp" namespace Slic3r { diff --git a/src/slic3r/Utils/FlashAir.cpp b/src/slic3r/Utils/FlashAir.cpp index f2d66fd012..557604cffc 100644 --- a/src/slic3r/Utils/FlashAir.cpp +++ b/src/slic3r/Utils/FlashAir.cpp @@ -7,14 +7,17 @@ #include #include +#include #include #include #include #include #include +#include #include #include +#include "PrintHost.hpp" #include "libslic3r/PrintConfig.hpp" #include "slic3r/GUI/GUI.hpp" #include "slic3r/GUI/I18N.hpp" diff --git a/src/slic3r/Utils/Flashforge.cpp b/src/slic3r/Utils/Flashforge.cpp index a042a889ae..5f639c3e5f 100644 --- a/src/slic3r/Utils/Flashforge.cpp +++ b/src/slic3r/Utils/Flashforge.cpp @@ -1,8 +1,22 @@ #include "Flashforge.hpp" #include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include +#include +#include "libslic3r/Config.hpp" +#include +#include #include #include #include @@ -16,11 +30,14 @@ #include #include +#include +#include #include #include #include #include #include +#include #include #include @@ -28,6 +45,7 @@ #include #include +#include "PrintHost.hpp" #include "libslic3r/PrintConfig.hpp" #include "slic3r/GUI/GUI.hpp" #include "slic3r/GUI/I18N.hpp" diff --git a/src/slic3r/Utils/FontConfigHelp.cpp b/src/slic3r/Utils/FontConfigHelp.cpp index 15beca07ba..f3280ad83d 100644 --- a/src/slic3r/Utils/FontConfigHelp.cpp +++ b/src/slic3r/Utils/FontConfigHelp.cpp @@ -1,4 +1,11 @@ #include "FontConfigHelp.hpp" +#include +#include +#include +#include +#include +#include +#include #ifdef EXIST_FONT_CONFIG_INCLUDE diff --git a/src/slic3r/Utils/FontConfigHelp.hpp b/src/slic3r/Utils/FontConfigHelp.hpp index d2d7738767..ca69b7719e 100644 --- a/src/slic3r/Utils/FontConfigHelp.hpp +++ b/src/slic3r/Utils/FontConfigHelp.hpp @@ -1,6 +1,7 @@ #ifndef slic3r_FontConfigHelp_hpp_ #define slic3r_FontConfigHelp_hpp_ +#include #ifdef __linux__ #define EXIST_FONT_CONFIG_INCLUDE #endif diff --git a/src/slic3r/Utils/HexFile.cpp b/src/slic3r/Utils/HexFile.cpp index a13fcab02b..76e1f998bf 100644 --- a/src/slic3r/Utils/HexFile.cpp +++ b/src/slic3r/Utils/HexFile.cpp @@ -1,9 +1,15 @@ #include "HexFile.hpp" +#include +#include +#include +#include #include #include #include #include +#include +#include namespace fs = boost::filesystem; namespace pt = boost::property_tree; diff --git a/src/slic3r/Utils/Http.cpp b/src/slic3r/Utils/Http.cpp index 363ca0ecf6..552c0b6a39 100644 --- a/src/slic3r/Utils/Http.cpp +++ b/src/slic3r/Utils/Http.cpp @@ -1,8 +1,23 @@ #include "Http.hpp" +#include "libslic3r_version.h" +#include #include +#include +#include #include +#include +#include #include +#include +#include +#include +#include +#include +#include +#include "libslic3r/Exception.hpp" +#include +#include #include #include #include @@ -14,6 +29,7 @@ #include #include +#include #ifdef OPENSSL_CERT_OVERRIDE #include diff --git a/src/slic3r/Utils/Http.hpp b/src/slic3r/Utils/Http.hpp index a44a95e605..d8fa012124 100644 --- a/src/slic3r/Utils/Http.hpp +++ b/src/slic3r/Utils/Http.hpp @@ -1,8 +1,10 @@ #ifndef __Http_hpp__ #define __Http_hpp__ +#include #include #include +#include #include #include #include diff --git a/src/slic3r/Utils/InstanceID.cpp b/src/slic3r/Utils/InstanceID.cpp index d4a903e276..d683138e2e 100644 --- a/src/slic3r/Utils/InstanceID.cpp +++ b/src/slic3r/Utils/InstanceID.cpp @@ -1,7 +1,10 @@ #include "InstanceID.hpp" #include +#include +#include #include +#include #include #include #include diff --git a/src/slic3r/Utils/MKS.cpp b/src/slic3r/Utils/MKS.cpp index ced7af9c9f..6a27c7c7ce 100644 --- a/src/slic3r/Utils/MKS.cpp +++ b/src/slic3r/Utils/MKS.cpp @@ -12,14 +12,18 @@ #include #include +#include #include #include #include #include #include +#include #include #include +#include "TCPConsole.hpp" +#include "PrintHost.hpp" #include "libslic3r/PrintConfig.hpp" #include "slic3r/GUI/GUI.hpp" #include "slic3r/GUI/I18N.hpp" diff --git a/src/slic3r/Utils/MeshInspect.cpp b/src/slic3r/Utils/MeshInspect.cpp index 0a60358278..dd8e5c88a0 100644 --- a/src/slic3r/Utils/MeshInspect.cpp +++ b/src/slic3r/Utils/MeshInspect.cpp @@ -3,11 +3,17 @@ #include "libslic3r/LayOnFace.hpp" #include "libslic3r/Model.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/BoundingBox.hpp" +#include #include #include #include #include +#include +#include +#include namespace Slic3r { namespace MeshInspect { diff --git a/src/slic3r/Utils/MeshInspect.hpp b/src/slic3r/Utils/MeshInspect.hpp index 0f53b41c4a..b908d568ba 100644 --- a/src/slic3r/Utils/MeshInspect.hpp +++ b/src/slic3r/Utils/MeshInspect.hpp @@ -1,5 +1,6 @@ #pragma once +#include #include #include #include diff --git a/src/slic3r/Utils/Moonraker.cpp b/src/slic3r/Utils/Moonraker.cpp index 73fdb8486a..f8692a8bb8 100644 --- a/src/slic3r/Utils/Moonraker.cpp +++ b/src/slic3r/Utils/Moonraker.cpp @@ -1,12 +1,17 @@ #include "Moonraker.hpp" +#include #include #include #include #include #include +#include +#include +#include +#include "PrintHost.hpp" #include "libslic3r/PrintConfig.hpp" #include "slic3r/GUI/I18N.hpp" #include "slic3r/GUI/GUI.hpp" diff --git a/src/slic3r/Utils/MoonrakerPrinterAgent.cpp b/src/slic3r/Utils/MoonrakerPrinterAgent.cpp index 5d75955a1e..96570b656b 100644 --- a/src/slic3r/Utils/MoonrakerPrinterAgent.cpp +++ b/src/slic3r/Utils/MoonrakerPrinterAgent.cpp @@ -1,6 +1,7 @@ #include "MoonrakerPrinterAgent.hpp" #include "Http.hpp" #include "IPrinterAgent.hpp" +#include "bambu_networking.hpp" #include "libslic3r/Preset.hpp" #include "libslic3r/PresetBundle.hpp" #include "slic3r/GUI/GUI_App.hpp" @@ -11,18 +12,44 @@ #include "../GUI/DeviceCore/DevFirmware.h" #include "nlohmann/json.hpp" #include +#include +#include +#include +#include #include +#include #include #include +#include +#include +#include +#include +#include #include +#include +#include +#include +#include #include +#include +#include #include #include #include #include #include +#include +#include +#include #include +#include +#include +#include +#include +#include #include +#include +#include namespace { diff --git a/src/slic3r/Utils/MoonrakerPrinterAgent.hpp b/src/slic3r/Utils/MoonrakerPrinterAgent.hpp index a25a088ada..a733d4dfb2 100644 --- a/src/slic3r/Utils/MoonrakerPrinterAgent.hpp +++ b/src/slic3r/Utils/MoonrakerPrinterAgent.hpp @@ -3,7 +3,11 @@ #include "IPrinterAgent.hpp" #include "ICloudServiceAgent.hpp" +#include "bambu_networking.hpp" +#include +#include +#include #include #include #include @@ -11,6 +15,7 @@ #include #include +#include namespace Slic3r { diff --git a/src/slic3r/Utils/NetworkAgent.cpp b/src/slic3r/Utils/NetworkAgent.cpp index 1f7705658e..4e5154fd42 100644 --- a/src/slic3r/Utils/NetworkAgent.cpp +++ b/src/slic3r/Utils/NetworkAgent.cpp @@ -1,11 +1,24 @@ #include "NetworkAgent.hpp" +#include +#include +#include +#include +#include +#include "libslic3r/ProjectTask.hpp" #include #include #include +#include +#include +#include +#include "CloudProvider.hpp" +#include "ICloudServiceAgent.hpp" +#include "ICameraSignalingChannel.hpp" #include "IPrinterAgent.hpp" #include "BBLNetworkPlugin.hpp" +#include "bambu_networking.hpp" namespace Slic3r { diff --git a/src/slic3r/Utils/NetworkAgent.hpp b/src/slic3r/Utils/NetworkAgent.hpp index f93178db8b..c7813f2bb7 100644 --- a/src/slic3r/Utils/NetworkAgent.hpp +++ b/src/slic3r/Utils/NetworkAgent.hpp @@ -1,12 +1,15 @@ #ifndef __NETWORK_Agent_HPP__ #define __NETWORK_Agent_HPP__ +#include "CloudProvider.hpp" +#include "ICameraSignalingChannel.hpp" #include "bambu_networking.hpp" #include "libslic3r/ProjectTask.hpp" #include "ICloudServiceAgent.hpp" #include "IPrinterAgent.hpp" +#include #include #include #include diff --git a/src/slic3r/Utils/NetworkAgentFactory.cpp b/src/slic3r/Utils/NetworkAgentFactory.cpp index e2e58b7510..3d87a3eec9 100644 --- a/src/slic3r/Utils/NetworkAgentFactory.cpp +++ b/src/slic3r/Utils/NetworkAgentFactory.cpp @@ -1,4 +1,5 @@ #include "NetworkAgentFactory.hpp" +#include "CloudProvider.hpp" #include "IPrinterAgent.hpp" #include "ICloudServiceAgent.hpp" #include "BBLPrinterAgent.hpp" @@ -13,13 +14,18 @@ #include #include #include +#include #include +#include #include #include #include #include #include +#include +#include #include +#include namespace Slic3r { namespace { diff --git a/src/slic3r/Utils/NetworkAgentFactory.hpp b/src/slic3r/Utils/NetworkAgentFactory.hpp index a055b19493..0053a42466 100644 --- a/src/slic3r/Utils/NetworkAgentFactory.hpp +++ b/src/slic3r/Utils/NetworkAgentFactory.hpp @@ -1,6 +1,7 @@ #ifndef __NETWORK_AGENT_FACTORY_HPP__ #define __NETWORK_AGENT_FACTORY_HPP__ +#include "CloudProvider.hpp" #include "ICloudServiceAgent.hpp" #include "IPrinterAgent.hpp" #include "NetworkAgent.hpp" @@ -11,6 +12,7 @@ #include #include #include +#include #include namespace Slic3r { diff --git a/src/slic3r/Utils/Obico.cpp b/src/slic3r/Utils/Obico.cpp index 92d748b496..9dabd91467 100644 --- a/src/slic3r/Utils/Obico.cpp +++ b/src/slic3r/Utils/Obico.cpp @@ -1,6 +1,8 @@ #include "Obico.hpp" #include +#include "libslic3r/Exception.hpp" +#include #include #include #include @@ -14,8 +16,12 @@ #include #include +#include +#include #include +#include +#include "PrintHost.hpp" #include "slic3r/GUI/GUI.hpp" #include "slic3r/GUI/I18N.hpp" #include "slic3r/GUI/GUI_App.hpp" diff --git a/src/slic3r/Utils/OctoPrint.cpp b/src/slic3r/Utils/OctoPrint.cpp index fa57b7b527..a39b300d79 100644 --- a/src/slic3r/Utils/OctoPrint.cpp +++ b/src/slic3r/Utils/OctoPrint.cpp @@ -1,6 +1,10 @@ #include "OctoPrint.hpp" #include +#include +#include "libslic3r/Config.hpp" +#include "libslic3r/PrintConfig.hpp" +#include "libslic3r/Exception.hpp" #include #include #include @@ -14,8 +18,14 @@ #include +#include +#include +#include +#include #include +#include +#include "PrintHost.hpp" #include "slic3r/GUI/GUI.hpp" #include "slic3r/GUI/I18N.hpp" #include "slic3r/GUI/GUI_App.hpp" diff --git a/src/slic3r/Utils/OctoPrint.hpp b/src/slic3r/Utils/OctoPrint.hpp index ad7e8c411e..b2dbe11cff 100644 --- a/src/slic3r/Utils/OctoPrint.hpp +++ b/src/slic3r/Utils/OctoPrint.hpp @@ -1,6 +1,7 @@ #ifndef slic3r_OctoPrint_hpp_ #define slic3r_OctoPrint_hpp_ +#include #include #include #include diff --git a/src/slic3r/Utils/OrcaCloudServiceAgent.cpp b/src/slic3r/Utils/OrcaCloudServiceAgent.cpp index 1618bff548..2cebdb8ab9 100644 --- a/src/slic3r/Utils/OrcaCloudServiceAgent.cpp +++ b/src/slic3r/Utils/OrcaCloudServiceAgent.cpp @@ -1,21 +1,37 @@ #include "OrcaCloudServiceAgent.hpp" +#include "CloudProvider.hpp" #include "Http.hpp" +#include "bambu_networking.hpp" +#include "ICloudServiceAgent.hpp" #include "libslic3r/Utils.hpp" #include "slic3r/GUI/GUI_App.hpp" #include "libslic3r/AppConfig.hpp" +#include #include +#include +#include #include #include +#include #include +#include #include #include #include +#include +#include #include +#include #include +#include #include +#include +#include "libslic3r/Preset.hpp" +#include "libslic3r/ProjectTask.hpp" #include +#include #include #include #include @@ -32,7 +48,11 @@ #include #include +#include +#include +#include #include +#include #include #include #include diff --git a/src/slic3r/Utils/OrcaCloudServiceAgent.hpp b/src/slic3r/Utils/OrcaCloudServiceAgent.hpp index 7e060da84a..458aa55fcd 100644 --- a/src/slic3r/Utils/OrcaCloudServiceAgent.hpp +++ b/src/slic3r/Utils/OrcaCloudServiceAgent.hpp @@ -1,9 +1,12 @@ #ifndef __ORCA_CLOUD_SERVICE_AGENT_HPP__ #define __ORCA_CLOUD_SERVICE_AGENT_HPP__ +#include "CloudProvider.hpp" #include "ICameraSignalingChannel.hpp" #include "ICloudServiceAgent.hpp" +#include "bambu_networking.hpp" #include +#include "libslic3r/ProjectTask.hpp" #include #include #include @@ -13,6 +16,7 @@ #include #include #include +#include #include #include diff --git a/src/slic3r/Utils/OrcaPrinterAgent.cpp b/src/slic3r/Utils/OrcaPrinterAgent.cpp index 987cc0efdb..cb8b38acc8 100644 --- a/src/slic3r/Utils/OrcaPrinterAgent.cpp +++ b/src/slic3r/Utils/OrcaPrinterAgent.cpp @@ -1,6 +1,11 @@ #include "OrcaPrinterAgent.hpp" #include "IPrinterAgent.hpp" #include "NetworkAgentFactory.hpp" +#include +#include +#include +#include +#include "bambu_networking.hpp" namespace Slic3r { diff --git a/src/slic3r/Utils/OrcaPrinterAgent.hpp b/src/slic3r/Utils/OrcaPrinterAgent.hpp index 7d2a75fe0f..a56b2c8dda 100644 --- a/src/slic3r/Utils/OrcaPrinterAgent.hpp +++ b/src/slic3r/Utils/OrcaPrinterAgent.hpp @@ -3,6 +3,7 @@ #include "IPrinterAgent.hpp" #include "ICloudServiceAgent.hpp" +#include "bambu_networking.hpp" #include #include #include diff --git a/src/slic3r/Utils/PaintCLI.cpp b/src/slic3r/Utils/PaintCLI.cpp index d99dc0b450..2bf2b9728a 100644 --- a/src/slic3r/Utils/PaintCLI.cpp +++ b/src/slic3r/Utils/PaintCLI.cpp @@ -5,9 +5,13 @@ #include "libslic3r/TriangleMesh.hpp" #include "libslic3r/TriangleSelector.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/BoundingBox.hpp" +#include #include #include +#include #include #include #include diff --git a/src/slic3r/Utils/PresetUpdater.cpp b/src/slic3r/Utils/PresetUpdater.cpp index 5bbe779970..1df0edf8fa 100644 --- a/src/slic3r/Utils/PresetUpdater.cpp +++ b/src/slic3r/Utils/PresetUpdater.cpp @@ -1,12 +1,23 @@ #include "PresetUpdater.hpp" #include +#include +#include +#include #include +#include #include #include #include +#include #include #include +#include "libslic3r/Exception.hpp" +#include +#include +#include "libslic3r/AppConfig.hpp" +#include "libslic3r/Preset.hpp" +#include "libslic3r/Config.hpp" #include #include #include @@ -24,8 +35,10 @@ #include #include +#include #include +#include "json_diff.hpp" #include "libslic3r/libslic3r.h" #include "libslic3r/format.hpp" #include "libslic3r/Utils.hpp" diff --git a/src/slic3r/Utils/PresetUpdater.hpp b/src/slic3r/Utils/PresetUpdater.hpp index ccb0902fd5..22571e52d9 100644 --- a/src/slic3r/Utils/PresetUpdater.hpp +++ b/src/slic3r/Utils/PresetUpdater.hpp @@ -4,6 +4,7 @@ #include #include #include +#include #include #include diff --git a/src/slic3r/Utils/PrintHost.cpp b/src/slic3r/Utils/PrintHost.cpp index 2eeb78a975..2b3c4d181d 100644 --- a/src/slic3r/Utils/PrintHost.cpp +++ b/src/slic3r/Utils/PrintHost.cpp @@ -1,5 +1,17 @@ #include "PrintHost.hpp" +#include +#include "libslic3r/Config.hpp" +#include +#include +#include "slic3r/GUI/Gizmos/GLGizmoBase.hpp" +#include +#include +#include +#include +#include +#include "libslic3r/LifecycleEvents.hpp" +#include "slic3r/GUI/GUI_App.hpp" #include #include #include @@ -11,6 +23,7 @@ #include #include +#include #include #include #include diff --git a/src/slic3r/Utils/PrintHost.hpp b/src/slic3r/Utils/PrintHost.hpp index cf197ede07..771eb7732a 100644 --- a/src/slic3r/Utils/PrintHost.hpp +++ b/src/slic3r/Utils/PrintHost.hpp @@ -1,12 +1,14 @@ #ifndef slic3r_PrintHost_hpp_ #define slic3r_PrintHost_hpp_ +#include #include #include #include #include #include +#include #include #include diff --git a/src/slic3r/Utils/Process.cpp b/src/slic3r/Utils/Process.cpp index 96da521114..150e838489 100644 --- a/src/slic3r/Utils/Process.cpp +++ b/src/slic3r/Utils/Process.cpp @@ -1,5 +1,6 @@ #include "Process.hpp" +#include #include #include "../GUI/GUI.hpp" @@ -13,6 +14,11 @@ #include #include +#include +#include +#include +#include +#include // For starting another OrcaSlicer instance on OSX. // Fails to compile on Windows on the build server. diff --git a/src/slic3r/Utils/QidiPrinterAgent.cpp b/src/slic3r/Utils/QidiPrinterAgent.cpp index 4a90ec3771..06499e1092 100644 --- a/src/slic3r/Utils/QidiPrinterAgent.cpp +++ b/src/slic3r/Utils/QidiPrinterAgent.cpp @@ -1,13 +1,22 @@ #include "QidiPrinterAgent.hpp" #include "Http.hpp" +#include "MoonrakerPrinterAgent.hpp" +#include "IPrinterAgent.hpp" #include "libslic3r/PresetBundle.hpp" #include "slic3r/GUI/GUI_App.hpp" #include "nlohmann/json.hpp" #include +#include +#include #include #include +#include "libslic3r/Preset.hpp" +#include #include +#include +#include +#include using json = nlohmann::json; diff --git a/src/slic3r/Utils/QidiPrinterAgent.hpp b/src/slic3r/Utils/QidiPrinterAgent.hpp index ce7b4cda0d..5f4cfc3a7e 100644 --- a/src/slic3r/Utils/QidiPrinterAgent.hpp +++ b/src/slic3r/Utils/QidiPrinterAgent.hpp @@ -1,6 +1,7 @@ #ifndef __QIDI_PRINTER_AGENT_HPP__ #define __QIDI_PRINTER_AGENT_HPP__ +#include "IPrinterAgent.hpp" #include "MoonrakerPrinterAgent.hpp" #include diff --git a/src/slic3r/Utils/RaycastManager.cpp b/src/slic3r/Utils/RaycastManager.cpp index 62c7a922d7..dba5ae1a54 100644 --- a/src/slic3r/Utils/RaycastManager.cpp +++ b/src/slic3r/Utils/RaycastManager.cpp @@ -1,5 +1,17 @@ #include "RaycastManager.hpp" +#include "libslic3r/Model.hpp" +#include "libslic3r/AABBMesh.hpp" +#include +#include "libslic3r/Point.hpp" +#include +#include +#include +#include +#include +#include "slic3r/GUI/SceneRaycaster.hpp" +#include "slic3r/GUI/3DScene.hpp" #include +#include #include "slic3r/GUI/GLCanvas3D.hpp" #include "slic3r/GUI/Camera.hpp" diff --git a/src/slic3r/Utils/RaycastManager.hpp b/src/slic3r/Utils/RaycastManager.hpp index 4e143ba5dd..0c62ecaacc 100644 --- a/src/slic3r/Utils/RaycastManager.hpp +++ b/src/slic3r/Utils/RaycastManager.hpp @@ -1,8 +1,13 @@ #ifndef slic3r_RaycastManager_hpp_ #define slic3r_RaycastManager_hpp_ +#include +#include +#include #include // unique_ptr #include +#include +#include #include "libslic3r/AABBMesh.hpp" // Structure to cast rays #include "libslic3r/Point.hpp" // Transform3d #include "libslic3r/ObjectID.hpp" diff --git a/src/slic3r/Utils/Repetier.cpp b/src/slic3r/Utils/Repetier.cpp index a524f29b71..ae269cac4f 100644 --- a/src/slic3r/Utils/Repetier.cpp +++ b/src/slic3r/Utils/Repetier.cpp @@ -1,6 +1,9 @@ #include "Repetier.hpp" #include +#include +#include "libslic3r/Exception.hpp" +#include #include #include #include @@ -10,9 +13,13 @@ #include #include +#include +#include #include +#include +#include "PrintHost.hpp" #include "libslic3r/PrintConfig.hpp" #include "slic3r/GUI/I18N.hpp" #include "slic3r/GUI/GUI.hpp" diff --git a/src/slic3r/Utils/Serial.cpp b/src/slic3r/Utils/Serial.cpp index f8c03ceb26..2b64330826 100644 --- a/src/slic3r/Utils/Serial.cpp +++ b/src/slic3r/Utils/Serial.cpp @@ -3,7 +3,19 @@ #include "libslic3r/Exception.hpp" #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include #include #include #include diff --git a/src/slic3r/Utils/Serial.hpp b/src/slic3r/Utils/Serial.hpp index 8bad75b315..c5c4d19fc5 100644 --- a/src/slic3r/Utils/Serial.hpp +++ b/src/slic3r/Utils/Serial.hpp @@ -1,6 +1,9 @@ #ifndef slic3r_GUI_Utils_Serial_hpp_ #define slic3r_GUI_Utils_Serial_hpp_ +#include +#include +#include #include #include #include diff --git a/src/slic3r/Utils/SimplyPrint.cpp b/src/slic3r/Utils/SimplyPrint.cpp index a3edfd98ee..5c68878986 100644 --- a/src/slic3r/Utils/SimplyPrint.cpp +++ b/src/slic3r/Utils/SimplyPrint.cpp @@ -1,10 +1,36 @@ #include "SimplyPrint.hpp" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include #include +#include +#include +#include +#include +#include "slic3r/GUI/Jobs/OAuthJob.hpp" +#include +#include +#include +#include "PrintHost.hpp" #include "nlohmann/json.hpp" #include "libslic3r/Utils.hpp" #include "slic3r/GUI/I18N.hpp" diff --git a/src/slic3r/Utils/SimplyPrint.hpp b/src/slic3r/Utils/SimplyPrint.hpp index 3804324724..83ff64378e 100644 --- a/src/slic3r/Utils/SimplyPrint.hpp +++ b/src/slic3r/Utils/SimplyPrint.hpp @@ -3,6 +3,11 @@ #include "PrintHost.hpp" #include "slic3r/GUI/Jobs/OAuthJob.hpp" +#include +#include +#include +#include +#include namespace Slic3r { diff --git a/src/slic3r/Utils/SnapmakerPrinterAgent.cpp b/src/slic3r/Utils/SnapmakerPrinterAgent.cpp index 6039eb260f..a237d1b2b1 100644 --- a/src/slic3r/Utils/SnapmakerPrinterAgent.cpp +++ b/src/slic3r/Utils/SnapmakerPrinterAgent.cpp @@ -1,10 +1,17 @@ #include "SnapmakerPrinterAgent.hpp" #include "Http.hpp" +#include "MoonrakerPrinterAgent.hpp" +#include "IPrinterAgent.hpp" #include "libslic3r/PresetBundle.hpp" #include "slic3r/GUI/GUI_App.hpp" #include "nlohmann/json.hpp" #include +#include +#include +#include "libslic3r/Preset.hpp" +#include +#include using json = nlohmann::json; diff --git a/src/slic3r/Utils/SnapmakerPrinterAgent.hpp b/src/slic3r/Utils/SnapmakerPrinterAgent.hpp index d49fe21239..39b642081b 100644 --- a/src/slic3r/Utils/SnapmakerPrinterAgent.hpp +++ b/src/slic3r/Utils/SnapmakerPrinterAgent.hpp @@ -1,5 +1,6 @@ #pragma once +#include "IPrinterAgent.hpp" #include "MoonrakerPrinterAgent.hpp" #include diff --git a/src/slic3r/Utils/TCPConsole.cpp b/src/slic3r/Utils/TCPConsole.cpp index 25802e3908..78d4624abc 100644 --- a/src/slic3r/Utils/TCPConsole.cpp +++ b/src/slic3r/Utils/TCPConsole.cpp @@ -1,14 +1,21 @@ +#include +#include #include +#include #include #include #include #include #include #include +#include #include #include #include +#include +#include +#include #include #include #include diff --git a/src/slic3r/Utils/TCPConsole.hpp b/src/slic3r/Utils/TCPConsole.hpp index e94e130a9e..4ec766faa4 100644 --- a/src/slic3r/Utils/TCPConsole.hpp +++ b/src/slic3r/Utils/TCPConsole.hpp @@ -1,6 +1,9 @@ #ifndef slic3r_Utils_TCPConsole_hpp_ #define slic3r_Utils_TCPConsole_hpp_ +#include +#include +#include #include #include #include @@ -8,6 +11,7 @@ #include #include #include "SerialMessage.hpp" +#include "SerialMessageType.hpp" namespace Slic3r { namespace Utils { diff --git a/src/slic3r/Utils/UltiMaker.cpp b/src/slic3r/Utils/UltiMaker.cpp index badb69d209..fefd8ec786 100644 --- a/src/slic3r/Utils/UltiMaker.cpp +++ b/src/slic3r/Utils/UltiMaker.cpp @@ -1,6 +1,10 @@ #include "UltiMaker.hpp" #include +#include +#include +#include +#include #include #include #include @@ -8,14 +12,20 @@ #include #include +#include +#include +#include +#include #include #include #include #include #include +#include #include #include +#include "PrintHost.hpp" #include "libslic3r/PrintConfig.hpp" #include "slic3r/GUI/GUI.hpp" #include "slic3r/GUI/I18N.hpp" diff --git a/src/slic3r/Utils/UndoRedo.cpp b/src/slic3r/Utils/UndoRedo.cpp index 8e7bd703c3..2cdefefbb4 100644 --- a/src/slic3r/Utils/UndoRedo.cpp +++ b/src/slic3r/Utils/UndoRedo.cpp @@ -1,9 +1,18 @@ #include "UndoRedo.hpp" #include +#include +#include +#include +#include #include #include +#include +#include "libslic3r/Exception.hpp" #include +#include +#include +#include #include #include #include @@ -14,6 +23,8 @@ #include #include #include +#include +#include #define CEREAL_FUTURE_EXPERIMENTAL #include diff --git a/src/slic3r/Utils/UndoRedo.hpp b/src/slic3r/Utils/UndoRedo.hpp index 9042d60a4b..4a5aaca9c1 100644 --- a/src/slic3r/Utils/UndoRedo.hpp +++ b/src/slic3r/Utils/UndoRedo.hpp @@ -2,8 +2,11 @@ #define slic3r_Utils_UndoRedo_hpp_ #include +#include +#include #include #include +#include #include #include diff --git a/src/slic3r/Utils/WebSocketClient.hpp b/src/slic3r/Utils/WebSocketClient.hpp index 2660231794..f85c3e15fa 100644 --- a/src/slic3r/Utils/WebSocketClient.hpp +++ b/src/slic3r/Utils/WebSocketClient.hpp @@ -1,9 +1,18 @@ #ifndef _WEB_SOCKET_CLIENT_HPP_ #define _WEB_SOCKET_CLIENT_HPP_ +#include +#include #include +#include +#include +#include #include #include #include +#include +#include +#include +#include #include #include #include diff --git a/src/slic3r/Utils/WxFontUtils.cpp b/src/slic3r/Utils/WxFontUtils.cpp index a536e65912..4d28fa54c0 100644 --- a/src/slic3r/Utils/WxFontUtils.cpp +++ b/src/slic3r/Utils/WxFontUtils.cpp @@ -1,6 +1,15 @@ #include "WxFontUtils.hpp" #include +#include #include +#include +#include "libslic3r/Emboss.hpp" +#include +#include "libslic3r/TextConfiguration.hpp" +#include +#include +#include +#include #include "libslic3r/Utils.hpp" #if defined(__APPLE__) diff --git a/src/slic3r/Utils/WxFontUtils.hpp b/src/slic3r/Utils/WxFontUtils.hpp index 51c8605ff0..7a9448fbe9 100644 --- a/src/slic3r/Utils/WxFontUtils.hpp +++ b/src/slic3r/Utils/WxFontUtils.hpp @@ -1,8 +1,10 @@ #ifndef slic3r_WxFontUtils_hpp_ #define slic3r_WxFontUtils_hpp_ +#include "libslic3r/TextConfiguration.hpp" #include #include +#include #include #include #include diff --git a/src/slic3r/Utils/bambu_networking.hpp b/src/slic3r/Utils/bambu_networking.hpp index c514daffff..30c33c6c73 100644 --- a/src/slic3r/Utils/bambu_networking.hpp +++ b/src/slic3r/Utils/bambu_networking.hpp @@ -1,6 +1,7 @@ #ifndef __BAMBU_NETWORKING_HPP__ #define __BAMBU_NETWORKING_HPP__ +#include #include #include #include diff --git a/src/slic3r/Utils/minilzo_extension.cpp b/src/slic3r/Utils/minilzo_extension.cpp index 07031cd1af..eca2ee0a7f 100644 --- a/src/slic3r/Utils/minilzo_extension.cpp +++ b/src/slic3r/Utils/minilzo_extension.cpp @@ -1,3 +1,4 @@ +#include #include #include #include diff --git a/src/slic3r/Utils/wxInspectorPlugins/CustomWidgetsPlugin.cpp b/src/slic3r/Utils/wxInspectorPlugins/CustomWidgetsPlugin.cpp index df1b495bff..a35aceafeb 100644 --- a/src/slic3r/Utils/wxInspectorPlugins/CustomWidgetsPlugin.cpp +++ b/src/slic3r/Utils/wxInspectorPlugins/CustomWidgetsPlugin.cpp @@ -8,8 +8,16 @@ #include "slic3r/GUI/Widgets/Label.hpp" #include "slic3r/GUI/Widgets/LabeledStaticBox.hpp" +#include +#include +#include +#include +#include +#include +#include #include #include +#include wxString CustomWidgetsPlugin::GetName() const { diff --git a/src/slic3r/Utils/wxInspectorPlugins/CustomWidgetsPlugin.hpp b/src/slic3r/Utils/wxInspectorPlugins/CustomWidgetsPlugin.hpp index 083ed8a74c..1430677a7d 100644 --- a/src/slic3r/Utils/wxInspectorPlugins/CustomWidgetsPlugin.hpp +++ b/src/slic3r/Utils/wxInspectorPlugins/CustomWidgetsPlugin.hpp @@ -1,6 +1,10 @@ #pragma once +#include #include +#include +#include +#include class CustomWidgetsPlugin : public wxInspector::wxInspectorPlugin { diff --git a/src/slic3r/Utils/wxInspectorPlugins/DPIAwarePlugin.cpp b/src/slic3r/Utils/wxInspectorPlugins/DPIAwarePlugin.cpp index f52a5d4313..ee81e3e7fa 100644 --- a/src/slic3r/Utils/wxInspectorPlugins/DPIAwarePlugin.cpp +++ b/src/slic3r/Utils/wxInspectorPlugins/DPIAwarePlugin.cpp @@ -2,8 +2,15 @@ #include "slic3r/GUI/GUI_Utils.hpp" // DPIFrame, DPIDialog, DPIAware

+#include +#include +#include +#include +#include +#include #include #include +#include namespace { diff --git a/src/slic3r/Utils/wxInspectorPlugins/DPIAwarePlugin.hpp b/src/slic3r/Utils/wxInspectorPlugins/DPIAwarePlugin.hpp index 5d78342967..d1df7fe4aa 100644 --- a/src/slic3r/Utils/wxInspectorPlugins/DPIAwarePlugin.hpp +++ b/src/slic3r/Utils/wxInspectorPlugins/DPIAwarePlugin.hpp @@ -1,6 +1,10 @@ #pragma once +#include #include +#include +#include +#include class DPIAwarePlugin : public wxInspector::wxInspectorPlugin { diff --git a/src/slic3r/plugin/CloudPluginService.cpp b/src/slic3r/plugin/CloudPluginService.cpp index 6b72da3293..b6af332dbc 100644 --- a/src/slic3r/plugin/CloudPluginService.cpp +++ b/src/slic3r/plugin/CloudPluginService.cpp @@ -4,9 +4,13 @@ #include "slic3r/Utils/Http.hpp" #include +#include +#include #include #include #include +#include +#include #include #include #include diff --git a/src/slic3r/plugin/PluginAuditManager.cpp b/src/slic3r/plugin/PluginAuditManager.cpp index 4d69a4f761..bd75ad2459 100644 --- a/src/slic3r/plugin/PluginAuditManager.cpp +++ b/src/slic3r/plugin/PluginAuditManager.cpp @@ -3,24 +3,33 @@ #include "../Utils/OrcaCloudServiceAgent.hpp" #include "libslic3r/Utils.hpp" #include "libslic3r/libslic3r.h" // GCODEVIEWER_APP_KEY, and SLIC3R_APP_KEY via libslic3r_version.h +#include "libslic3r_version.h" #include +#include +#include #include #include #include #include #include +#include +#include #include #include #include #include +#include #include #include #include #include +#include #include #include +#include +#include namespace Slic3r { diff --git a/src/slic3r/plugin/PluginAuditManager.hpp b/src/slic3r/plugin/PluginAuditManager.hpp index 153f9d6107..76ac5cdd18 100644 --- a/src/slic3r/plugin/PluginAuditManager.hpp +++ b/src/slic3r/plugin/PluginAuditManager.hpp @@ -2,6 +2,7 @@ #define slic3r_PluginAuditManager_hpp_ // Via pybind11 so this file requests the same python3xx.lib as everything else. +#include #include #include #include diff --git a/src/slic3r/plugin/PluginBindingUtils.hpp b/src/slic3r/plugin/PluginBindingUtils.hpp index 52050ed561..7572777c43 100644 --- a/src/slic3r/plugin/PluginBindingUtils.hpp +++ b/src/slic3r/plugin/PluginBindingUtils.hpp @@ -1,8 +1,11 @@ #pragma once +#include "libslic3r/libslic3r.h" #include #include #include "libslic3r/Config.hpp" // ConfigBase #include "libslic3r/Point.hpp" // Point/Point3 packing asserts, Vec3d, Transform3d +#include +#include #include #include #include diff --git a/src/slic3r/plugin/PluginConfig.cpp b/src/slic3r/plugin/PluginConfig.cpp index 14d24fabe1..685d295206 100644 --- a/src/slic3r/plugin/PluginConfig.cpp +++ b/src/slic3r/plugin/PluginConfig.cpp @@ -1,24 +1,38 @@ #include "PluginConfig.hpp" #include +#include #include #include #include +#include #include +#include "libslic3r/Preset.hpp" #include #include +#include +#include +#include +#include "libslic3r/Utils.hpp" +#include "libslic3r/libslic3r.h" #include #include #include #include +#include "slic3r/plugin/PluginDescriptor.hpp" #include #include #include #include #include +#include +#include +#include +#include #include +#include #include namespace Slic3r { diff --git a/src/slic3r/plugin/PluginConfig.hpp b/src/slic3r/plugin/PluginConfig.hpp index 523173af68..8f39b4a40e 100644 --- a/src/slic3r/plugin/PluginConfig.hpp +++ b/src/slic3r/plugin/PluginConfig.hpp @@ -1,5 +1,6 @@ #pragma once +#include #include #include #include diff --git a/src/slic3r/plugin/PluginDescriptor.hpp b/src/slic3r/plugin/PluginDescriptor.hpp index b0d2d214c3..9e55a89e59 100644 --- a/src/slic3r/plugin/PluginDescriptor.hpp +++ b/src/slic3r/plugin/PluginDescriptor.hpp @@ -4,6 +4,7 @@ #include #include +#include #include #include #include diff --git a/src/slic3r/plugin/PluginFsUtils.cpp b/src/slic3r/plugin/PluginFsUtils.cpp index 4d6aabe3d3..e3b1bc3bee 100644 --- a/src/slic3r/plugin/PluginFsUtils.cpp +++ b/src/slic3r/plugin/PluginFsUtils.cpp @@ -4,16 +4,24 @@ #include "libslic3r/miniz_extension.hpp" #include +#include +#include +#include +#include #include #include #include "PluginAuditManager.hpp" #include "PythonInterpreter.hpp" +#include +#include #include #include #include +#include +#include "slic3r/plugin/PluginDescriptor.hpp" #include #include #include diff --git a/src/slic3r/plugin/PluginFsUtils.hpp b/src/slic3r/plugin/PluginFsUtils.hpp index 5b62e9f7f1..80174a68bd 100644 --- a/src/slic3r/plugin/PluginFsUtils.hpp +++ b/src/slic3r/plugin/PluginFsUtils.hpp @@ -1,6 +1,7 @@ #pragma once #include "PluginDescriptor.hpp" +#include #include #include @@ -9,6 +10,7 @@ #include #include +#include #include #define PLUGIN_SUBSCRIBED_DIR "_subscribed" diff --git a/src/slic3r/plugin/PluginHooks.cpp b/src/slic3r/plugin/PluginHooks.cpp index 2d84df5fdb..36c7f9292d 100644 --- a/src/slic3r/plugin/PluginHooks.cpp +++ b/src/slic3r/plugin/PluginHooks.cpp @@ -13,7 +13,10 @@ #include +#include +#include #include +#include "slic3r/plugin/PluginDescriptor.hpp" #include #include diff --git a/src/slic3r/plugin/PluginLoader.cpp b/src/slic3r/plugin/PluginLoader.cpp index 0c45564f1b..9da76b9109 100644 --- a/src/slic3r/plugin/PluginLoader.cpp +++ b/src/slic3r/plugin/PluginLoader.cpp @@ -11,9 +11,26 @@ #include "libslic3r/Utils.hpp" #include +#include +#include #include +#include +#include +#include +#include #include #include +#include "slic3r/plugin/PluginDescriptor.hpp" +#include +#include +#include +#include "slic3r/plugin/PythonPluginInterface.hpp" +#include +#include +#include +#include +#include +#include #ifdef _WIN32 #include #endif diff --git a/src/slic3r/plugin/PluginManager.cpp b/src/slic3r/plugin/PluginManager.cpp index 022f85eb1f..c064622b17 100644 --- a/src/slic3r/plugin/PluginManager.cpp +++ b/src/slic3r/plugin/PluginManager.cpp @@ -1,8 +1,14 @@ #include "PluginManager.hpp" +#include +#include +#include #include +#include +#include "libslic3r/LifecycleEvents.hpp" #include #include +#include #include #include "PluginFsUtils.hpp" @@ -21,14 +27,19 @@ #include #include #include +#include "slic3r/plugin/CloudPluginService.hpp" #include #include #include #include #include +#include #include +#include #include #include +#include +#include namespace Slic3r { namespace { diff --git a/src/slic3r/plugin/PluginManager.hpp b/src/slic3r/plugin/PluginManager.hpp index 891f787bf2..bd7a495a67 100644 --- a/src/slic3r/plugin/PluginManager.hpp +++ b/src/slic3r/plugin/PluginManager.hpp @@ -1,9 +1,11 @@ #ifndef slic3r_PluginManager_hpp_ #define slic3r_PluginManager_hpp_ +#include #include #include +#include #include #include #include @@ -13,9 +15,11 @@ #include #include #include +#include "slic3r/plugin/PluginFsUtils.hpp" #include #include #include +#include #include #include diff --git a/src/slic3r/plugin/PluginResolver.cpp b/src/slic3r/plugin/PluginResolver.cpp index 6e72929c63..6b8ca9a417 100644 --- a/src/slic3r/plugin/PluginResolver.cpp +++ b/src/slic3r/plugin/PluginResolver.cpp @@ -11,9 +11,15 @@ #include "../GUI/NotificationManager.hpp" #include +#include #include +#include "libslic3r/Preset.hpp" #include +#include #include +#include +#include "slic3r/plugin/PythonPluginInterface.hpp" +#include #include #include diff --git a/src/slic3r/plugin/PyPluginTrampoline.hpp b/src/slic3r/plugin/PyPluginTrampoline.hpp index 4c77f1ba9c..915c578353 100644 --- a/src/slic3r/plugin/PyPluginTrampoline.hpp +++ b/src/slic3r/plugin/PyPluginTrampoline.hpp @@ -1,17 +1,22 @@ #ifndef slic3r_PyPluginTrampoline_hpp_ #define slic3r_PyPluginTrampoline_hpp_ +#include "libslic3r/LifecycleEvents.hpp" #include #include #include #include +#include #include "PythonPluginInterface.hpp" #include "PythonInterpreter.hpp" #include "PluginFsUtils.hpp" #include "PluginAuditManager.hpp" +#include +#include +#include // Trampoline variants of pybind11's override macros. Every C++->Python plugin call crosses a // trampoline method, so this single boundary is where we (1) log the full Python traceback and diff --git a/src/slic3r/plugin/PythonInterpreter.cpp b/src/slic3r/plugin/PythonInterpreter.cpp index d82bf52a13..6d1afc1ba1 100644 --- a/src/slic3r/plugin/PythonInterpreter.cpp +++ b/src/slic3r/plugin/PythonInterpreter.cpp @@ -2,9 +2,15 @@ #include "GeneratedConfig.hpp" #include "libslic3r/Utils.hpp" #include "PluginAuditManager.hpp" +#include +#include #include +#include +#include +#include #include #include "PluginFsUtils.hpp" +#include #include @@ -16,7 +22,10 @@ #include #include #include +#include #include +#include +#include #include namespace Slic3r { diff --git a/src/slic3r/plugin/PythonInterpreter.hpp b/src/slic3r/plugin/PythonInterpreter.hpp index e15aa91598..2c499283cc 100644 --- a/src/slic3r/plugin/PythonInterpreter.hpp +++ b/src/slic3r/plugin/PythonInterpreter.hpp @@ -2,6 +2,7 @@ #define slic3r_PythonInterpreter_hpp_ // Via pybind11 so this file requests the same python3xx.lib as everything else. +#include #include #include #include diff --git a/src/slic3r/plugin/PythonPluginBridge.cpp b/src/slic3r/plugin/PythonPluginBridge.cpp index a88695005c..6cf747810f 100644 --- a/src/slic3r/plugin/PythonPluginBridge.cpp +++ b/src/slic3r/plugin/PythonPluginBridge.cpp @@ -3,15 +3,19 @@ #include #include #include +#include "libslic3r/LifecycleEvents.hpp" #include #include #include +#include "slic3r/plugin/PythonPluginInterface.hpp" #include #include #include #include #include +#include +#include #include "PythonInterpreter.hpp" #include "PluginFsUtils.hpp" @@ -23,6 +27,8 @@ #include "pluginTypes/pages/PagesPluginCapability.hpp" #include "pluginTypes/script/ScriptPluginCapability.hpp" #include "pluginTypes/slicingPipeline/SlicingPipelinePluginCapability.hpp" +#include +#include namespace py = pybind11; diff --git a/src/slic3r/plugin/host/PluginHost.cpp b/src/slic3r/plugin/host/PluginHost.cpp index 2830d6f276..ae56bc575c 100644 --- a/src/slic3r/plugin/host/PluginHost.cpp +++ b/src/slic3r/plugin/host/PluginHost.cpp @@ -1,10 +1,12 @@ #include "PluginHost.hpp" #include "PluginHostBindings.hpp" #include "PluginHostUi.hpp" +#include #include #include #include +#include namespace Slic3r { diff --git a/src/slic3r/plugin/host/PluginHostApp.cpp b/src/slic3r/plugin/host/PluginHostApp.cpp index 75acd4cc7b..668e99c7ff 100644 --- a/src/slic3r/plugin/host/PluginHostApp.cpp +++ b/src/slic3r/plugin/host/PluginHostApp.cpp @@ -1,4 +1,5 @@ #include "PluginHostBindings.hpp" +#include #include #include @@ -8,6 +9,8 @@ #include #include +#include +#include namespace py = pybind11; diff --git a/src/slic3r/plugin/host/PluginHostGeometry.cpp b/src/slic3r/plugin/host/PluginHostGeometry.cpp index 646dffb5d4..14db01cc4c 100644 --- a/src/slic3r/plugin/host/PluginHostGeometry.cpp +++ b/src/slic3r/plugin/host/PluginHostGeometry.cpp @@ -1,10 +1,18 @@ #include "PluginHostBindings.hpp" +#include +#include +#include +#include #include "slic3r/plugin/PluginBindingUtils.hpp" +#include #include #include // offset/offset_ex/union_ex/diff_ex/intersection_ex #include +#include "libslic3r/Polygon.hpp" +#include "libslic3r/libslic3r.h" +#include "libslic3r/Point.hpp" #include #include diff --git a/src/slic3r/plugin/host/PluginHostMesh.cpp b/src/slic3r/plugin/host/PluginHostMesh.cpp index 28da5c3afc..8799278bd5 100644 --- a/src/slic3r/plugin/host/PluginHostMesh.cpp +++ b/src/slic3r/plugin/host/PluginHostMesh.cpp @@ -1,11 +1,18 @@ #include "PluginHostBindings.hpp" #include "PluginHostMesh.hpp" +#include +#include +#include #include "slic3r/plugin/PluginBindingUtils.hpp" +#include "libslic3r/TriangleMesh.hpp" +#include "libslic3r/Point.hpp" +#include #include #include #include +#include #include namespace py = pybind11; diff --git a/src/slic3r/plugin/host/PluginHostModel.cpp b/src/slic3r/plugin/host/PluginHostModel.cpp index 3da1c2ae6f..357e37808d 100644 --- a/src/slic3r/plugin/host/PluginHostModel.cpp +++ b/src/slic3r/plugin/host/PluginHostModel.cpp @@ -1,7 +1,11 @@ #include "PluginHostBindings.hpp" #include "PluginHostMesh.hpp" +#include +#include +#include #include "slic3r/plugin/PluginBindingUtils.hpp" +#include #include #include diff --git a/src/slic3r/plugin/host/PluginHostPresets.cpp b/src/slic3r/plugin/host/PluginHostPresets.cpp index fffe9e64cf..6e10e3f282 100644 --- a/src/slic3r/plugin/host/PluginHostPresets.cpp +++ b/src/slic3r/plugin/host/PluginHostPresets.cpp @@ -1,9 +1,14 @@ #include "PluginHostBindings.hpp" +#include +#include +#include #include "slic3r/plugin/PluginBindingUtils.hpp" +#include #include #include +#include #include #include diff --git a/src/slic3r/plugin/host/PluginHostSlicing.cpp b/src/slic3r/plugin/host/PluginHostSlicing.cpp index 30e7b45138..fb2c02eaac 100644 --- a/src/slic3r/plugin/host/PluginHostSlicing.cpp +++ b/src/slic3r/plugin/host/PluginHostSlicing.cpp @@ -1,4 +1,7 @@ #include "PluginHostBindings.hpp" +#include +#include +#include #include "slic3r/plugin/PluginBindingUtils.hpp" #include "libslic3r/BoundingBox.hpp" @@ -10,8 +13,12 @@ #include "libslic3r/Layer.hpp" // LayerRegion, Layer, SupportLayer #include "libslic3r/Print.hpp" // PrintRegion, PrintObject, Print +#include "libslic3r/Point.hpp" +#include "libslic3r/libslic3r.h" +#include "libslic3r/Model.hpp" #include #include +#include #include namespace py = pybind11; diff --git a/src/slic3r/plugin/host/PluginHostUi.cpp b/src/slic3r/plugin/host/PluginHostUi.cpp index ed501f0249..54de1df0d6 100644 --- a/src/slic3r/plugin/host/PluginHostUi.cpp +++ b/src/slic3r/plugin/host/PluginHostUi.cpp @@ -1,9 +1,14 @@ #include "PluginHostUi.hpp" +#include +#include +#include #include "slic3r/plugin/PluginAuditManager.hpp" #include "slic3r/plugin/PythonInterpreter.hpp" // PythonGILState #include "slic3r/plugin/PluginFsUtils.hpp" // json_to_py / py_to_json +#include +#include #include #include #include @@ -18,8 +23,14 @@ #include +#include +#include #include #include +#include +#include +#include +#include #include #include diff --git a/src/slic3r/plugin/host/PluginPages.cpp b/src/slic3r/plugin/host/PluginPages.cpp index eb8b3332b9..680b573bd7 100644 --- a/src/slic3r/plugin/host/PluginPages.cpp +++ b/src/slic3r/plugin/host/PluginPages.cpp @@ -9,16 +9,30 @@ #include +#include #include #include +#include +#include +#include #include +#include "slic3r/plugin/pluginTypes/pages/PagesPluginCapability.hpp" +#include "slic3r/GUI/WebPanel.hpp" +#include +#include "slic3r/plugin/PythonPluginInterface.hpp" #include +#include +#include +#include #include +#include #include #include #include +#include +#include namespace Slic3r { namespace { diff --git a/src/slic3r/plugin/host/PluginPages.hpp b/src/slic3r/plugin/host/PluginPages.hpp index 59d34fe9ff..c0dd74b94d 100644 --- a/src/slic3r/plugin/host/PluginPages.hpp +++ b/src/slic3r/plugin/host/PluginPages.hpp @@ -12,6 +12,7 @@ #include #include +#include #include class Notebook; diff --git a/src/slic3r/plugin/pluginTypes/pages/PagesPluginCapability.cpp b/src/slic3r/plugin/pluginTypes/pages/PagesPluginCapability.cpp index e009f4426f..e6ab45246b 100644 --- a/src/slic3r/plugin/pluginTypes/pages/PagesPluginCapability.cpp +++ b/src/slic3r/plugin/pluginTypes/pages/PagesPluginCapability.cpp @@ -2,10 +2,17 @@ #include "PagesPluginCapabilityTrampoline.hpp" #include "../../PluginFsUtils.hpp" +#include +#include #include +#include +#include +#include #include +#include "slic3r/plugin/PythonPluginInterface.hpp" +#include #include namespace py = pybind11; diff --git a/src/slic3r/plugin/pluginTypes/pages/PagesPluginCapabilityTrampoline.hpp b/src/slic3r/plugin/pluginTypes/pages/PagesPluginCapabilityTrampoline.hpp index f6e13c981b..24b98bea24 100644 --- a/src/slic3r/plugin/pluginTypes/pages/PagesPluginCapabilityTrampoline.hpp +++ b/src/slic3r/plugin/pluginTypes/pages/PagesPluginCapabilityTrampoline.hpp @@ -3,8 +3,14 @@ #include "PagesPluginCapability.hpp" #include "../../PluginFsUtils.hpp" #include "../../PyPluginTrampoline.hpp" +#include +#include #include +#include +#include "slic3r/plugin/PythonPluginInterface.hpp" +#include "slic3r/plugin/PythonInterpreter.hpp" +#include namespace Slic3r { diff --git a/src/slic3r/plugin/pluginTypes/printerAgent/PrinterAgentPluginCapability.cpp b/src/slic3r/plugin/pluginTypes/printerAgent/PrinterAgentPluginCapability.cpp index d0c88404fe..eac19199bf 100644 --- a/src/slic3r/plugin/pluginTypes/printerAgent/PrinterAgentPluginCapability.cpp +++ b/src/slic3r/plugin/pluginTypes/printerAgent/PrinterAgentPluginCapability.cpp @@ -2,11 +2,16 @@ #include "PrinterAgentPluginCapabilityTrampoline.hpp" #include "IPrinterAgent.hpp" +#include +#include "slic3r/Utils/bambu_networking.hpp" +#include #include #include #include +#include +#include "slic3r/plugin/PythonPluginInterface.hpp" #include namespace py = pybind11; diff --git a/src/slic3r/plugin/pluginTypes/printerAgent/PrinterAgentPluginCapability.hpp b/src/slic3r/plugin/pluginTypes/printerAgent/PrinterAgentPluginCapability.hpp index d33cee7afe..e106a35f52 100644 --- a/src/slic3r/plugin/pluginTypes/printerAgent/PrinterAgentPluginCapability.hpp +++ b/src/slic3r/plugin/pluginTypes/printerAgent/PrinterAgentPluginCapability.hpp @@ -4,6 +4,8 @@ #include "../../PythonPluginInterface.hpp" #include "IPrinterAgent.hpp" +#include +#include "slic3r/Utils/bambu_networking.hpp" #include #include diff --git a/src/slic3r/plugin/pluginTypes/printerAgent/PrinterAgentPluginCapabilityTrampoline.hpp b/src/slic3r/plugin/pluginTypes/printerAgent/PrinterAgentPluginCapabilityTrampoline.hpp index 2e15523430..790f6e3ac6 100644 --- a/src/slic3r/plugin/pluginTypes/printerAgent/PrinterAgentPluginCapabilityTrampoline.hpp +++ b/src/slic3r/plugin/pluginTypes/printerAgent/PrinterAgentPluginCapabilityTrampoline.hpp @@ -5,9 +5,16 @@ #include "../../PyPluginTrampoline.hpp" #include "IPrinterAgent.hpp" +#include "slic3r/Utils/bambu_networking.hpp" #include "pybind11/pybind11.h" +#include +#include +#include +#include #include +#include "slic3r/plugin/PythonInterpreter.hpp" #include +#include #include #include diff --git a/src/slic3r/plugin/pluginTypes/script/ScriptPluginCapability.cpp b/src/slic3r/plugin/pluginTypes/script/ScriptPluginCapability.cpp index 712ba9b653..f9ff379cf8 100644 --- a/src/slic3r/plugin/pluginTypes/script/ScriptPluginCapability.cpp +++ b/src/slic3r/plugin/pluginTypes/script/ScriptPluginCapability.cpp @@ -3,8 +3,10 @@ #include "ScriptPluginCapabilityTrampoline.hpp" #include +#include #include #include +#include "slic3r/plugin/PythonPluginInterface.hpp" namespace py = pybind11; diff --git a/src/slic3r/plugin/pluginTypes/script/ScriptPluginCapability.hpp b/src/slic3r/plugin/pluginTypes/script/ScriptPluginCapability.hpp index fb1319e560..59055d7c8f 100644 --- a/src/slic3r/plugin/pluginTypes/script/ScriptPluginCapability.hpp +++ b/src/slic3r/plugin/pluginTypes/script/ScriptPluginCapability.hpp @@ -2,6 +2,7 @@ #define slic3r_ScriptPluginCapability_hpp_ #include "../../PythonPluginInterface.hpp" +#include namespace Slic3r { class ScriptPluginCapability : public PluginCapabilityInterface diff --git a/src/slic3r/plugin/pluginTypes/script/ScriptPluginCapabilityTrampoline.hpp b/src/slic3r/plugin/pluginTypes/script/ScriptPluginCapabilityTrampoline.hpp index 62958a89d9..dc90001c57 100644 --- a/src/slic3r/plugin/pluginTypes/script/ScriptPluginCapabilityTrampoline.hpp +++ b/src/slic3r/plugin/pluginTypes/script/ScriptPluginCapabilityTrampoline.hpp @@ -3,6 +3,8 @@ #include "ScriptPluginCapability.hpp" #include "../../PyPluginTrampoline.hpp" +#include "slic3r/plugin/PythonPluginInterface.hpp" +#include namespace Slic3r { class PyScriptPluginCapabilityTrampoline : public PyPluginCommonTrampoline diff --git a/src/slic3r/plugin/pluginTypes/slicingPipeline/SlicingPipelinePluginCapability.cpp b/src/slic3r/plugin/pluginTypes/slicingPipeline/SlicingPipelinePluginCapability.cpp index d2e630242d..ed2a6aeecf 100644 --- a/src/slic3r/plugin/pluginTypes/slicingPipeline/SlicingPipelinePluginCapability.cpp +++ b/src/slic3r/plugin/pluginTypes/slicingPipeline/SlicingPipelinePluginCapability.cpp @@ -1,7 +1,14 @@ #include "SlicingPipelinePluginCapability.hpp" #include "SlicingPipelinePluginCapabilityTrampoline.hpp" +#include +#include +#include #include "slic3r/plugin/PluginBindingUtils.hpp" // config_value_or_none #include "libslic3r/libslic3r.h" // unscale<>, live SCALING_FACTOR +#include "libslic3r/Print.hpp" +#include +#include "slic3r/plugin/PythonPluginInterface.hpp" +#include namespace py = pybind11; namespace Slic3r { diff --git a/src/slic3r/plugin/pluginTypes/slicingPipeline/SlicingPipelinePluginCapability.hpp b/src/slic3r/plugin/pluginTypes/slicingPipeline/SlicingPipelinePluginCapability.hpp index da0dbcbcbd..6bad90817f 100644 --- a/src/slic3r/plugin/pluginTypes/slicingPipeline/SlicingPipelinePluginCapability.hpp +++ b/src/slic3r/plugin/pluginTypes/slicingPipeline/SlicingPipelinePluginCapability.hpp @@ -1,6 +1,7 @@ #pragma once #include "slic3r/plugin/PythonPluginInterface.hpp" #include "libslic3r/Print.hpp" // SlicingPipelineStepPlugin, Print, PrintObject +#include "libslic3r/PrintConfig.hpp" #include #include #include diff --git a/src/slic3r/plugin/pluginTypes/slicingPipeline/SlicingPipelinePluginCapabilityTrampoline.hpp b/src/slic3r/plugin/pluginTypes/slicingPipeline/SlicingPipelinePluginCapabilityTrampoline.hpp index 5c9d527e42..82312c4200 100644 --- a/src/slic3r/plugin/pluginTypes/slicingPipeline/SlicingPipelinePluginCapabilityTrampoline.hpp +++ b/src/slic3r/plugin/pluginTypes/slicingPipeline/SlicingPipelinePluginCapabilityTrampoline.hpp @@ -1,8 +1,10 @@ #pragma once #include "SlicingPipelinePluginCapability.hpp" +#include #include "slic3r/plugin/PyPluginTrampoline.hpp" #include "slic3r/plugin/PluginAuditManager.hpp" #include +#include "slic3r/plugin/PythonPluginInterface.hpp" namespace Slic3r { class PySlicingPipelinePluginCapabilityTrampoline : public PyPluginCommonTrampoline { diff --git a/tests/fff_print/test_cooling.cpp b/tests/fff_print/test_cooling.cpp index a21ff236ce..4ae9649197 100644 --- a/tests/fff_print/test_cooling.cpp +++ b/tests/fff_print/test_cooling.cpp @@ -1,10 +1,16 @@ #include +#include #include "test_helpers.hpp" #include +#include "libslic3r/PrintConfig.hpp" +#include "libslic3r/Config.hpp" +#include "libslic3r/TriangleMesh.hpp" +#include "libslic3r/libslic3r.h" #include #include +#include #include using namespace Slic3r; diff --git a/tests/fff_print/test_extrusion_entity.cpp b/tests/fff_print/test_extrusion_entity.cpp index 57bc7e81e6..5b18b3ece5 100644 --- a/tests/fff_print/test_extrusion_entity.cpp +++ b/tests/fff_print/test_extrusion_entity.cpp @@ -1,7 +1,12 @@ +#include #include #include +#include +#include +#include +#include #include "libslic3r/ExtrusionEntityCollection.hpp" #include "libslic3r/ExtrusionEntity.hpp" #include "libslic3r/Point.hpp" diff --git a/tests/fff_print/test_extrusion_processor.cpp b/tests/fff_print/test_extrusion_processor.cpp index 47f9a62ecf..a3499a71b5 100644 --- a/tests/fff_print/test_extrusion_processor.cpp +++ b/tests/fff_print/test_extrusion_processor.cpp @@ -1,5 +1,11 @@ #include +#include +#include +#include +#include +#include +#include #include "libslic3r/AABBTreeLines.hpp" #include "libslic3r/GCode/ExtrusionProcessor.hpp" #include "libslic3r/GCodeReader.hpp" @@ -9,7 +15,15 @@ #include #include +#include +#include "libslic3r/Line.hpp" +#include "libslic3r/Point.hpp" +#include +#include "libslic3r/PrintConfig.hpp" +#include "libslic3r/Print.hpp" +#include "libslic3r/Model.hpp" #include +#include #include using namespace Slic3r; diff --git a/tests/fff_print/test_fill.cpp b/tests/fff_print/test_fill.cpp index 0efaba023d..7247503824 100644 --- a/tests/fff_print/test_fill.cpp +++ b/tests/fff_print/test_fill.cpp @@ -2,13 +2,35 @@ #include #include +#include +#include #include +#include "libslic3r/Fill/FillBase.hpp" +#include "libslic3r/Polyline.hpp" +#include "libslic3r/Surface.hpp" +#include "libslic3r/Point.hpp" +#include +#include "libslic3r/Polygon.hpp" +#include "libslic3r/ExtrusionEntity.hpp" +#include "libslic3r/Line.hpp" +#include "libslic3r/ExPolygon.hpp" +#include "libslic3r/TriangleMesh.hpp" +#include +#include "libslic3r/Model.hpp" #include +#include +#include #include #include #include +#include #include +#include +#include +#include +#include +#include #include "libslic3r/ClipperUtils.hpp" #include "libslic3r/AABBTreeLines.hpp" #include "libslic3r/Fill/Fill.hpp" diff --git a/tests/fff_print/test_flow.cpp b/tests/fff_print/test_flow.cpp index 6025bb9b56..f0579c675f 100644 --- a/tests/fff_print/test_flow.cpp +++ b/tests/fff_print/test_flow.cpp @@ -1,8 +1,11 @@ #include +#include #include #include +#include +#include #include "test_helpers.hpp" // get access to init_print, etc #include "libslic3r/Config.hpp" diff --git a/tests/fff_print/test_gcode_timing.cpp b/tests/fff_print/test_gcode_timing.cpp index 8c08fc4f03..45a71cdd92 100644 --- a/tests/fff_print/test_gcode_timing.cpp +++ b/tests/fff_print/test_gcode_timing.cpp @@ -1,5 +1,9 @@ #include +#include +#include +#include +#include #include "libslic3r/libslic3r.h" #include "libslic3r/GCode/GCodeProcessor.hpp" #include "libslic3r/MultiNozzleUtils.hpp" @@ -8,9 +12,13 @@ #include "test_utils.hpp" #include +#include #include #include +#include "libslic3r/ExtrusionEntity.hpp" +#include #include +#include #include #include #include diff --git a/tests/fff_print/test_gcodeprocessor.cpp b/tests/fff_print/test_gcodeprocessor.cpp index 402a4757e1..6914ec4df9 100644 --- a/tests/fff_print/test_gcodeprocessor.cpp +++ b/tests/fff_print/test_gcodeprocessor.cpp @@ -1,5 +1,7 @@ #include +#include +#include #include "libslic3r/libslic3r.h" #include "libslic3r/GCode/GCodeProcessor.hpp" diff --git a/tests/fff_print/test_gcodewriter.cpp b/tests/fff_print/test_gcodewriter.cpp index d3a0722fc1..992204d716 100644 --- a/tests/fff_print/test_gcodewriter.cpp +++ b/tests/fff_print/test_gcodewriter.cpp @@ -1,14 +1,28 @@ +#include #include #include #include +#include "libslic3r/PrintConfig.hpp" +#include "libslic3r/BoundingBox.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/Config.hpp" +#include "libslic3r/Extruder.hpp" +#include "libslic3r/libslic3r.h" #include #include #include #include #include +#include #include +#include +#include +#include +#include +#include +#include #include "nlohmann/json.hpp" #include "libslic3r/GCodeReader.hpp" diff --git a/tests/fff_print/test_helpers.cpp b/tests/fff_print/test_helpers.cpp index 89f9f9fdd1..c131b10f83 100644 --- a/tests/fff_print/test_helpers.cpp +++ b/tests/fff_print/test_helpers.cpp @@ -1,5 +1,6 @@ #include "test_helpers.hpp" +#include #include "libslic3r/TriangleMesh.hpp" #include "libslic3r/GCodeReader.hpp" #include "libslic3r/Config.hpp" @@ -7,11 +8,23 @@ #include "libslic3r/Format/OBJ.hpp" #include "libslic3r/Format/STL.hpp" +#include #include +#include "libslic3r/libslic3r.h" +#include "libslic3r/Exception.hpp" +#include "libslic3r/PrintConfig.hpp" +#include +#include "libslic3r/Point.hpp" +#include +#include +#include #include #include #include +#include +#include +#include #include "test_utils.hpp" diff --git a/tests/fff_print/test_helpers.hpp b/tests/fff_print/test_helpers.hpp index cbdc90c3d9..1ffc08c64e 100644 --- a/tests/fff_print/test_helpers.hpp +++ b/tests/fff_print/test_helpers.hpp @@ -8,6 +8,10 @@ #include "libslic3r/Print.hpp" #include "libslic3r/TriangleMesh.hpp" +#include "libslic3r/libslic3r.h" +#include +#include "libslic3r/PrintConfig.hpp" +#include #include #include #include diff --git a/tests/fff_print/test_mixed_filament.cpp b/tests/fff_print/test_mixed_filament.cpp index 25b426c210..bfa8985fd4 100644 --- a/tests/fff_print/test_mixed_filament.cpp +++ b/tests/fff_print/test_mixed_filament.cpp @@ -1,5 +1,16 @@ +#include #include +#include "libslic3r/PrintConfig.hpp" +#include +#include +#include "libslic3r/Model.hpp" +#include +#include "libslic3r/Config.hpp" +#include "libslic3r/TriangleMesh.hpp" +#include "libslic3r/PrintBase.hpp" +#include +#include #include "libslic3r/GCode/ToolOrdering.hpp" #include "libslic3r/MultiNozzleUtils.hpp" #include "libslic3r/Print.hpp" diff --git a/tests/fff_print/test_model.cpp b/tests/fff_print/test_model.cpp index 27bf539373..9e2c0790b3 100644 --- a/tests/fff_print/test_model.cpp +++ b/tests/fff_print/test_model.cpp @@ -1,10 +1,17 @@ +#include #include +#include #include "libslic3r/libslic3r.h" #include "libslic3r/Model.hpp" #include "libslic3r/ModelArrange.hpp" #include +#include "libslic3r/TriangleMesh.hpp" +#include "libslic3r/PrintConfig.hpp" +#include +#include "libslic3r/Point.hpp" +#include #include "test_helpers.hpp" #include "test_utils.hpp" diff --git a/tests/fff_print/test_multifilament.cpp b/tests/fff_print/test_multifilament.cpp index 445b1c0694..9b9cae23db 100644 --- a/tests/fff_print/test_multifilament.cpp +++ b/tests/fff_print/test_multifilament.cpp @@ -1,5 +1,8 @@ #include +#include +#include +#include #include "libslic3r/GCode/GCodeProcessor.hpp" #include "libslic3r/GCodeReader.hpp" @@ -12,6 +15,11 @@ #include #include #include +#include "libslic3r/PrintConfig.hpp" +#include "libslic3r/Config.hpp" +#include "libslic3r/Model.hpp" +#include "libslic3r/TriangleMesh.hpp" +#include "libslic3r/Print.hpp" #include #include #include diff --git a/tests/fff_print/test_perimeters.cpp b/tests/fff_print/test_perimeters.cpp index 459ba0a178..6ab3473e3c 100644 --- a/tests/fff_print/test_perimeters.cpp +++ b/tests/fff_print/test_perimeters.cpp @@ -1,5 +1,10 @@ #include +#include +#include +#include +#include +#include #include "libslic3r/ExtrusionEntity.hpp" #include "libslic3r/ExtrusionEntityCollection.hpp" #include "libslic3r/Layer.hpp" @@ -10,8 +15,15 @@ #include #include +#include "libslic3r/PrintConfig.hpp" +#include +#include "libslic3r/libslic3r.h" +#include "libslic3r/BoundingBox.hpp" +#include "libslic3r/ExPolygon.hpp" +#include "libslic3r/Point.hpp" #include #include +#include #include #include "test_helpers.hpp" diff --git a/tests/fff_print/test_precise_seam.cpp b/tests/fff_print/test_precise_seam.cpp index d324a91626..0dd422f0f5 100644 --- a/tests/fff_print/test_precise_seam.cpp +++ b/tests/fff_print/test_precise_seam.cpp @@ -1,9 +1,24 @@ #include +#include +#include +#include +#include +#include #include "test_helpers.hpp" #include "libslic3r/GCode/PreciseSeam.hpp" #include +#include "libslic3r/Point.hpp" +#include "libslic3r/Polygon.hpp" +#include "libslic3r/Model.hpp" +#include "libslic3r/Print.hpp" +#include "libslic3r/Layer.hpp" +#include +#include +#include "libslic3r/libslic3r.h" +#include "libslic3r/GCode/SeamPlacer.hpp" +#include using namespace Slic3r; diff --git a/tests/fff_print/test_print.cpp b/tests/fff_print/test_print.cpp index 4176256021..9417934276 100644 --- a/tests/fff_print/test_print.cpp +++ b/tests/fff_print/test_print.cpp @@ -8,6 +8,20 @@ #include #endif +#include +#include +#include +#include +#include +#include "libslic3r/PrintConfig.hpp" +#include +#include "libslic3r/Surface.hpp" +#include "libslic3r/Config.hpp" +#include "libslic3r/PrintBase.hpp" +#include "libslic3r/TriangleMesh.hpp" +#include +#include + #include #include "libslic3r/libslic3r.h" diff --git a/tests/fff_print/test_printobject.cpp b/tests/fff_print/test_printobject.cpp index a373a1ad39..6671dabc4b 100644 --- a/tests/fff_print/test_printobject.cpp +++ b/tests/fff_print/test_printobject.cpp @@ -1,5 +1,11 @@ +#include #include +#include +#include +#include +#include +#include #include "libslic3r/libslic3r.h" #include "libslic3r/Print.hpp" #include "libslic3r/Layer.hpp" @@ -10,7 +16,20 @@ #include "test_helpers.hpp" #include +#include #include +#include "libslic3r/TriangleMesh.hpp" +#include "libslic3r/PrintConfig.hpp" +#include "libslic3r/Model.hpp" +#include "libslic3r/Geometry.hpp" +#include "libslic3r/Surface.hpp" +#include "libslic3r/Config.hpp" +#include "libslic3r/Polygon.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/Polyline.hpp" +#include "libslic3r/Line.hpp" +#include "libslic3r/ExtrusionEntity.hpp" +#include "libslic3r/BoundingBox.hpp" #include #include #include diff --git a/tests/fff_print/test_seam_placer.cpp b/tests/fff_print/test_seam_placer.cpp index 81b7cd806c..40bbbdd117 100644 --- a/tests/fff_print/test_seam_placer.cpp +++ b/tests/fff_print/test_seam_placer.cpp @@ -1,5 +1,10 @@ #include +#include +#include +#include +#include +#include #include "test_helpers.hpp" #include "libslic3r/GCode/SeamPlacer.hpp" #include "libslic3r/Layer.hpp" @@ -7,6 +12,16 @@ #include #include +#include "libslic3r/Model.hpp" +#include "libslic3r/PrintConfig.hpp" +#include "libslic3r/TriangleMesh.hpp" +#include +#include +#include "libslic3r/Point.hpp" +#include +#include "libslic3r/ExtrusionEntity.hpp" +#include "libslic3r/Polyline.hpp" +#include "libslic3r/libslic3r.h" using namespace Slic3r; diff --git a/tests/fff_print/test_skirt_brim.cpp b/tests/fff_print/test_skirt_brim.cpp index 17a79a7828..d04b32361e 100644 --- a/tests/fff_print/test_skirt_brim.cpp +++ b/tests/fff_print/test_skirt_brim.cpp @@ -1,5 +1,11 @@ +#include #include +#include +#include +#include +#include +#include #include "libslic3r/GCodeReader.hpp" #include "libslic3r/Config.hpp" #include "libslic3r/Geometry.hpp" @@ -9,6 +15,16 @@ #include #include +#include +#include "libslic3r/Polygon.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/Polyline.hpp" +#include +#include "libslic3r/Model.hpp" +#include +#include "libslic3r/PrintConfig.hpp" +#include "libslic3r/libslic3r.h" +#include #include "test_helpers.hpp" // get access to init_print, etc diff --git a/tests/fff_print/test_slicing_pipeline_hook.cpp b/tests/fff_print/test_slicing_pipeline_hook.cpp index d7ebd1fd60..8b328e5dde 100644 --- a/tests/fff_print/test_slicing_pipeline_hook.cpp +++ b/tests/fff_print/test_slicing_pipeline_hook.cpp @@ -1,4 +1,14 @@ #include +#include "libslic3r/Config.hpp" +#include "libslic3r/Model.hpp" +#include +#include +#include "libslic3r/Surface.hpp" +#include +#include "libslic3r/libslic3r.h" +#include "libslic3r/Point.hpp" +#include +#include "libslic3r/ExtrusionEntity.hpp" #include "libslic3r/PrintConfig.hpp" #include "test_helpers.hpp" using namespace Slic3r; diff --git a/tests/fff_print/test_support_material.cpp b/tests/fff_print/test_support_material.cpp index 97a9cea9e1..d311130094 100644 --- a/tests/fff_print/test_support_material.cpp +++ b/tests/fff_print/test_support_material.cpp @@ -1,12 +1,28 @@ +#include #include +#include +#include +#include +#include +#include #include "libslic3r/GCodeReader.hpp" #include "libslic3r/Layer.hpp" #include +#include +#include "libslic3r/TriangleMesh.hpp" +#include "libslic3r/PrintBase.hpp" +#include "libslic3r/Model.hpp" +#include "libslic3r/libslic3r.h" +#include "libslic3r/PrintConfig.hpp" #include +#include #include #include +#include +#include +#include #include #include "test_helpers.hpp" // get access to init_print, etc diff --git a/tests/fff_print/test_texture_displacement.cpp b/tests/fff_print/test_texture_displacement.cpp index 459a42d185..87047af618 100644 --- a/tests/fff_print/test_texture_displacement.cpp +++ b/tests/fff_print/test_texture_displacement.cpp @@ -1,10 +1,22 @@ +#include +#include #include +#include +#include #include +#include #include #include +#include +#include +#include +#include +#include "libslic3r/PrintConfig.hpp" +#include +#include #include "libslic3r/Model.hpp" #include "libslic3r/PNGReadWrite.hpp" #include "libslic3r/Print.hpp" diff --git a/tests/fff_print/test_tree_support.cpp b/tests/fff_print/test_tree_support.cpp index fbb40bb8f3..677cf4359f 100644 --- a/tests/fff_print/test_tree_support.cpp +++ b/tests/fff_print/test_tree_support.cpp @@ -1,7 +1,15 @@ #include #include +#include +#include "libslic3r/Config.hpp" +#include "libslic3r/PrintConfig.hpp" +#include "libslic3r/Point.hpp" +#include +#include "libslic3r/libslic3r.h" +#include +#include #include "libslic3r/Layer.hpp" #include "libslic3r/TriangleMesh.hpp" diff --git a/tests/fff_print/test_trianglemesh.cpp b/tests/fff_print/test_trianglemesh.cpp index b21f6299fd..722732e207 100644 --- a/tests/fff_print/test_trianglemesh.cpp +++ b/tests/fff_print/test_trianglemesh.cpp @@ -1,5 +1,6 @@ #include +#include #include "libslic3r/TriangleMesh.hpp" #include "libslic3r/TriangleMeshSlicer.hpp" #include "libslic3r/Point.hpp" @@ -8,8 +9,14 @@ #include "libslic3r/libslic3r.h" #include +#include +#include +#include #include #include +#include +#include +#include "libslic3r/ExPolygon.hpp" //#include "test_options.hpp" #include "test_helpers.hpp" diff --git a/tests/fff_print/test_wipe.cpp b/tests/fff_print/test_wipe.cpp index 46ee0d6441..63cd847ccb 100644 --- a/tests/fff_print/test_wipe.cpp +++ b/tests/fff_print/test_wipe.cpp @@ -2,11 +2,27 @@ #include #include +#include "libslic3r/Point.hpp" +#include "libslic3r/libslic3r.h" +#include +#include "libslic3r/TriangleMesh.hpp" +#include "libslic3r/Config.hpp" +#include "libslic3r/ExtrusionEntity.hpp" +#include "libslic3r/Model.hpp" +#include "libslic3r/Print.hpp" +#include "libslic3r/calib.hpp" +#include "libslic3r/ExtrusionEntityCollection.hpp" #include #include #include +#include #include +#include +#include +#include +#include +#include #include "libslic3r/GCode/GCodeProcessor.hpp" #include "libslic3r/GCodeReader.hpp" #include "libslic3r/PrintConfig.hpp" diff --git a/tests/fff_print/test_wipe_tower.cpp b/tests/fff_print/test_wipe_tower.cpp index 014eab6f8b..da3cbe2502 100644 --- a/tests/fff_print/test_wipe_tower.cpp +++ b/tests/fff_print/test_wipe_tower.cpp @@ -1,8 +1,23 @@ +#include #include +#include "libslic3r/Config.hpp" +#include "libslic3r/libslic3r.h" +#include "libslic3r/Point.hpp" +#include "libslic3r/Polygon.hpp" +#include +#include "libslic3r/Model.hpp" +#include "libslic3r/Print.hpp" #include #include +#include +#include +#include +#include +#include +#include +#include #include "libslic3r/BoundingBox.hpp" #include "libslic3r/ClipperUtils.hpp" #include "libslic3r/GCode/GCodeProcessor.hpp" diff --git a/tests/filament_group/fg_test_evaluator.hpp b/tests/filament_group/fg_test_evaluator.hpp index 00a2e1a6f5..ceec7cf154 100644 --- a/tests/filament_group/fg_test_evaluator.hpp +++ b/tests/filament_group/fg_test_evaluator.hpp @@ -2,13 +2,18 @@ #define FG_TEST_EVALUATOR_HPP #include "fg_test_serialization.hpp" +#include #include #include #include #include +#include +#include #include +#include #include +#include namespace Slic3r { namespace FGTest { diff --git a/tests/filament_group/fg_test_serialization.hpp b/tests/filament_group/fg_test_serialization.hpp index 5f59da619c..fa0ab3c9ff 100644 --- a/tests/filament_group/fg_test_serialization.hpp +++ b/tests/filament_group/fg_test_serialization.hpp @@ -1,6 +1,7 @@ #ifndef FG_TEST_SERIALIZATION_HPP #define FG_TEST_SERIALIZATION_HPP +#include #include #include #include @@ -10,6 +11,7 @@ #include #include #include +#include #include #include #include diff --git a/tests/filament_group/fg_test_utils.hpp b/tests/filament_group/fg_test_utils.hpp index 2d2864bf10..b493e44607 100644 --- a/tests/filament_group/fg_test_utils.hpp +++ b/tests/filament_group/fg_test_utils.hpp @@ -2,9 +2,16 @@ #define FG_TEST_UTILS_HPP #include "fg_test_serialization.hpp" +#include "libslic3r/FilamentGroupUtils.hpp" +#include "libslic3r/PrintConfig.hpp" +#include "libslic3r/FilamentGroup.hpp" +#include #include #include #include +#include +#include +#include namespace Slic3r { namespace FGTest { diff --git a/tests/filament_group/filament_group_regression_main.cpp b/tests/filament_group/filament_group_regression_main.cpp index b2cc4bd178..c8933e6b6e 100644 --- a/tests/filament_group/filament_group_regression_main.cpp +++ b/tests/filament_group/filament_group_regression_main.cpp @@ -11,13 +11,19 @@ #include +#include +#include +#include +#include #include "fg_test_serialization.hpp" #include "fg_test_evaluator.hpp" #include "fg_test_utils.hpp" +#include #include #include #include +#include "libslic3r/FilamentGroup.hpp" #include #include #include diff --git a/tests/libnest2d/libnest2d_test_utils.hpp b/tests/libnest2d/libnest2d_test_utils.hpp index 55f184f60c..b9f8510a8a 100644 --- a/tests/libnest2d/libnest2d_test_utils.hpp +++ b/tests/libnest2d/libnest2d_test_utils.hpp @@ -8,7 +8,10 @@ // it here and include this header from every libnest2d test file. #include +#include +#include "libnest2d/common.hpp" +#include "libnest2d/geometry_traits_nfp.hpp" #include #include diff --git a/tests/libnest2d/libnest2d_tests.cpp b/tests/libnest2d/libnest2d_tests.cpp index 1657d45601..f5e3263b89 100644 --- a/tests/libnest2d/libnest2d_tests.cpp +++ b/tests/libnest2d/libnest2d_tests.cpp @@ -1,5 +1,10 @@ #include +#include "libnest2d/libnest2d.hpp" +#include +#include +#include "libnest2d/nester.hpp" +#include #include "libnest2d_test_utils.hpp" using namespace libnest2d; diff --git a/tests/libnest2d/printer_parts.hpp b/tests/libnest2d/printer_parts.hpp index 075e32a837..07a3e9153d 100644 --- a/tests/libnest2d/printer_parts.hpp +++ b/tests/libnest2d/printer_parts.hpp @@ -1,6 +1,7 @@ #ifndef PRINTER_PARTS_H #define PRINTER_PARTS_H +#include "libnest2d/backends/libslic3r/geometries.hpp" #include #include diff --git a/tests/libnest2d/test_geometry.cpp b/tests/libnest2d/test_geometry.cpp index 9c58a299e4..e32c47042a 100644 --- a/tests/libnest2d/test_geometry.cpp +++ b/tests/libnest2d/test_geometry.cpp @@ -1,5 +1,24 @@ +#include +#include +#include #include +#include +#include "libnest2d/libnest2d.hpp" +#include "libnest2d/geometry_traits.hpp" +#include "libnest2d/backends/libslic3r/geometries.hpp" +#include "libnest2d/common.hpp" +#include +#include +#include "libnest2d/placers/nfpplacer.hpp" +#include +#include +#include +#include +#include "libnest2d/utils/rotcalipers.hpp" +#include +#include +#include #include "libnest2d_test_utils.hpp" #include "printer_parts.hpp" diff --git a/tests/libnest2d/test_nfp.cpp b/tests/libnest2d/test_nfp.cpp index 1b5c5d3a1c..fdb43f7bfa 100644 --- a/tests/libnest2d/test_nfp.cpp +++ b/tests/libnest2d/test_nfp.cpp @@ -1,5 +1,17 @@ +#include #include +#include "libnest2d/libnest2d.hpp" +#include +#include "libnest2d/geometry_traits.hpp" +#include "libnest2d/backends/libslic3r/geometries.hpp" +#include "libnest2d/geometry_traits_nfp.hpp" +#include "libnest2d/utils/boost_alg.hpp" +#include "libnest2d/placers/nfpplacer.hpp" +#include +#include +#include +#include #include "libnest2d_test_utils.hpp" using namespace libnest2d; diff --git a/tests/libnest2d/test_nfp_placer.cpp b/tests/libnest2d/test_nfp_placer.cpp index 4446333f5d..02b711ec9d 100644 --- a/tests/libnest2d/test_nfp_placer.cpp +++ b/tests/libnest2d/test_nfp_placer.cpp @@ -1,5 +1,13 @@ #include +#include "libnest2d/libnest2d.hpp" +#include +#include +#include "libnest2d/geometry_traits.hpp" +#include "libnest2d/common.hpp" +#include +#include +#include #include "libnest2d_test_utils.hpp" using namespace libnest2d; diff --git a/tests/libslic3r/libslic3r_tests.cpp b/tests/libslic3r/libslic3r_tests.cpp index a46b69d124..178a869648 100644 --- a/tests/libslic3r/libslic3r_tests.cpp +++ b/tests/libslic3r/libslic3r_tests.cpp @@ -1,5 +1,10 @@ #include +#include +#include "libslic3r/libslic3r.h" +#include +#include +#include #include "libslic3r/Utils.hpp" #define NANOSVG_IMPLEMENTATION #include "nanosvg/nanosvg.h" diff --git a/tests/libslic3r/test_3mf.cpp b/tests/libslic3r/test_3mf.cpp index 846caf5432..a8fd1eb888 100644 --- a/tests/libslic3r/test_3mf.cpp +++ b/tests/libslic3r/test_3mf.cpp @@ -1,4 +1,9 @@ +#include +#include +#include +#include +#include #include "libslic3r/Model.hpp" #include "libslic3r/Format/3mf.hpp" #include "libslic3r/Format/bbs_3mf.hpp" @@ -14,6 +19,15 @@ #include "test_utils.hpp" +#include "libslic3r/Config.hpp" +#include "libslic3r/Geometry.hpp" +#include +#include +#include "libslic3r/TriangleMesh.hpp" +#include "libslic3r/TriangleSelector.hpp" +#include +#include +#include #include #include @@ -25,8 +39,12 @@ #include #include #include +#include +#include #include // for std::enable_if_t #include // for typeid +#include +#include namespace Catch { template diff --git a/tests/libslic3r/test_aabbindirect.cpp b/tests/libslic3r/test_aabbindirect.cpp index 122e4756f1..e97b8d193b 100644 --- a/tests/libslic3r/test_aabbindirect.cpp +++ b/tests/libslic3r/test_aabbindirect.cpp @@ -1,8 +1,13 @@ #include +#include +#include #include "test_utils.hpp" +#include +#include #include #include +#include using namespace Slic3r; diff --git a/tests/libslic3r/test_appconfig.cpp b/tests/libslic3r/test_appconfig.cpp index d3811c9827..3eb35d7490 100644 --- a/tests/libslic3r/test_appconfig.cpp +++ b/tests/libslic3r/test_appconfig.cpp @@ -1,5 +1,6 @@ #include +#include #include "libslic3r/AppConfig.hpp" using namespace Slic3r; diff --git a/tests/libslic3r/test_arachne_walls.cpp b/tests/libslic3r/test_arachne_walls.cpp index 2b6580ed11..be4df5d3b1 100644 --- a/tests/libslic3r/test_arachne_walls.cpp +++ b/tests/libslic3r/test_arachne_walls.cpp @@ -17,6 +17,9 @@ #include +#include +#include +#include #include "libslic3r/Arachne/WallToolPaths.hpp" #include "libslic3r/Arachne/SkeletalTrapezoidation.hpp" #include "libslic3r/Arachne/utils/ExtrusionLine.hpp" @@ -31,6 +34,14 @@ #include #include +#include +#include "libslic3r/libslic3r.h" +#include +#include +#include +#include "libslic3r/Arachne/utils/ExtrusionJunction.hpp" +#include "libslic3r/PerimeterGenerator.hpp" +#include "libslic3r/PrintConfig.hpp" using namespace Slic3r; using namespace Slic3r::Arachne; diff --git a/tests/libslic3r/test_arrange.cpp b/tests/libslic3r/test_arrange.cpp index 3906cba8ba..2f8df3166a 100644 --- a/tests/libslic3r/test_arrange.cpp +++ b/tests/libslic3r/test_arrange.cpp @@ -1,5 +1,19 @@ +#include #include +#include "libslic3r/libslic3r.h" +#include "libslic3r/Polygon.hpp" +#include "libslic3r/Point.hpp" +#include +#include "libslic3r/Config.hpp" +#include +#include +#include +#include +#include +#include +#include +#include #include "libslic3r/Arrange.hpp" #include "libslic3r/BoundingBox.hpp" #include "libslic3r/ClipperUtils.hpp" diff --git a/tests/libslic3r/test_bambu_networking.cpp b/tests/libslic3r/test_bambu_networking.cpp index 5cf55030f8..ec16e96c19 100644 --- a/tests/libslic3r/test_bambu_networking.cpp +++ b/tests/libslic3r/test_bambu_networking.cpp @@ -1,5 +1,6 @@ #include +#include #include "slic3r/Utils/bambu_networking.hpp" using namespace Slic3r; diff --git a/tests/libslic3r/test_buildvolume.cpp b/tests/libslic3r/test_buildvolume.cpp index b2e8040d68..3438f7517f 100644 --- a/tests/libslic3r/test_buildvolume.cpp +++ b/tests/libslic3r/test_buildvolume.cpp @@ -1,5 +1,10 @@ #include +#include +#include "libslic3r/Point.hpp" +#include +#include +#include #include "libslic3r/BuildVolume.hpp" using namespace Slic3r; diff --git a/tests/libslic3r/test_caddocument.cpp b/tests/libslic3r/test_caddocument.cpp index d69ada09b6..afb4acf409 100644 --- a/tests/libslic3r/test_caddocument.cpp +++ b/tests/libslic3r/test_caddocument.cpp @@ -1,4 +1,23 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include #include // mainline OrcaSlicer ships Catch2 v3 (v2 was catch2/catch.hpp) +#include +#include +#include +#include +#include +#include +#include +#include "libslic3r/TriangleMesh.hpp" +#include +#include // Substring assertions, spelled so this file compiles UNCHANGED on both forks. // Catch2 v2 (Snapmaker) spells it Matchers::Contains; v3 (orca_cad / mainline) spells it diff --git a/tests/libslic3r/test_calib.cpp b/tests/libslic3r/test_calib.cpp index 0092a7dedd..81fa59ff93 100644 --- a/tests/libslic3r/test_calib.cpp +++ b/tests/libslic3r/test_calib.cpp @@ -1,9 +1,13 @@ #include #include +#include "libslic3r/CustomGCode.hpp" #include #include +#include +#include +#include #include "libslic3r/calib.hpp" #include "libslic3r/Model.hpp" #include "libslic3r/TriangleMesh.hpp" diff --git a/tests/libslic3r/test_clipper_offset.cpp b/tests/libslic3r/test_clipper_offset.cpp index ecf14a60c8..7a816a2174 100644 --- a/tests/libslic3r/test_clipper_offset.cpp +++ b/tests/libslic3r/test_clipper_offset.cpp @@ -1,8 +1,15 @@ #include +#include #include #include +#include "libslic3r/libslic3r.h" +#include +#include "libslic3r/Polygon.hpp" +#include +#include +#include #include "libslic3r/ClipperUtils.hpp" #include "libslic3r/ExPolygon.hpp" #include "libslic3r/SVG.hpp" diff --git a/tests/libslic3r/test_clipper_utils.cpp b/tests/libslic3r/test_clipper_utils.cpp index ddec07089b..3b32bba7cf 100644 --- a/tests/libslic3r/test_clipper_utils.cpp +++ b/tests/libslic3r/test_clipper_utils.cpp @@ -1,9 +1,17 @@ +#include #include +#include "libslic3r/Polygon.hpp" +#include "libslic3r/Polyline.hpp" +#include +#include "libslic3r/libslic3r.h" #include #include #include +#include +#include +#include #include "libslic3r/ClipperUtils.hpp" #include "libslic3r/ExPolygon.hpp" #include "libslic3r/SVG.hpp" diff --git a/tests/libslic3r/test_config.cpp b/tests/libslic3r/test_config.cpp index d7803f300b..bb51735bfe 100644 --- a/tests/libslic3r/test_config.cpp +++ b/tests/libslic3r/test_config.cpp @@ -1,5 +1,10 @@ #include +#include +#include +#include +#include +#include #include "libslic3r/PrintConfig.hpp" #include "libslic3r/PrintConfigConstants.hpp" #include "libslic3r/LocalesUtils.hpp" @@ -13,9 +18,16 @@ #include #include +#include "libslic3r/Config.hpp" +#include +#include +#include #include +#include #include +#include +#include using namespace Slic3r; diff --git a/tests/libslic3r/test_config_variant_expansion.cpp b/tests/libslic3r/test_config_variant_expansion.cpp index f30ad985e3..240a6e25fa 100644 --- a/tests/libslic3r/test_config_variant_expansion.cpp +++ b/tests/libslic3r/test_config_variant_expansion.cpp @@ -1,5 +1,15 @@ #include +#include "libslic3r/Config.hpp" +#include +#include +#include +#include +#include +#include +#include +#include +#include #include "libslic3r/PrintConfig.hpp" #include "libslic3r/Preset.hpp" diff --git a/tests/libslic3r/test_drc.cpp b/tests/libslic3r/test_drc.cpp index 917fd5c714..06a329e4e3 100644 --- a/tests/libslic3r/test_drc.cpp +++ b/tests/libslic3r/test_drc.cpp @@ -1,12 +1,21 @@ #include +#include #include "libslic3r/Format/DRC.hpp" #include "libslic3r/TriangleMesh.hpp" #include +#include +#include +#include +#include #include +#include +#include #include +#include +#include #include "test_utils.hpp" diff --git a/tests/libslic3r/test_elephant_foot_compensation.cpp b/tests/libslic3r/test_elephant_foot_compensation.cpp index ab9700a305..6388dab184 100644 --- a/tests/libslic3r/test_elephant_foot_compensation.cpp +++ b/tests/libslic3r/test_elephant_foot_compensation.cpp @@ -2,7 +2,11 @@ #include #include +#include "libslic3r/Point.hpp" +#include +#include "libslic3r/libslic3r.h" +#include #include "libslic3r/ClipperUtils.hpp" #include "libslic3r/ElephantFootCompensation.hpp" #include "libslic3r/ExPolygon.hpp" diff --git a/tests/libslic3r/test_filament_mixer.cpp b/tests/libslic3r/test_filament_mixer.cpp index ade0c910dc..f43a8e7588 100644 --- a/tests/libslic3r/test_filament_mixer.cpp +++ b/tests/libslic3r/test_filament_mixer.cpp @@ -1,5 +1,13 @@ #include +#include +#include +#include "libslic3r/Config.hpp" +#include +#include +#include +#include +#include #include "libslic3r/FilamentMixer.hpp" #include "libslic3r/PrintConfig.hpp" diff --git a/tests/libslic3r/test_fill_corner_smoothing.cpp b/tests/libslic3r/test_fill_corner_smoothing.cpp index a9e752f250..ebad09e9e5 100644 --- a/tests/libslic3r/test_fill_corner_smoothing.cpp +++ b/tests/libslic3r/test_fill_corner_smoothing.cpp @@ -2,8 +2,12 @@ #include #include +#include "libslic3r/Point.hpp" +#include +#include "libslic3r/Polygon.hpp" #include +#include #include "libslic3r/Fill/FillCornerSmoothing.hpp" #include "libslic3r/Polyline.hpp" #include "libslic3r/libslic3r.h" diff --git a/tests/libslic3r/test_fill_plane_path.cpp b/tests/libslic3r/test_fill_plane_path.cpp index 7fc7f4a6b0..e28d74b4fc 100644 --- a/tests/libslic3r/test_fill_plane_path.cpp +++ b/tests/libslic3r/test_fill_plane_path.cpp @@ -2,9 +2,18 @@ #include #include +#include "libslic3r/Point.hpp" +#include "libslic3r/libslic3r.h" +#include "libslic3r/Fill/FillBase.hpp" +#include +#include +#include "libslic3r/Config.hpp" #include #include +#include +#include +#include #include "libslic3r/Fill/FillPlanePath.hpp" #include "libslic3r/PrintConfig.hpp" diff --git a/tests/libslic3r/test_geometry.cpp b/tests/libslic3r/test_geometry.cpp index b4bbe86cc6..6f12b1113a 100644 --- a/tests/libslic3r/test_geometry.cpp +++ b/tests/libslic3r/test_geometry.cpp @@ -1,5 +1,8 @@ +#include #include +#include +#include #include "libslic3r/Point.hpp" #include "libslic3r/BoundingBox.hpp" #include "libslic3r/Polygon.hpp" @@ -17,7 +20,14 @@ #include "../libnest2d/printer_parts.hpp" +#include "libslic3r/libslic3r.h" +#include +#include +#include +#include +#include #include +#include using namespace Slic3r; diff --git a/tests/libslic3r/test_hollowing.cpp b/tests/libslic3r/test_hollowing.cpp index dc39b47373..6e1baef4cc 100644 --- a/tests/libslic3r/test_hollowing.cpp +++ b/tests/libslic3r/test_hollowing.cpp @@ -1,7 +1,10 @@ #include #include #include +#include "libslic3r/TriangleMesh.hpp" +#include "libslic3r/libslic3r.h" +#include #include "libslic3r/SLA/Hollowing.hpp" #include "test_utils.hpp" diff --git a/tests/libslic3r/test_indexed_triangle_set.cpp b/tests/libslic3r/test_indexed_triangle_set.cpp index 43116936d3..c65bf589a8 100644 --- a/tests/libslic3r/test_indexed_triangle_set.cpp +++ b/tests/libslic3r/test_indexed_triangle_set.cpp @@ -1,8 +1,17 @@ +#include +#include +#include #include #include +#include "libslic3r/Point.hpp" +#include "libslic3r/libslic3r.h" +#include #include #include +#include +#include +#include #include "libslic3r/TriangleMesh.hpp" #include "test_utils.hpp" diff --git a/tests/libslic3r/test_instance_lock.cpp b/tests/libslic3r/test_instance_lock.cpp index 207dd77173..5ee14c665f 100644 --- a/tests/libslic3r/test_instance_lock.cpp +++ b/tests/libslic3r/test_instance_lock.cpp @@ -1,3 +1,4 @@ +#include #include #include @@ -6,6 +7,7 @@ #include +#include #include "libslic3r/InstanceLock.hpp" #include "test_utils.hpp" diff --git a/tests/libslic3r/test_lay_on_face.cpp b/tests/libslic3r/test_lay_on_face.cpp index 60226a9aab..76a197efe7 100644 --- a/tests/libslic3r/test_lay_on_face.cpp +++ b/tests/libslic3r/test_lay_on_face.cpp @@ -1,5 +1,15 @@ #include +#include "libslic3r/Point.hpp" +#include "libslic3r/TriangleMesh.hpp" +#include +#include +#include "libslic3r/libslic3r.h" +#include +#include +#include +#include +#include #include "libslic3r/LayOnFace.hpp" #include "libslic3r/Model.hpp" diff --git a/tests/libslic3r/test_locales_utils.cpp b/tests/libslic3r/test_locales_utils.cpp index 6f1528649d..2bb134af6b 100644 --- a/tests/libslic3r/test_locales_utils.cpp +++ b/tests/libslic3r/test_locales_utils.cpp @@ -1,7 +1,9 @@ #include #include +#include +#include #include "libslic3r/LocalesUtils.hpp" using namespace Slic3r; diff --git a/tests/libslic3r/test_marchingsquares.cpp b/tests/libslic3r/test_marchingsquares.cpp index 9a11f49faa..e9d0f8ebc2 100644 --- a/tests/libslic3r/test_marchingsquares.cpp +++ b/tests/libslic3r/test_marchingsquares.cpp @@ -2,6 +2,28 @@ #define NOMINMAX #endif +#include "libslic3r/Point.hpp" +#include +#include "libslic3r/libslic3r.h" +#include +#include "libslic3r/BoundingBox.hpp" +#include "libslic3r/Polygon.hpp" +#include +#include +#include "libslic3r/SLA/RasterBase.hpp" +#include +#include +#include +#include +#include "libslic3r/ExPolygon.hpp" +#include +#include +#include +#include +#include "libslic3r/TriangleMesh.hpp" +#include +#include + #include #include "test_utils.hpp" diff --git a/tests/libslic3r/test_meshboolean.cpp b/tests/libslic3r/test_meshboolean.cpp index b7208349cc..4c0faa1bb0 100644 --- a/tests/libslic3r/test_meshboolean.cpp +++ b/tests/libslic3r/test_meshboolean.cpp @@ -1,4 +1,6 @@ #include +#include +#include #include "test_utils.hpp" #include diff --git a/tests/libslic3r/test_minimum_spanning_tree.cpp b/tests/libslic3r/test_minimum_spanning_tree.cpp index 5f9998171c..b6685b0d1e 100644 --- a/tests/libslic3r/test_minimum_spanning_tree.cpp +++ b/tests/libslic3r/test_minimum_spanning_tree.cpp @@ -1,7 +1,11 @@ #include #include +#include +#include +#include +#include #include "libslic3r/MinimumSpanningTree.hpp" #include "libslic3r/Point.hpp" diff --git a/tests/libslic3r/test_miniz_extension.cpp b/tests/libslic3r/test_miniz_extension.cpp index ff3274a886..3a10a8eb8e 100644 --- a/tests/libslic3r/test_miniz_extension.cpp +++ b/tests/libslic3r/test_miniz_extension.cpp @@ -1,5 +1,12 @@ +#include +#include +#include +#include #include +#include +#include +#include #include "libslic3r/miniz_extension.hpp" #include "test_utils.hpp" @@ -7,8 +14,11 @@ #include #include +#include #include +#include #include +#include #include #include #include diff --git a/tests/libslic3r/test_model.cpp b/tests/libslic3r/test_model.cpp index 3a580e3be2..24d690ac9e 100644 --- a/tests/libslic3r/test_model.cpp +++ b/tests/libslic3r/test_model.cpp @@ -1,5 +1,10 @@ #include +#include "libslic3r/TriangleMesh.hpp" +#include "libslic3r/Polygon.hpp" +#include "libslic3r/BoundingBox.hpp" +#include "libslic3r/Point.hpp" +#include #include "libslic3r/Model.hpp" using namespace Slic3r; diff --git a/tests/libslic3r/test_multimaterial_segmentation.cpp b/tests/libslic3r/test_multimaterial_segmentation.cpp index 271b9d5660..065a143ce1 100644 --- a/tests/libslic3r/test_multimaterial_segmentation.cpp +++ b/tests/libslic3r/test_multimaterial_segmentation.cpp @@ -3,6 +3,12 @@ // MultiMaterialSegmentation.hpp declares boost::polygon traits for ColoredLine, so its // geometry/boost dependencies must be included first. #include +#include +#include +#include +#include +#include +#include #include "libslic3r/Line.hpp" #include "libslic3r/Flow.hpp" #include "libslic3r/MultiMaterialSegmentation.hpp" diff --git a/tests/libslic3r/test_mutable_polygon.cpp b/tests/libslic3r/test_mutable_polygon.cpp index 906dffe50a..a233454427 100644 --- a/tests/libslic3r/test_mutable_polygon.cpp +++ b/tests/libslic3r/test_mutable_polygon.cpp @@ -1,5 +1,9 @@ #include +#include +#include "libslic3r/libslic3r.h" +#include "libslic3r/Polygon.hpp" +#include #include "libslic3r/Point.hpp" #include "libslic3r/MutablePolygon.hpp" diff --git a/tests/libslic3r/test_mutable_priority_queue.cpp b/tests/libslic3r/test_mutable_priority_queue.cpp index db7124df78..67191793da 100644 --- a/tests/libslic3r/test_mutable_priority_queue.cpp +++ b/tests/libslic3r/test_mutable_priority_queue.cpp @@ -1,8 +1,15 @@ +#include #include #include +#include +#include +#include +#include #include +#include +#include #include "libslic3r/MutablePriorityQueue.hpp" // based on https://raw.githubusercontent.com/rollbear/prio_queue/master/self_test.cpp diff --git a/tests/libslic3r/test_nozzle_volume_type.cpp b/tests/libslic3r/test_nozzle_volume_type.cpp index 99ad375f93..289133bb03 100644 --- a/tests/libslic3r/test_nozzle_volume_type.cpp +++ b/tests/libslic3r/test_nozzle_volume_type.cpp @@ -1,5 +1,9 @@ #include +#include +#include "libslic3r/Config.hpp" +#include +#include #include "libslic3r/PrintConfig.hpp" using namespace Slic3r; diff --git a/tests/libslic3r/test_obj.cpp b/tests/libslic3r/test_obj.cpp index 2cbf57ff04..abab016b2a 100644 --- a/tests/libslic3r/test_obj.cpp +++ b/tests/libslic3r/test_obj.cpp @@ -1,9 +1,16 @@ +#include #include +#include +#include +#include #include "libslic3r/TriangleMesh.hpp" #include "libslic3r/Format/OBJ.hpp" #include +#include +#include "libslic3r/Point.hpp" +#include #include "test_utils.hpp" diff --git a/tests/libslic3r/test_optimizers.cpp b/tests/libslic3r/test_optimizers.cpp index 8783ac1428..232481f23c 100644 --- a/tests/libslic3r/test_optimizers.cpp +++ b/tests/libslic3r/test_optimizers.cpp @@ -1,9 +1,13 @@ #include +#include #include "test_utils.hpp" +#include #include #include +#include "libslic3r/Optimize/Optimizer.hpp" +#include "libslic3r/libslic3r.h" void check_opt_result(double score, double ref, double abs_err, double rel_err) { diff --git a/tests/libslic3r/test_ordering_strategies.cpp b/tests/libslic3r/test_ordering_strategies.cpp index ddbca07ae6..f6e0cd94f2 100644 --- a/tests/libslic3r/test_ordering_strategies.cpp +++ b/tests/libslic3r/test_ordering_strategies.cpp @@ -1,4 +1,12 @@ +#include #include +#include +#include +#include +#include "libslic3r/libslic3r.h" +#include +#include +#include #define SLIC3R_TEST_HARNESS diff --git a/tests/libslic3r/test_parallel_resolve.cpp b/tests/libslic3r/test_parallel_resolve.cpp index 76811f1475..4e7e52dca2 100644 --- a/tests/libslic3r/test_parallel_resolve.cpp +++ b/tests/libslic3r/test_parallel_resolve.cpp @@ -1,5 +1,6 @@ #include +#include #include #include #include @@ -9,6 +10,7 @@ #include #include +#include #include "libslic3r/ParallelResolve.hpp" using namespace Slic3r; diff --git a/tests/libslic3r/test_placeholder_parser.cpp b/tests/libslic3r/test_placeholder_parser.cpp index 4a95156c34..0a490a6bdd 100644 --- a/tests/libslic3r/test_placeholder_parser.cpp +++ b/tests/libslic3r/test_placeholder_parser.cpp @@ -1,5 +1,12 @@ #include +#include +#include +#include "libslic3r/Config.hpp" +#include +#include +#include +#include #include "libslic3r/PlaceholderParser.hpp" #include "libslic3r/PrintConfig.hpp" diff --git a/tests/libslic3r/test_polygon.cpp b/tests/libslic3r/test_polygon.cpp index feae4ff50c..08fd21d3c0 100644 --- a/tests/libslic3r/test_polygon.cpp +++ b/tests/libslic3r/test_polygon.cpp @@ -1,5 +1,9 @@ +#include #include +#include +#include "libslic3r/libslic3r.h" +#include #include "libslic3r/Point.hpp" #include "libslic3r/Polygon.hpp" diff --git a/tests/libslic3r/test_precise_seam_3mf.cpp b/tests/libslic3r/test_precise_seam_3mf.cpp index 6449236744..cda140ebce 100644 --- a/tests/libslic3r/test_precise_seam_3mf.cpp +++ b/tests/libslic3r/test_precise_seam_3mf.cpp @@ -1,5 +1,10 @@ #include +#include +#include +#include +#include +#include #include "test_utils.hpp" #include "libslic3r/Model.hpp" #include "libslic3r/PrintConfig.hpp" @@ -12,7 +17,13 @@ #include #include +#include "libslic3r/Config.hpp" +#include "libslic3r/TriangleMesh.hpp" +#include +#include "libslic3r/Geometry.hpp" +#include #include +#include #include using namespace Slic3r; diff --git a/tests/libslic3r/test_preset_bundle_loading.cpp b/tests/libslic3r/test_preset_bundle_loading.cpp index 4741e28f6b..c8cc1784de 100644 --- a/tests/libslic3r/test_preset_bundle_loading.cpp +++ b/tests/libslic3r/test_preset_bundle_loading.cpp @@ -1,9 +1,19 @@ +#include +#include +#include +#include #include #include #include +#include #include +#include +#include +#include +#include +#include #include "libslic3r/PresetBundle.hpp" #include "libslic3r/ParallelResolve.hpp" #include "libslic3r/AppConfig.hpp" @@ -17,6 +27,19 @@ #include #include #include +#include +#include +#include "libslic3r/PrintConfig.hpp" +#include "libslic3r/Preset.hpp" +#include +#include "libslic3r/Config.hpp" +#include +#include "libslic3r/libslic3r.h" +#include "libslic3r/PublishSettings.hpp" +#include +#include "libslic3r/TriangleSelector.hpp" +#include +#include #ifndef _WIN32 #include // geteuid diff --git a/tests/libslic3r/test_preset_diff.cpp b/tests/libslic3r/test_preset_diff.cpp index 22255c049e..036e2aa922 100644 --- a/tests/libslic3r/test_preset_diff.cpp +++ b/tests/libslic3r/test_preset_diff.cpp @@ -1,9 +1,15 @@ #include +#include +#include #include "libslic3r/Preset.hpp" #include "libslic3r/PrintConfig.hpp" #include +#include "libslic3r/Config.hpp" +#include +#include +#include using namespace Slic3r; diff --git a/tests/libslic3r/test_preset_options.cpp b/tests/libslic3r/test_preset_options.cpp index 1763f5fbc7..cf878ca9f8 100644 --- a/tests/libslic3r/test_preset_options.cpp +++ b/tests/libslic3r/test_preset_options.cpp @@ -16,10 +16,14 @@ #include +#include +#include #include "libslic3r/Preset.hpp" #include "libslic3r/PrintConfig.hpp" +#include "libslic3r/Config.hpp" #include +#include using namespace Slic3r; diff --git a/tests/libslic3r/test_preset_setting_id.cpp b/tests/libslic3r/test_preset_setting_id.cpp index 5c06335381..0b5736ad26 100644 --- a/tests/libslic3r/test_preset_setting_id.cpp +++ b/tests/libslic3r/test_preset_setting_id.cpp @@ -1,5 +1,8 @@ #include +#include +#include +#include #include "libslic3r/Preset.hpp" using namespace Slic3r; diff --git a/tests/libslic3r/test_sketchconstraints.cpp b/tests/libslic3r/test_sketchconstraints.cpp index d0c5844b40..2142398e68 100644 --- a/tests/libslic3r/test_sketchconstraints.cpp +++ b/tests/libslic3r/test_sketchconstraints.cpp @@ -1,4 +1,11 @@ #include // mainline OrcaSlicer ships Catch2 v3 (v2 was catch2/catch.hpp) +#include +#include +#include +#include +#include +#include +#include #include "libslic3r/CAD/SketchConstraints.hpp" #include "libslic3r/CAD/SketchEngine.hpp" diff --git a/tests/libslic3r/test_sketchedit.cpp b/tests/libslic3r/test_sketchedit.cpp index 634e743b99..b289b71e69 100644 --- a/tests/libslic3r/test_sketchedit.cpp +++ b/tests/libslic3r/test_sketchedit.cpp @@ -1,9 +1,16 @@ +#include +#include #include // mainline OrcaSlicer ships Catch2 v3 (v2 was catch2/catch.hpp) +#include +#include +#include #include "libslic3r/CAD/SketchEngine.hpp" #include #include #include #include +#include +#include using namespace Slic3r; diff --git a/tests/libslic3r/test_sketchimport.cpp b/tests/libslic3r/test_sketchimport.cpp index 3e3f7c906e..3e6636fd7d 100644 --- a/tests/libslic3r/test_sketchimport.cpp +++ b/tests/libslic3r/test_sketchimport.cpp @@ -1,10 +1,16 @@ +#include #include // mainline OrcaSlicer ships Catch2 v3 (v2 was catch2/catch.hpp) +#include +#include +#include #include "libslic3r/CAD/SketchImport.hpp" #include "libslic3r/Utils.hpp" // resources_dir #include "test_utils.hpp" // ScopedTemporaryFile +#include #include +#include "libslic3r/Point.hpp" #include using namespace Slic3r; diff --git a/tests/libslic3r/test_sketchinference.cpp b/tests/libslic3r/test_sketchinference.cpp index cbdd90628b..6ff9768b8f 100644 --- a/tests/libslic3r/test_sketchinference.cpp +++ b/tests/libslic3r/test_sketchinference.cpp @@ -1,4 +1,9 @@ +#include +#include #include // mainline OrcaSlicer ships Catch2 v3 (v2 was catch2/catch.hpp) +#include "libslic3r/CAD/SketchEngine.hpp" +#include "libslic3r/Point.hpp" +#include using Catch::Approx; // v3 scopes Approx into the Catch namespace; v2 had it at global scope #include "libslic3r/CAD/SketchInference.hpp" diff --git a/tests/libslic3r/test_sketchprofile.cpp b/tests/libslic3r/test_sketchprofile.cpp index 7f455eb936..6c33599847 100644 --- a/tests/libslic3r/test_sketchprofile.cpp +++ b/tests/libslic3r/test_sketchprofile.cpp @@ -9,11 +9,19 @@ // So these cases assert the loop, not the coordinates. That is the invariant every sketch // operation has to preserve and the only one that predicts whether the GUI can build a solid // out of the result. +#include #include // mainline OrcaSlicer ships Catch2 v3 (v2 was catch2/catch.hpp) +#include +#include +#include #include "libslic3r/CAD/SketchEngine.hpp" #include #include #include +#include "libslic3r/Point.hpp" +#include +#include +#include using namespace Slic3r; using Catch::Matchers::WithinAbs; diff --git a/tests/libslic3r/test_slvs_constraints.cpp b/tests/libslic3r/test_slvs_constraints.cpp index 6dfac07348..4f5c27ba7d 100644 --- a/tests/libslic3r/test_slvs_constraints.cpp +++ b/tests/libslic3r/test_slvs_constraints.cpp @@ -1,4 +1,9 @@ +#include +#include #include // mainline OrcaSlicer ships Catch2 v3 (v2 was catch2/catch.hpp) +#include "libslic3r/Point.hpp" +#include +#include using Catch::Approx; // v3 scopes Approx into the Catch namespace; v2 had it at global scope #include "libslic3r/CAD/SketchSolver.hpp" diff --git a/tests/libslic3r/test_step.cpp b/tests/libslic3r/test_step.cpp index a2aa7218f1..3635c977dd 100644 --- a/tests/libslic3r/test_step.cpp +++ b/tests/libslic3r/test_step.cpp @@ -1,7 +1,11 @@ #include #include +#include +#include +#include +#include #include "libslic3r/Model.hpp" #include "libslic3r/Format/STEP.hpp" #include "test_utils.hpp" diff --git a/tests/libslic3r/test_stl.cpp b/tests/libslic3r/test_stl.cpp index a8addeca16..0223392c3f 100644 --- a/tests/libslic3r/test_stl.cpp +++ b/tests/libslic3r/test_stl.cpp @@ -1,5 +1,8 @@ #include +#include +#include "libslic3r/Point.hpp" +#include #include "libslic3r/Model.hpp" #include "libslic3r/Format/STL.hpp" diff --git a/tests/libslic3r/test_texture_displacement.cpp b/tests/libslic3r/test_texture_displacement.cpp index 04713d3fd9..1d9a89481b 100644 --- a/tests/libslic3r/test_texture_displacement.cpp +++ b/tests/libslic3r/test_texture_displacement.cpp @@ -1,6 +1,29 @@ #ifndef NOMINMAX #define NOMINMAX #endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "libslic3r/Point.hpp" +#include +#include +#include +#include +#include "libslic3r/TextureBake/TextureBakeDisplace.hpp" +#include "libslic3r/TextureBake/TextureBakeIndex.hpp" +#include +#include +#include "libslic3r/libslic3r.h" +#include #include #include diff --git a/tests/libslic3r/test_timeutils.cpp b/tests/libslic3r/test_timeutils.cpp index 221dd07d81..213b5e6788 100644 --- a/tests/libslic3r/test_timeutils.cpp +++ b/tests/libslic3r/test_timeutils.cpp @@ -1,10 +1,13 @@ #include +#include #include "libslic3r/Time.hpp" +#include #include #include #include +#include using namespace Slic3r; diff --git a/tests/libslic3r/test_toolordering_nozzle_group.cpp b/tests/libslic3r/test_toolordering_nozzle_group.cpp index 837b66287a..7c41b2315e 100644 --- a/tests/libslic3r/test_toolordering_nozzle_group.cpp +++ b/tests/libslic3r/test_toolordering_nozzle_group.cpp @@ -1,5 +1,9 @@ +#include #include +#include +#include +#include #include "libslic3r/FilamentGroupUtils.hpp" #include "libslic3r/MultiNozzleUtils.hpp" #include "libslic3r/PrintConfig.hpp" @@ -11,7 +15,11 @@ #include "test_utils.hpp" #include +#include "libslic3r/Config.hpp" +#include "libslic3r/GCode/ToolOrderUtils.hpp" +#include "libslic3r/PrintBase.hpp" #include +#include #include #include #include diff --git a/tests/libslic3r/test_triangle_selector.cpp b/tests/libslic3r/test_triangle_selector.cpp index c207ee66ad..9886308bdd 100644 --- a/tests/libslic3r/test_triangle_selector.cpp +++ b/tests/libslic3r/test_triangle_selector.cpp @@ -1,9 +1,16 @@ #include +#include +#include +#include #include "libslic3r/TriangleSelector.hpp" #include "libslic3r/TriangleMesh.hpp" #include +#include "libslic3r/libslic3r.h" +#include +#include +#include using namespace Slic3r; diff --git a/tests/libslic3r/test_utils.cpp b/tests/libslic3r/test_utils.cpp index ad5110aa5e..35094f056a 100644 --- a/tests/libslic3r/test_utils.cpp +++ b/tests/libslic3r/test_utils.cpp @@ -1,5 +1,14 @@ +#include +#include +#include +#include #include +#include +#include +#include +#include +#include #include "libslic3r/Utils.hpp" #include "test_utils.hpp" @@ -8,10 +17,14 @@ #include #include +#include #include +#include +#include #include #include #include +#include #ifndef _WIN32 #include // getuid diff --git a/tests/libslic3r/test_vendor_cache.cpp b/tests/libslic3r/test_vendor_cache.cpp index be8b97943c..b78ce77e1f 100644 --- a/tests/libslic3r/test_vendor_cache.cpp +++ b/tests/libslic3r/test_vendor_cache.cpp @@ -1,3 +1,5 @@ +#include +#include #include #include @@ -5,19 +7,32 @@ #include #include #include +#include #include #include #include +#include +#include +#include "libslic3r/Semver.hpp" +#include "libslic3r/Config.hpp" #include #include #include #include #include +#include +#include #include #include #include +#include +#include +#include +#include +#include +#include #include "libslic3r/PresetBundle.hpp" #include "libslic3r/PresetCacheFormat.hpp" #include "libslic3r/Preset.hpp" diff --git a/tests/libslic3r/test_voronoi.cpp b/tests/libslic3r/test_voronoi.cpp index b86f448c02..b512fe38fe 100644 --- a/tests/libslic3r/test_voronoi.cpp +++ b/tests/libslic3r/test_voronoi.cpp @@ -1,6 +1,14 @@ +#include #include +#include #include "test_utils.hpp" +#include "libslic3r/Geometry/Voronoi.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/Line.hpp" +#include +#include +#include "libslic3r/BoundingBox.hpp" #include #include #include @@ -9,8 +17,11 @@ #include #include +#include "libslic3r/libslic3r.h" +#include #include #include +#include // #define VORONOI_DEBUG_OUT diff --git a/tests/libslic3r/test_wipe_path.cpp b/tests/libslic3r/test_wipe_path.cpp index b637ad2b87..731a8626d4 100644 --- a/tests/libslic3r/test_wipe_path.cpp +++ b/tests/libslic3r/test_wipe_path.cpp @@ -1,5 +1,10 @@ #include +#include +#include +#include +#include +#include #include "libslic3r/GCode/WipePathHelpers.hpp" #include "libslic3r/AABBTreeLines.hpp" #include "libslic3r/Polyline.hpp" @@ -9,7 +14,12 @@ #include #include +#include "libslic3r/ExtrusionEntity.hpp" +#include #include +#include +#include +#include using namespace Slic3r; using Slic3r::AABBTreeLines::LinesDistancer; diff --git a/tests/libslic3r/test_wipe_tower.cpp b/tests/libslic3r/test_wipe_tower.cpp index 6f6daa74b8..9c64ae1b53 100644 --- a/tests/libslic3r/test_wipe_tower.cpp +++ b/tests/libslic3r/test_wipe_tower.cpp @@ -1,7 +1,17 @@ #include #include +#include +#include "libslic3r/Polygon.hpp" +#include "libslic3r/Point.hpp" +#include +#include +#include "libslic3r/libslic3r.h" +#include +#include +#include +#include #include "libslic3r/BoundingBox.hpp" #include "libslic3r/ClipperUtils.hpp" #include "libslic3r/GCode/WipeTower.hpp" diff --git a/tests/libslic3r/test_wipe_tower_estimate.cpp b/tests/libslic3r/test_wipe_tower_estimate.cpp index 22b9b2d6c5..6f0b268801 100644 --- a/tests/libslic3r/test_wipe_tower_estimate.cpp +++ b/tests/libslic3r/test_wipe_tower_estimate.cpp @@ -1,5 +1,10 @@ +#include #include +#include +#include +#include +#include #include "libslic3r/BoundingBox.hpp" #include "libslic3r/ClipperUtils.hpp" #include "libslic3r/GCode/WipeTower.hpp" @@ -8,8 +13,14 @@ #include "libslic3r/PrintConfig.hpp" #include +#include "libslic3r/Config.hpp" +#include +#include "libslic3r/Polygon.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/libslic3r.h" #include #include +#include using namespace Slic3r; using Catch::Matchers::WithinAbs; diff --git a/tests/sla_print/sla_print_tests.cpp b/tests/sla_print/sla_print_tests.cpp index 308925a163..e095c0543a 100644 --- a/tests/sla_print/sla_print_tests.cpp +++ b/tests/sla_print/sla_print_tests.cpp @@ -1,14 +1,34 @@ +#include "libslic3r/TriangleMesh.hpp" +#include "libslic3r/SLA/IndexedMesh.hpp" +#include "libslic3r/SLA/SupportTree.hpp" +#include "libslic3r/SLA/SupportPointGenerator.hpp" +#include "libslic3r/MTUtils.hpp" +#include "libslic3r/ExPolygon.hpp" +#include "libslic3r/SLA/SupportPoint.hpp" +#include "libslic3r/Point.hpp" +#include +#include "libslic3r/SLA/Pad.hpp" +#include "libslic3r/SLA/RasterBase.hpp" +#include "libslic3r/SLA/AGGRaster.hpp" +#include +#include "libslic3r/SLA/SupportTreeBuilder.hpp" +#include "libslic3r/Execution/Execution.hpp" +#include "libslic3r/Execution/ExecutionTBB.hpp" #include #include #include #include #include +#include +#include #include "sla_test_utils.hpp" +#include "test_utils.hpp" #include #include #include +#include namespace { diff --git a/tests/sla_print/sla_raycast_tests.cpp b/tests/sla_print/sla_raycast_tests.cpp index 8a520a241f..e050e35845 100644 --- a/tests/sla_print/sla_raycast_tests.cpp +++ b/tests/sla_print/sla_raycast_tests.cpp @@ -1,8 +1,15 @@ +#include #include +#include +#include #include "test_utils.hpp" +#include "libslic3r/Point.hpp" +#include +#include #include #include +#include #include "sla_test_utils.hpp" diff --git a/tests/sla_print/sla_supptgen_tests.cpp b/tests/sla_print/sla_supptgen_tests.cpp index 32f049d78e..091bfa2d66 100644 --- a/tests/sla_print/sla_supptgen_tests.cpp +++ b/tests/sla_print/sla_supptgen_tests.cpp @@ -1,8 +1,21 @@ +#include #include +#include #include "test_utils.hpp" +#include +#include #include #include +#include "libslic3r/TriangleMesh.hpp" +#include "libslic3r/libslic3r.h" +#include "libslic3r/SLA/SupportPoint.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/SLA/SpatIndex.hpp" +#include +#include "libslic3r/SLA/SupportPointGenerator.hpp" +#include "libslic3r/Line.hpp" +#include "libslic3r/SLA/Hollowing.hpp" #include "sla_test_utils.hpp" diff --git a/tests/sla_print/sla_test_utils.cpp b/tests/sla_print/sla_test_utils.cpp index 8951bb3853..2a769692c8 100644 --- a/tests/sla_print/sla_test_utils.cpp +++ b/tests/sla_print/sla_test_utils.cpp @@ -1,8 +1,39 @@ #include "sla_test_utils.hpp" +#include +#include +#include #include "libslic3r/TriangleMeshSlicer.hpp" #include "libslic3r/SLA/AGGRaster.hpp" +#include "test_utils.hpp" +#include +#include +#include +#include #include +#include +#include "libslic3r/SLA/SupportTree.hpp" +#include "libslic3r/SLA/Hollowing.hpp" +#include +#include "libslic3r/ExPolygon.hpp" +#include "libslic3r/Polygon.hpp" +#include "libslic3r/ClipperUtils.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/libslic3r.h" +#include +#include "libslic3r/SVG.hpp" +#include "libslic3r/TriangleMesh.hpp" +#include "libslic3r/MTUtils.hpp" +#include "libslic3r/SLA/IndexedMesh.hpp" +#include "libslic3r/SLA/SupportPointGenerator.hpp" +#include "libslic3r/SLA/SupportPoint.hpp" +#include "libslic3r/SLA/SupportTreeBuildsteps.hpp" +#include +#include "libslic3r/SLA/SupportTreeBuilder.hpp" +#include "libslic3r/SLA/Pad.hpp" +#include "libslic3r/SLA/ConcaveHull.hpp" +#include "libslic3r/SLA/RasterBase.hpp" +#include "libslic3r/BoundingBox.hpp" void test_support_model_collision(const std::string &obj_filename, const sla::SupportTreeConfig &input_supportcfg, diff --git a/tests/sla_print/sla_test_utils.hpp b/tests/sla_print/sla_test_utils.hpp index 1d27030c9d..03d4bfd3c9 100644 --- a/tests/sla_print/sla_test_utils.hpp +++ b/tests/sla_print/sla_test_utils.hpp @@ -2,11 +2,26 @@ #define SLA_TEST_UTILS_HPP #include +#include #include "test_utils.hpp" // Debug +#include +#include +#include +#include #include +#include +#include "libslic3r/SLA/SupportTree.hpp" +#include "libslic3r/SLA/Hollowing.hpp" +#include +#include +#include +#include "libslic3r/SLA/RasterBase.hpp" +#include "libslic3r/SLA/SupportPoint.hpp" #include +#include +#include #include "libslic3r/libslic3r.h" #include "libslic3r/Format/OBJ.hpp" diff --git a/tests/slic3rutils/plugin_test_utils.hpp b/tests/slic3rutils/plugin_test_utils.hpp index cbdcf1ff95..133a5aac9e 100644 --- a/tests/slic3rutils/plugin_test_utils.hpp +++ b/tests/slic3rutils/plugin_test_utils.hpp @@ -1,5 +1,6 @@ #pragma once +#include #include #include diff --git a/tests/slic3rutils/python_test_support.hpp b/tests/slic3rutils/python_test_support.hpp index 29747a88c4..e9b0aaac8d 100644 --- a/tests/slic3rutils/python_test_support.hpp +++ b/tests/slic3rutils/python_test_support.hpp @@ -4,7 +4,9 @@ // interpreter (test_plugin_host_api.cpp, test_slicing_pipeline_bindings.cpp, ...). #include #include +#include #include +#include #include #include #include diff --git a/tests/slic3rutils/slic3rutils_tests_main.cpp b/tests/slic3rutils/slic3rutils_tests_main.cpp index 176e34a5df..f8d2b4fac5 100644 --- a/tests/slic3rutils/slic3rutils_tests_main.cpp +++ b/tests/slic3rutils/slic3rutils_tests_main.cpp @@ -1,5 +1,6 @@ #include +#include #include "slic3r/Utils/Http.hpp" TEST_CASE("Check SSL certificates paths", "[Http][NotWorking]") { diff --git a/tests/slic3rutils/test_action_source.cpp b/tests/slic3rutils/test_action_source.cpp index 8dc4404419..315721ca9b 100644 --- a/tests/slic3rutils/test_action_source.cpp +++ b/tests/slic3rutils/test_action_source.cpp @@ -1,11 +1,15 @@ +#include +#include #include +#include #include "slic3r/GUI/ActionRegistry.hpp" #include "slic3r/GUI/NativeCommands.hpp" #include "slic3r/GUI/SettingsIndex.hpp" #include +#include "libslic3r/Config.hpp" #include #include #include diff --git a/tests/slic3rutils/test_bambu_filament_ids.cpp b/tests/slic3rutils/test_bambu_filament_ids.cpp index 5f6215d7ca..7d9e0df1f1 100644 --- a/tests/slic3rutils/test_bambu_filament_ids.cpp +++ b/tests/slic3rutils/test_bambu_filament_ids.cpp @@ -2,7 +2,9 @@ #include #include #include +#include +#include #include "libslic3r/Utils.hpp" #include "slic3r/Utils/BBLPrinterAgent.hpp" #include "slic3r/Utils/OrcaPrinterAgent.hpp" diff --git a/tests/slic3rutils/test_creality_cfs_match.cpp b/tests/slic3rutils/test_creality_cfs_match.cpp index 06606684b7..6b8faf4b79 100644 --- a/tests/slic3rutils/test_creality_cfs_match.cpp +++ b/tests/slic3rutils/test_creality_cfs_match.cpp @@ -1,4 +1,6 @@ +#include #include +#include #include "libslic3r/Preset.hpp" #include "libslic3r/PresetBundle.hpp" diff --git a/tests/slic3rutils/test_dev_mapping.cpp b/tests/slic3rutils/test_dev_mapping.cpp index 658117d2e4..4e32bcc20d 100644 --- a/tests/slic3rutils/test_dev_mapping.cpp +++ b/tests/slic3rutils/test_dev_mapping.cpp @@ -13,6 +13,12 @@ #include #endif +#include +#include "slic3r/GUI/DeviceCore/DevDefs.h" +#include "libslic3r/ProjectTask.hpp" +#include +#include + #include #include diff --git a/tests/slic3rutils/test_device_manager_integration.cpp b/tests/slic3rutils/test_device_manager_integration.cpp index 2b042d4f8e..7e58dc7696 100644 --- a/tests/slic3rutils/test_device_manager_integration.cpp +++ b/tests/slic3rutils/test_device_manager_integration.cpp @@ -1,8 +1,11 @@ +#include #include #include #include #include +#include "slic3r/Utils/IPrinterAgent.hpp" +#include "slic3r/Utils/CloudProvider.hpp" #include #include #include diff --git a/tests/slic3rutils/test_device_progress.cpp b/tests/slic3rutils/test_device_progress.cpp index 96dead46f0..3d42b012a2 100644 --- a/tests/slic3rutils/test_device_progress.cpp +++ b/tests/slic3rutils/test_device_progress.cpp @@ -12,6 +12,9 @@ #include #endif +#include +#include "libslic3r/ProjectTask.hpp" + #include #include diff --git a/tests/slic3rutils/test_filament_bitmap_utils.cpp b/tests/slic3rutils/test_filament_bitmap_utils.cpp index 997a119521..df5bba0567 100644 --- a/tests/slic3rutils/test_filament_bitmap_utils.cpp +++ b/tests/slic3rutils/test_filament_bitmap_utils.cpp @@ -11,6 +11,12 @@ #include #endif +#include +#include "libslic3r/Config.hpp" +#include +#include +#include + #include #include diff --git a/tests/slic3rutils/test_file_url.cpp b/tests/slic3rutils/test_file_url.cpp index 484067b57e..f22b21612a 100644 --- a/tests/slic3rutils/test_file_url.cpp +++ b/tests/slic3rutils/test_file_url.cpp @@ -1,10 +1,13 @@ #include #include +#include #include "slic3r/GUI/GUI.hpp" #include +#include +#include #include using namespace Slic3r::GUI; diff --git a/tests/slic3rutils/test_lazy.cpp b/tests/slic3rutils/test_lazy.cpp index c04a27e9d1..156c478791 100644 --- a/tests/slic3rutils/test_lazy.cpp +++ b/tests/slic3rutils/test_lazy.cpp @@ -2,9 +2,12 @@ #include #include +#include "slic3r/GUI/StagedBuild.hpp" #include +#include #include +#include #include "slic3r/GUI/Lazy.hpp" using Slic3r::GUI::Lazy; diff --git a/tests/slic3rutils/test_network_versions.cpp b/tests/slic3rutils/test_network_versions.cpp index 349082a965..bfddcb5423 100644 --- a/tests/slic3rutils/test_network_versions.cpp +++ b/tests/slic3rutils/test_network_versions.cpp @@ -1,8 +1,13 @@ +#include #include #include #include +#include +#include "libslic3r/AppConfig.hpp" +#include +#include #include "libslic3r/Utils.hpp" #include "slic3r/Utils/bambu_networking.hpp" diff --git a/tests/slic3rutils/test_orca_cloud_agent.cpp b/tests/slic3rutils/test_orca_cloud_agent.cpp index 5f325751cb..8657310f27 100644 --- a/tests/slic3rutils/test_orca_cloud_agent.cpp +++ b/tests/slic3rutils/test_orca_cloud_agent.cpp @@ -1,3 +1,5 @@ +#include +#include #include #include @@ -6,6 +8,7 @@ #include #include +#include #include "slic3r/Utils/OrcaCloudServiceAgent.hpp" #include "test_utils.hpp" diff --git a/tests/slic3rutils/test_plugin_audit.cpp b/tests/slic3rutils/test_plugin_audit.cpp index 71ce692671..ca8c46fabd 100644 --- a/tests/slic3rutils/test_plugin_audit.cpp +++ b/tests/slic3rutils/test_plugin_audit.cpp @@ -1,3 +1,5 @@ +#include +#include #include #include @@ -5,6 +7,8 @@ #include #include // secret_constants::USER_SECRET_FILENAME +#include +#include "libslic3r_version.h" #include "plugin_test_utils.hpp" #include diff --git a/tests/slic3rutils/test_plugin_capabilities_in_use.cpp b/tests/slic3rutils/test_plugin_capabilities_in_use.cpp index 16ba6e91ac..e33c9980dd 100644 --- a/tests/slic3rutils/test_plugin_capabilities_in_use.cpp +++ b/tests/slic3rutils/test_plugin_capabilities_in_use.cpp @@ -1,5 +1,7 @@ +#include #include +#include "libslic3r/Config.hpp" #include #include #include diff --git a/tests/slic3rutils/test_plugin_capability_config.cpp b/tests/slic3rutils/test_plugin_capability_config.cpp index 39ecd1002d..34c380bba9 100644 --- a/tests/slic3rutils/test_plugin_capability_config.cpp +++ b/tests/slic3rutils/test_plugin_capability_config.cpp @@ -1,5 +1,6 @@ #include +#include #include #include #include @@ -7,7 +8,11 @@ #include #include +#include #include "plugin_test_utils.hpp" +#include +#include +#include #include #include diff --git a/tests/slic3rutils/test_plugin_cloud_metadata.cpp b/tests/slic3rutils/test_plugin_cloud_metadata.cpp index 241ef3ed90..09ac877eca 100644 --- a/tests/slic3rutils/test_plugin_cloud_metadata.cpp +++ b/tests/slic3rutils/test_plugin_cloud_metadata.cpp @@ -1,5 +1,8 @@ +#include +#include #include +#include #include #include #include @@ -8,6 +11,8 @@ #include #include +#include +#include #include "plugin_test_utils.hpp" #include diff --git a/tests/slic3rutils/test_plugin_config.cpp b/tests/slic3rutils/test_plugin_config.cpp index 99de5e53db..ac7bae36be 100644 --- a/tests/slic3rutils/test_plugin_config.cpp +++ b/tests/slic3rutils/test_plugin_config.cpp @@ -1,15 +1,20 @@ +#include +#include #include +#include #include #include #include +#include #include "plugin_test_utils.hpp" #include #include #include +#include "slic3r/plugin/PythonPluginInterface.hpp" #include using namespace Slic3r; diff --git a/tests/slic3rutils/test_plugin_host_api.cpp b/tests/slic3rutils/test_plugin_host_api.cpp index 0283bb5744..7919b273db 100644 --- a/tests/slic3rutils/test_plugin_host_api.cpp +++ b/tests/slic3rutils/test_plugin_host_api.cpp @@ -1,5 +1,6 @@ #include +#include #include #include #include @@ -8,7 +9,13 @@ #include #include +#include +#include +#include +#include #include "plugin_test_utils.hpp" +#include +#include #include "python_test_support.hpp" #include @@ -16,6 +23,7 @@ #include +#include #include namespace py = pybind11; diff --git a/tests/slic3rutils/test_plugin_install.cpp b/tests/slic3rutils/test_plugin_install.cpp index ae16703fa6..539bd917e0 100644 --- a/tests/slic3rutils/test_plugin_install.cpp +++ b/tests/slic3rutils/test_plugin_install.cpp @@ -1,10 +1,16 @@ +#include +#include #include +#include #include #include #include #include +#include +#include +#include #include "plugin_test_utils.hpp" #include diff --git a/tests/slic3rutils/test_plugin_lifecycle.cpp b/tests/slic3rutils/test_plugin_lifecycle.cpp index d90a166835..0c0399e2d3 100644 --- a/tests/slic3rutils/test_plugin_lifecycle.cpp +++ b/tests/slic3rutils/test_plugin_lifecycle.cpp @@ -1,13 +1,19 @@ +#include +#include #include +#include #include #include +#include #include #include #include #include #include +#include +#include #include "plugin_test_utils.hpp" #include @@ -17,8 +23,10 @@ #include #include #include +#include "slic3r/plugin/PythonPluginInterface.hpp" #include #include +#include #include using namespace Slic3r; diff --git a/tests/slic3rutils/test_plugin_printer_agent.cpp b/tests/slic3rutils/test_plugin_printer_agent.cpp index c1bba8a88e..50570f8712 100644 --- a/tests/slic3rutils/test_plugin_printer_agent.cpp +++ b/tests/slic3rutils/test_plugin_printer_agent.cpp @@ -1,5 +1,6 @@ #include +#include "slic3r/Utils/bambu_networking.hpp" #include #include #include @@ -12,7 +13,11 @@ #include #include +#include #include "plugin_test_utils.hpp" +#include +#include +#include namespace py = pybind11; using namespace Slic3r; diff --git a/tests/slic3rutils/test_plugin_sort.cpp b/tests/slic3rutils/test_plugin_sort.cpp index 58db799dd8..8af2ce3b5b 100644 --- a/tests/slic3rutils/test_plugin_sort.cpp +++ b/tests/slic3rutils/test_plugin_sort.cpp @@ -1,7 +1,10 @@ +#include #include #include +#include "slic3r/GUI/PluginSource.hpp" +#include "slic3r/GUI/PluginStatus.hpp" #include #include diff --git a/tests/slic3rutils/test_plugin_status.cpp b/tests/slic3rutils/test_plugin_status.cpp index c51c54c6c6..ab206c22ce 100644 --- a/tests/slic3rutils/test_plugin_status.cpp +++ b/tests/slic3rutils/test_plugin_status.cpp @@ -1,3 +1,4 @@ +#include #include #include diff --git a/tests/slic3rutils/test_prebuild_queue.cpp b/tests/slic3rutils/test_prebuild_queue.cpp index 8cc5444345..dc797ca60a 100644 --- a/tests/slic3rutils/test_prebuild_queue.cpp +++ b/tests/slic3rutils/test_prebuild_queue.cpp @@ -1,8 +1,10 @@ #include +#include "slic3r/GUI/Lazy.hpp" #include #include +#include #include "slic3r/GUI/PrebuildQueue.hpp" using Slic3r::GUI::LazyBase; diff --git a/tests/slic3rutils/test_precise_seam_plugin.cpp b/tests/slic3rutils/test_precise_seam_plugin.cpp index 244a4c3405..0375b96b9e 100644 --- a/tests/slic3rutils/test_precise_seam_plugin.cpp +++ b/tests/slic3rutils/test_precise_seam_plugin.cpp @@ -1,7 +1,11 @@ #include +#include #include "libslic3r/Model.hpp" #include "libslic3r/TriangleMesh.hpp" +#include +#include +#include #include "python_test_support.hpp" #include diff --git a/tests/slic3rutils/test_printer_agent.cpp b/tests/slic3rutils/test_printer_agent.cpp index 1418001205..8113326cc2 100644 --- a/tests/slic3rutils/test_printer_agent.cpp +++ b/tests/slic3rutils/test_printer_agent.cpp @@ -1,8 +1,14 @@ #include +#include +#include "slic3r/Utils/ICloudServiceAgent.hpp" +#include "slic3r/Utils/IPrinterAgent.hpp" #include #include +#include +#include +#include #include "python_test_support.hpp" #include diff --git a/tests/slic3rutils/test_printhost.cpp b/tests/slic3rutils/test_printhost.cpp index c4df56ebb6..c7ce9dccaa 100644 --- a/tests/slic3rutils/test_printhost.cpp +++ b/tests/slic3rutils/test_printhost.cpp @@ -3,10 +3,18 @@ #include #include #include +#include #include #include +#include +#include +#include +#include +#include +#include +#include #include "libslic3r/LifecycleEvents.hpp" #include "slic3r/Utils/PrintHost.hpp" #include "slic3r/Utils/Flashforge.hpp" diff --git a/tests/slic3rutils/test_scene_raycaster.cpp b/tests/slic3rutils/test_scene_raycaster.cpp index d51671e5c5..a1be46f216 100644 --- a/tests/slic3rutils/test_scene_raycaster.cpp +++ b/tests/slic3rutils/test_scene_raycaster.cpp @@ -11,6 +11,16 @@ #include #endif +#include +#include "slic3r/GUI/MeshUtils.hpp" +#include "libslic3r/Point.hpp" +#include +#include +#include +#include "libslic3r/TriangleMesh.hpp" +#include "libslic3r/Geometry.hpp" +#include + #include #include "slic3r/GUI/Camera.hpp" diff --git a/tests/slic3rutils/test_shortcuts.cpp b/tests/slic3rutils/test_shortcuts.cpp index 350e87f48a..ed7975b1e5 100644 --- a/tests/slic3rutils/test_shortcuts.cpp +++ b/tests/slic3rutils/test_shortcuts.cpp @@ -1,10 +1,16 @@ #include #include +#include #include "libslic3r/AppConfig.hpp" #include "slic3r/GUI/KeyChord.hpp" #include "slic3r/GUI/Shortcuts.hpp" +#include +#include +#include +#include +#include #include using namespace Slic3r; diff --git a/tests/slic3rutils/test_slicing_pipeline_bindings.cpp b/tests/slic3rutils/test_slicing_pipeline_bindings.cpp index 5e819c09e0..7552fe15af 100644 --- a/tests/slic3rutils/test_slicing_pipeline_bindings.cpp +++ b/tests/slic3rutils/test_slicing_pipeline_bindings.cpp @@ -1,4 +1,18 @@ #include +#include +#include +#include +#include "libslic3r/libslic3r.h" +#include +#include +#include +#include "libslic3r/Config.hpp" +#include "libslic3r/Print.hpp" +#include +#include "libslic3r/SurfaceCollection.hpp" +#include "libslic3r/Polygon.hpp" +#include +#include #include "slic3r/plugin/PythonPluginInterface.hpp" using namespace Slic3r; diff --git a/tests/slic3rutils/test_slicing_pipeline_config.cpp b/tests/slic3rutils/test_slicing_pipeline_config.cpp index 37984cff34..1e8e728f4d 100644 --- a/tests/slic3rutils/test_slicing_pipeline_config.cpp +++ b/tests/slic3rutils/test_slicing_pipeline_config.cpp @@ -1,13 +1,26 @@ +#include +#include #include +#include +#include +#include "libslic3r/Print.hpp" +#include "libslic3r/Model.hpp" +#include "libslic3r/PrintConfig.hpp" +#include "libslic3r/Config.hpp" #include #include +#include "slic3r/plugin/PluginFsUtils.hpp" #include #include #include +#include +#include #include "fff_print/test_helpers.hpp" #include "plugin_test_utils.hpp" +#include +#include #include #include diff --git a/tests/slic3rutils/test_staged_build.cpp b/tests/slic3rutils/test_staged_build.cpp index 3afcd9e5fc..df56d0c6e7 100644 --- a/tests/slic3rutils/test_staged_build.cpp +++ b/tests/slic3rutils/test_staged_build.cpp @@ -2,6 +2,7 @@ #include +#include #include "slic3r/GUI/StagedBuild.hpp" using Slic3r::GUI::StagedBuild; diff --git a/tests/slic3rutils/test_user_manager.cpp b/tests/slic3rutils/test_user_manager.cpp index cfccebe1cc..3c60552f22 100644 --- a/tests/slic3rutils/test_user_manager.cpp +++ b/tests/slic3rutils/test_user_manager.cpp @@ -2,6 +2,8 @@ #include +#include +#include #include "slic3r/GUI/UserManager.hpp" using namespace Slic3r; diff --git a/tests/slic3rutils/test_web_media_controller.cpp b/tests/slic3rutils/test_web_media_controller.cpp index cdf756ca3a..fdf271fe10 100644 --- a/tests/slic3rutils/test_web_media_controller.cpp +++ b/tests/slic3rutils/test_web_media_controller.cpp @@ -1,7 +1,15 @@ +#include #include #include +#include +#include +#include +#include +#include +#include "slic3r/Utils/IPrinterAgent.hpp" +#include #include #include diff --git a/tests/test_utils.hpp b/tests/test_utils.hpp index 0b04e6ad11..d0817ce128 100644 --- a/tests/test_utils.hpp +++ b/tests/test_utils.hpp @@ -1,6 +1,9 @@ #ifndef SLIC3R_TEST_UTILS #define SLIC3R_TEST_UTILS +#include +#include +#include "libslic3r/BoundingBox.hpp" #include #include #include From c86e33db6dd96f20ef1fd92e1018269b95ee0c31 Mon Sep 17 00:00:00 2001 From: SoftFever Date: Sat, 3 Oct 2026 14:11:21 +0800 Subject: [PATCH 2/8] Make the orca-wxwidgets skill find the wx source on Windows and in worktrees --- .claude/skills/orca-wxwidgets/SKILL.md | 12 ++++++++++-- .../references/mouse-keyboard-focus.md | 2 +- .../references/painting-custom-widgets.md | 2 +- .../skills/orca-wxwidgets/references/platforms.md | 5 +++-- .../skills/orca-wxwidgets/references/popups-menus.md | 2 +- .../orca-wxwidgets/references/threads-timers-app.md | 2 +- .../orca-wxwidgets/references/windows-dialogs.md | 7 +++---- .../orca-wxwidgets/references/wx-33-changes.md | 2 +- 8 files changed, 21 insertions(+), 13 deletions(-) diff --git a/.claude/skills/orca-wxwidgets/SKILL.md b/.claude/skills/orca-wxwidgets/SKILL.md index 263d2e390f..0e39ce9d24 100644 --- a/.claude/skills/orca-wxwidgets/SKILL.md +++ b/.claude/skills/orca-wxwidgets/SKILL.md @@ -30,8 +30,9 @@ how you read the wx docs: Look things up in the source the app is built from — it beats memory, and 3.3 changed real behaviour: ```bash -WX=$(find deps -maxdepth 5 -type d -path '*dep_wxWidgets-prefix/src/dep_wxWidgets' | head -1) -# macOS: deps/build//dep_wxWidgets-prefix/src/dep_wxWidgets Linux: deps/build/dep_wxWidgets-prefix/... +WX=$(find -L deps -maxdepth 5 -type d -path '*dep_wxWidgets-prefix/src/dep_wxWidgets' 2>/dev/null | head -1) +# macOS: deps/build//dep_wxWidgets-prefix/src/dep_wxWidgets Linux, Windows: deps//dep_wxWidgets-prefix/... +# -L follows a worktree's deps/ symlinked to the main checkout. Not a glob: zsh aborts on one that matches nothing. # If deps are not built: git clone --depth 1 -b v3.3.2 https://github.com/SoftFever/Orca-deps-wxWidgets grep -n "CaptureMouse" -A 30 $WX/interface/wx/window.h # documented contract (doxygen source) grep -rn "@onlyfor\|not implemented" $WX/interface/wx/popupwin.h # documented platform limits @@ -40,6 +41,13 @@ grep -n "IsDark" $WX/docs/changes.txt # what changed in grep -n "NotifyCaptureLost" -r $WX/src/osx $WX/src/gtk $WX/src/msw # what each port actually does ``` +On Windows these lookups are bash: run them from Git Bash. PowerShell has no `grep`, and its `find` is +Windows' text-search `find.exe`. To locate the wx tree from PowerShell: + +```powershell +$WX = Resolve-Path deps\*\dep_wxWidgets-prefix\src\dep_wxWidgets, deps\*\*\dep_wxWidgets-prefix\src\dep_wxWidgets -ErrorAction SilentlyContinue | Select-Object -First 1 -ExpandProperty Path +``` + `interface/wx/.h` is the documentation; `src/common` holds shared behaviour and `src/{msw,osx,gtk,unix,generic}` the per-port implementation. When the docs and the source disagree, the source is what runs — the references mark such facts **[source]**. Orca-side design docs live in diff --git a/.claude/skills/orca-wxwidgets/references/mouse-keyboard-focus.md b/.claude/skills/orca-wxwidgets/references/mouse-keyboard-focus.md index 0ccb5e4b70..48646134d8 100644 --- a/.claude/skills/orca-wxwidgets/references/mouse-keyboard-focus.md +++ b/.claude/skills/orca-wxwidgets/references/mouse-keyboard-focus.md @@ -10,7 +10,7 @@ wx asserts are compiled out in Orca (`wxDEBUG_LEVEL=0`), so every misuse below t an assert fails silently. "GTK" means wxGTK3, Orca's Linux default (X11 and Wayland); GTK2 is only an opt-out build (`-DDEP_WX_GTK3=OFF`), noted where it differs. Paths starting `interface/`, `include/`, `src/`, `docs/` are in the wx tree -(`find deps -maxdepth 5 -type d -path '*dep_wxWidgets-prefix/src/dep_wxWidgets'`); Orca paths are +(located as in `SKILL.md` §Ground truth); Orca paths are relative to `src/slic3r/GUI/`. Contents: [Rules](#rules) · [Mouse capture](#mouse-capture) · [Mouse events](#mouse-events) · diff --git a/.claude/skills/orca-wxwidgets/references/painting-custom-widgets.md b/.claude/skills/orca-wxwidgets/references/painting-custom-widgets.md index 905ff97d99..4f047042c3 100644 --- a/.claude/skills/orca-wxwidgets/references/painting-custom-widgets.md +++ b/.claude/skills/orca-wxwidgets/references/painting-custom-widgets.md @@ -6,7 +6,7 @@ to write a custom control on the wx side and how to author an Orca widget on the `StaticBox`/`StateHandler` foundation. Read it before writing or reviewing any `wxEVT_PAINT` handler, `render`/`doRender` method, `messureSize`, or a new class under `src/slic3r/GUI/Widgets/`. -wx cites are relative to the pinned wx 3.3.2 tree (`deps/build//dep_wxWidgets-prefix/src/dep_wxWidgets`). +wx cites are relative to the pinned wx 3.3.2 tree (located as in `SKILL.md` §Ground truth). Orca builds wx with `wxBUILD_DEBUG_LEVEL=0` and `libslic3r_gui` with `wxDEBUG_LEVEL=0`: every wx assert below is compiled out and `wxCHECK*` returns silently, so paint misuse shows up only as wrong, missing or stale pixels, never as an assert dialog. diff --git a/.claude/skills/orca-wxwidgets/references/platforms.md b/.claude/skills/orca-wxwidgets/references/platforms.md index 13ed32314a..f100b02269 100644 --- a/.claude/skills/orca-wxwidgets/references/platforms.md +++ b/.claude/skills/orca-wxwidgets/references/platforms.md @@ -78,8 +78,9 @@ Contents: [Rules](#rules) · [The wx build Orca uses](#the-wx-build-orca-uses) `references/colours-dark-mode.md`. - The checked-out source is the tree that every wx citation in this skill refers to: `deps/build//dep_wxWidgets-prefix/src/dep_wxWidgets` on macOS and - `deps/build/dep_wxWidgets-prefix/src/dep_wxWidgets` on Linux. Find it with - `find deps -maxdepth 5 -type d -path '*dep_wxWidgets-prefix/src/dep_wxWidgets'`. On macOS its + `deps//dep_wxWidgets-prefix/src/dep_wxWidgets` on Linux and Windows (`deps/build` for a + release build; `build_win.bat` names the others). Locate it with the bash or PowerShell lookup in + `SKILL.md` §Ground truth. On macOS its `src/osx/cocoa/colour.mm` already has the patch applied. - **Flatpak builds wx separately.** `deps/CMakeLists.txt` leaves `dep_wxWidgets` out of the deps target when `FLATPAK` is set. Instead, `scripts/flatpak/com.orcaslicer.OrcaSlicer.yml` has its own diff --git a/.claude/skills/orca-wxwidgets/references/popups-menus.md b/.claude/skills/orca-wxwidgets/references/popups-menus.md index be1abb69a8..3fab369436 100644 --- a/.claude/skills/orca-wxwidgets/references/popups-menus.md +++ b/.claude/skills/orca-wxwidgets/references/popups-menus.md @@ -5,7 +5,7 @@ How wx 3.3.2 popups and menus behave on each port, and the Orca wrappers built o `append_menu_item`, `Plater::PopupMenu` and the macOS menubar versus `BBLTopbar`. Read it before you add or change anything that opens over other UI and must close by itself, or any context menu or menubar item. -wx cites are relative to the wx tree root (`deps/build//dep_wxWidgets-prefix/src/dep_wxWidgets`). +wx cites are relative to the wx tree root (located as in `SKILL.md` §Ground truth). **[source]** marks behaviour derived from the implementation that the wx docs do not state or contradict. Orca builds wx with `wxBUILD_DEBUG_LEVEL=0`, so every "asserts" below means "fails silently in Orca". "GTK" means wxGTK3 (X11 and Wayland), the default Linux build; GTK2 is only an opt-out (`-DDEP_WX_GTK3=OFF`). diff --git a/.claude/skills/orca-wxwidgets/references/threads-timers-app.md b/.claude/skills/orca-wxwidgets/references/threads-timers-app.md index 8c8367c999..269c228a35 100644 --- a/.claude/skills/orca-wxwidgets/references/threads-timers-app.md +++ b/.claude/skills/orca-wxwidgets/references/threads-timers-app.md @@ -7,7 +7,7 @@ yields and nested event loops, progress dialogs, startup, shutdown and exception screen, and the access rules for `wxGetApp()` and `app_config`. Read it whenever code runs off the main thread, defers work, starts a timer, yields, shows progress, or runs during startup or shutdown. -wx cites are relative to the pinned wx 3.3.2 tree (`deps/build//dep_wxWidgets-prefix/src/dep_wxWidgets`). +wx cites are relative to the pinned wx 3.3.2 tree (located as in `SKILL.md` §Ground truth). Orca builds wx with `wxBUILD_DEBUG_LEVEL=0` and `libslic3r_gui` with `wxDEBUG_LEVEL=0`, so `wxASSERT` is compiled out and `wxCHECK*` returns silently: a timer started off the main thread never fires on macOS, `Exit()` on a loop that is not the active one is ignored, `Start(0)` on macOS fails — all without diff --git a/.claude/skills/orca-wxwidgets/references/windows-dialogs.md b/.claude/skills/orca-wxwidgets/references/windows-dialogs.md index 1c5be5af4c..ff8a858e24 100644 --- a/.claude/skills/orca-wxwidgets/references/windows-dialogs.md +++ b/.claude/skills/orca-wxwidgets/references/windows-dialogs.md @@ -6,10 +6,9 @@ port; what Orca's `DPIDialog`/`DPIFrame` add; the Orca dialog recipe; and the `M Read it before writing or reviewing any dialog, frame, close handler, `Destroy()`/`delete`, or code that keeps a pointer to a window across an event, a `CallAfter` or a modal loop. -wx cites are relative to the pinned wx 3.3.2 tree (`find deps -maxdepth 5 -type d -path -'*dep_wxWidgets-prefix/src/dep_wxWidgets'`). wx is built with `wxBUILD_DEBUG_LEVEL=0` and -`libslic3r_gui` with `wxDEBUG_LEVEL=0`: every wx assert quoted below is compiled out, so misuse -fails silently (dropped call, stuck loop, freed memory), never with an assert dialog. "GTK" below +wx cites are relative to the pinned wx 3.3.2 tree (located as in `SKILL.md` §Ground truth). wx is +built with `wxBUILD_DEBUG_LEVEL=0` and `libslic3r_gui` with `wxDEBUG_LEVEL=0`: every wx assert +quoted below is compiled out, so misuse fails silently (dropped call, stuck loop, freed memory), never with an assert dialog. "GTK" below means wxGTK as Orca builds it on Linux: GTK3 by default (X11 or Wayland); GTK2 is only an opt-out. Contents: [Rules](#rules) · [1 Creating and parenting](#1-creating-and-parenting-windows) · diff --git a/.claude/skills/orca-wxwidgets/references/wx-33-changes.md b/.claude/skills/orca-wxwidgets/references/wx-33-changes.md index c2075ea2fb..4a292d89af 100644 --- a/.claude/skills/orca-wxwidgets/references/wx-33-changes.md +++ b/.claude/skills/orca-wxwidgets/references/wx-33-changes.md @@ -14,7 +14,7 @@ Contents: [Rules](#rules) · [1 Reading the change logs](#1-reading-the-change-l [8 Migration done in Orca](#8-migration-already-done-in-orca) All `docs/`, `interface/`, `include/`, `src/`, `build/` cites are relative to the pinned wx tree -(`find deps -maxdepth 5 -type d -path '*dep_wxWidgets-prefix/src/dep_wxWidgets'`), except paths +(located as in `SKILL.md` §Ground truth), except paths explicitly called Orca's (`deps/…`, Orca's `src/CMakeLists.txt`) and bare Orca file + symbol cites. ## Rules From 8a6377f087e3f422275cd788339e1fa64a280f50 Mon Sep 17 00:00:00 2001 From: HanifKoh <76276251+HanifKoh@users.noreply.github.com> Date: Sat, 3 Oct 2026 15:31:11 +0800 Subject: [PATCH 3/8] Add Missing Includes Across src/libslic3r (#16068) * Add Missing Includes Across src/libslic3r Every libslic3r source and header now directly includes the headers declaring what it uses, rather than relying on the precompiled header or transitive includes. Generated with clang-tidy misc-include-cleaner, with libslic3r headers spelled libslic3r/... so they resolve outside the library's private include paths. MultiMaterialSegmentation.hpp, Support/SupportParameters.hpp and Format/STEP.hpp are made self-contained by hand. * Make the libslic3r Headers Compile on Their Own Each now includes, or forward-declares, what it uses instead of relying on what its includers happened to include first. Left out: I18N.hpp, which errors on purpose when included from GUI code, and VoxelizeCSGMesh.hpp and SLA/bicubic.h, which nothing includes and which no longer compile at all. * Add the Includes Missing From the Hand-Fixed libslic3r Headers clang-tidy would not edit these headers while they failed to compile on their own, so the first pass skipped them. With the headers now self-contained, a second pass adds the rest. * Keep Windows Setup Ahead of the Added libslic3r Includes Print.cpp and Thread.cpp open with a _WIN32 block that has to come first; without the precompiled header, Print.cpp otherwise reaches windows.h through OCCT with NONLS defined and boost/regex fails. OpenVDBUtils.cpp and SLA/SupportTreeBuilder.cpp had includes inside #ifndef NOMINMAX, which libslic3r defines on Windows, so those were skipped there. .clang-tidy also ignores the MSVC STL and UCRT internals, Boost.Multiprecision's fwd.hpp and CPython's Windows include directory. * Re-Add libslic3r Includes After the Clipper2 2.0.1 Migration Rebasing onto main took main's version of the files the Clipper2 migration rewrote, so their added includes are restored here, along with includes for main's new code. Clipper2's individual headers are now ignored by clang-tidy: they only build the Z variant through clipper2_z.hpp, which defines USINGZ first, so including clipper.core.h and the like directly broke ClipperZUtils.cpp. --- .clang-tidy | 5 +- src/libslic3r/AABBMesh.cpp | 9 +++ src/libslic3r/AABBMesh.hpp | 4 ++ src/libslic3r/AABBTreeIndirect.hpp | 5 ++ src/libslic3r/AABBTreeLines.hpp | 6 ++ src/libslic3r/AStar.hpp | 4 ++ src/libslic3r/Algorithm/LineSplit.cpp | 12 ++++ src/libslic3r/Algorithm/LineSplit.hpp | 6 ++ src/libslic3r/Algorithm/RegionExpansion.cpp | 14 +++++ src/libslic3r/Algorithm/RegionExpansion.hpp | 2 + src/libslic3r/AnyPtr.hpp | 1 + src/libslic3r/AppConfig.cpp | 14 +++++ src/libslic3r/AppConfig.hpp | 3 + .../BeadingStrategy/BeadingStrategy.cpp | 2 + .../BeadingStrategyFactory.cpp | 1 + .../DistributedBeadingStrategy.cpp | 1 + .../LimitedBeadingStrategy.cpp | 2 + .../OuterWallInsetBeadingStrategy.cpp | 1 + .../RedistributeBeadingStrategy.cpp | 1 + .../WideningBeadingStrategy.cpp | 3 + .../Arachne/SkeletalTrapezoidation.cpp | 8 +++ .../Arachne/SkeletalTrapezoidationEdge.hpp | 2 + .../Arachne/SkeletalTrapezoidationGraph.cpp | 6 ++ .../Arachne/SkeletalTrapezoidationJoint.hpp | 1 + src/libslic3r/Arachne/WallToolPaths.cpp | 21 +++++++ src/libslic3r/Arachne/WallToolPaths.hpp | 6 ++ .../Arachne/utils/ExtrusionJunction.hpp | 3 + src/libslic3r/Arachne/utils/ExtrusionLine.cpp | 6 ++ src/libslic3r/Arachne/utils/ExtrusionLine.hpp | 1 + .../Arachne/utils/PolygonsPointIndex.hpp | 3 + .../Arachne/utils/PolygonsSegmentIndex.hpp | 3 + .../Arachne/utils/PolylineStitcher.cpp | 1 + src/libslic3r/Arachne/utils/SparseGrid.hpp | 3 + .../Arachne/utils/SparseLineGrid.hpp | 5 ++ .../Arachne/utils/SparsePointGrid.hpp | 4 ++ src/libslic3r/Arachne/utils/SquareGrid.cpp | 4 ++ src/libslic3r/Arachne/utils/linearAlg2D.hpp | 3 + src/libslic3r/ArcFitter.cpp | 6 ++ src/libslic3r/ArcFitter.hpp | 3 + src/libslic3r/Arrange.cpp | 24 ++++++++ src/libslic3r/Arrange.hpp | 9 +++ src/libslic3r/BoundingBox.cpp | 3 + src/libslic3r/BoundingBox.hpp | 3 + src/libslic3r/BridgeDetector.cpp | 11 ++++ src/libslic3r/BridgeDetector.hpp | 7 +++ src/libslic3r/Brim.cpp | 19 +++++++ src/libslic3r/Brim.hpp | 2 + src/libslic3r/BrimEarsPoint.hpp | 3 + src/libslic3r/BuildVolume.cpp | 13 +++++ src/libslic3r/BuildVolume.hpp | 4 ++ src/libslic3r/CAD/CadDocument.cpp | 16 ++++++ src/libslic3r/CAD/CadDocument.hpp | 4 ++ src/libslic3r/CAD/GeometryEngine.cpp | 16 ++++++ src/libslic3r/CAD/GeometryEngine.hpp | 3 + src/libslic3r/CAD/SketchConstraints.cpp | 5 ++ src/libslic3r/CAD/SketchConstraints.hpp | 1 + src/libslic3r/CAD/SketchEngine.cpp | 14 +++++ src/libslic3r/CAD/SketchImport.cpp | 8 +++ src/libslic3r/CAD/SketchInference.cpp | 6 ++ src/libslic3r/CAD/SketchInference.hpp | 2 + src/libslic3r/CAD/SketchSolver.cpp | 4 ++ src/libslic3r/CAD/ThreadStandards.cpp | 2 + src/libslic3r/CSGMesh/CSGMesh.hpp | 4 ++ src/libslic3r/CSGMesh/CSGMeshCopy.hpp | 4 ++ src/libslic3r/CSGMesh/ModelToCSGMesh.hpp | 4 ++ .../CSGMesh/PerformCSGMeshBooleans.hpp | 6 ++ src/libslic3r/CSGMesh/SliceCSGMesh.hpp | 8 +++ src/libslic3r/CSGMesh/TriangleMeshAdapter.hpp | 1 + src/libslic3r/Channel.hpp | 3 + src/libslic3r/Circle.cpp | 6 ++ src/libslic3r/Circle.hpp | 2 + src/libslic3r/ClipperUtils.cpp | 15 +++++ src/libslic3r/ClipperUtils.hpp | 7 +++ src/libslic3r/ClipperZUtils.cpp | 2 + src/libslic3r/ClipperZUtils.hpp | 5 ++ src/libslic3r/Color.cpp | 8 +++ src/libslic3r/ColorDecomposeRecipe.cpp | 2 + src/libslic3r/Config.cpp | 22 ++++++++ src/libslic3r/Config.hpp | 10 ++++ src/libslic3r/ContourZ.cpp | 4 ++ src/libslic3r/CustomGCode.cpp | 4 ++ src/libslic3r/CustomGCode.hpp | 3 + src/libslic3r/CutSurface.cpp | 34 ++++++++++++ src/libslic3r/CutSurface.hpp | 2 + src/libslic3r/CutUtils.cpp | 11 ++++ src/libslic3r/CutUtils.hpp | 1 + src/libslic3r/EdgeGrid.cpp | 11 ++++ src/libslic3r/EdgeGrid.hpp | 12 ++++ src/libslic3r/ElephantFootCompensation.cpp | 9 +++ src/libslic3r/Emboss.cpp | 23 ++++++++ src/libslic3r/Emboss.hpp | 8 +++ src/libslic3r/EmbossShape.hpp | 2 + src/libslic3r/ExPolygon.cpp | 10 ++++ src/libslic3r/ExPolygon.hpp | 7 +++ src/libslic3r/ExPolygonCollection.hpp | 3 + src/libslic3r/ExPolygonSerialize.hpp | 1 + src/libslic3r/ExPolygonsIndex.cpp | 6 ++ src/libslic3r/ExPolygonsIndex.hpp | 2 + src/libslic3r/Exception.hpp | 2 + src/libslic3r/Execution/Execution.hpp | 1 + src/libslic3r/Execution/ExecutionSeq.hpp | 3 + src/libslic3r/Execution/ExecutionTBB.hpp | 3 + src/libslic3r/Extruder.cpp | 6 ++ src/libslic3r/Extruder.hpp | 1 + src/libslic3r/ExtrusionEntity.cpp | 13 +++++ src/libslic3r/ExtrusionEntity.hpp | 6 ++ src/libslic3r/ExtrusionEntityCollection.cpp | 5 ++ src/libslic3r/ExtrusionEntityCollection.hpp | 7 +++ src/libslic3r/ExtrusionSimulator.cpp | 10 ++++ src/libslic3r/ExtrusionSimulator.hpp | 1 + src/libslic3r/FaceDetector.cpp | 5 ++ src/libslic3r/FaceDetector.hpp | 1 + src/libslic3r/Feature/FuzzySkin/FuzzySkin.cpp | 14 +++++ src/libslic3r/Feature/FuzzySkin/FuzzySkin.hpp | 4 ++ .../Interlocking/InterlockingGenerator.cpp | 14 +++++ .../Interlocking/InterlockingGenerator.hpp | 8 +++ .../Feature/Interlocking/VoxelUtils.cpp | 12 ++++ .../Feature/Interlocking/VoxelUtils.hpp | 5 ++ src/libslic3r/FilamentGroup.cpp | 23 ++++++++ src/libslic3r/FilamentGroup.hpp | 7 +++ src/libslic3r/FilamentGroupUtils.cpp | 16 ++++++ src/libslic3r/FilamentGroupUtils.hpp | 3 + src/libslic3r/FilamentMixer.cpp | 5 ++ src/libslic3r/FilamentMixer.hpp | 1 + src/libslic3r/FileParserError.hpp | 2 + src/libslic3r/Fill/Fill.cpp | 22 ++++++++ src/libslic3r/Fill/Fill.hpp | 2 + src/libslic3r/Fill/Fill3DHoneycomb.cpp | 12 ++++ src/libslic3r/Fill/Fill3DHoneycomb.hpp | 4 ++ src/libslic3r/Fill/FillAdaptive.cpp | 22 ++++++++ src/libslic3r/Fill/FillAdaptive.hpp | 10 ++++ src/libslic3r/Fill/FillBase.cpp | 20 +++++++ src/libslic3r/Fill/FillBase.hpp | 8 +++ src/libslic3r/Fill/FillConcentric.cpp | 13 +++++ src/libslic3r/Fill/FillConcentric.hpp | 4 ++ src/libslic3r/Fill/FillConcentricInternal.cpp | 13 +++++ src/libslic3r/Fill/FillConcentricInternal.hpp | 1 + src/libslic3r/Fill/FillCornerSmoothing.cpp | 10 ++++ src/libslic3r/Fill/FillCornerSmoothing.hpp | 1 + src/libslic3r/Fill/FillCrossHatch.cpp | 8 +++ src/libslic3r/Fill/FillCrossHatch.hpp | 4 ++ src/libslic3r/Fill/FillGyroid.cpp | 10 ++++ src/libslic3r/Fill/FillGyroid.hpp | 4 ++ src/libslic3r/Fill/FillHoneycomb.cpp | 10 ++++ src/libslic3r/Fill/FillHoneycomb.hpp | 6 ++ src/libslic3r/Fill/FillLightning.cpp | 8 +++ src/libslic3r/Fill/FillLightning.hpp | 6 ++ src/libslic3r/Fill/FillLine.cpp | 11 ++++ src/libslic3r/Fill/FillLine.hpp | 5 ++ src/libslic3r/Fill/FillPlanePath.cpp | 14 +++++ src/libslic3r/Fill/FillPlanePath.hpp | 6 ++ src/libslic3r/Fill/FillRectilinear.cpp | 18 ++++++ src/libslic3r/Fill/FillRectilinear.hpp | 11 ++++ src/libslic3r/Fill/FillSpiralInset.cpp | 13 +++++ src/libslic3r/Fill/FillSpiralInset.hpp | 4 ++ src/libslic3r/Fill/FillTpmsD.cpp | 5 ++ src/libslic3r/Fill/FillTpmsFK.cpp | 9 +++ .../Fill/Lightning/DistanceField.cpp | 14 +++++ .../Fill/Lightning/DistanceField.hpp | 7 +++ src/libslic3r/Fill/Lightning/Generator.cpp | 21 +++++++ src/libslic3r/Fill/Lightning/Generator.hpp | 4 ++ src/libslic3r/Fill/Lightning/Layer.cpp | 15 +++++ src/libslic3r/Fill/Lightning/Layer.hpp | 5 ++ src/libslic3r/Fill/Lightning/TreeNode.cpp | 16 ++++++ src/libslic3r/Fill/Lightning/TreeNode.hpp | 6 ++ src/libslic3r/Flow.cpp | 5 ++ src/libslic3r/Flow.hpp | 2 + src/libslic3r/FlushVolCalc.cpp | 3 + src/libslic3r/FlushVolPredictor.cpp | 10 ++++ src/libslic3r/Format/3mf.cpp | 30 ++++++++++ src/libslic3r/Format/3mf.hpp | 1 + src/libslic3r/Format/AMF.cpp | 11 ++++ src/libslic3r/Format/AMF.hpp | 1 + src/libslic3r/Format/AssimpImport.cpp | 9 +++ src/libslic3r/Format/DRC.cpp | 13 +++++ src/libslic3r/Format/OBJ.cpp | 12 ++++ src/libslic3r/Format/OBJ.hpp | 7 +++ src/libslic3r/Format/ResourcePathUtils.hpp | 3 + src/libslic3r/Format/SL1.cpp | 26 +++++++++ src/libslic3r/Format/SL1.hpp | 9 +++ src/libslic3r/Format/STEP.cpp | 22 ++++++++ src/libslic3r/Format/STEP.hpp | 10 ++++ src/libslic3r/Format/STL.cpp | 2 + src/libslic3r/Format/ZipperArchiveImport.cpp | 13 +++++ src/libslic3r/Format/ZipperArchiveImport.hpp | 2 + src/libslic3r/Format/bbs_3mf.cpp | 55 +++++++++++++++++++ src/libslic3r/Format/bbs_3mf.hpp | 12 ++++ src/libslic3r/Format/objparser.cpp | 8 +++ src/libslic3r/Format/objparser.hpp | 1 + src/libslic3r/Format/svg.cpp | 16 ++++++ src/libslic3r/Format/svg.hpp | 3 + src/libslic3r/GCode.cpp | 47 ++++++++++++++++ src/libslic3r/GCode.hpp | 13 +++++ .../GCode/AdaptivePAInterpolator.cpp | 6 ++ src/libslic3r/GCode/AdaptivePAProcessor.cpp | 9 +++ src/libslic3r/GCode/AdaptivePAProcessor.hpp | 2 + .../GCode/AvoidCrossingPerimeters.cpp | 19 +++++++ .../GCode/AvoidCrossingPerimeters.hpp | 4 ++ src/libslic3r/GCode/ConflictChecker.cpp | 17 ++++++ src/libslic3r/GCode/ConflictChecker.hpp | 10 ++++ src/libslic3r/GCode/CoolingBuffer.cpp | 14 +++++ src/libslic3r/GCode/CoolingBuffer.hpp | 4 ++ .../GCode/ElegooGCodeProcessorHelper.cpp | 3 + src/libslic3r/GCode/ExtrusionProcessor.hpp | 3 + src/libslic3r/GCode/FanMover.cpp | 19 +++++++ src/libslic3r/GCode/FanMover.hpp | 5 ++ src/libslic3r/GCode/GCodeProcessor.cpp | 39 +++++++++++++ src/libslic3r/GCode/GCodeProcessor.hpp | 14 +++++ src/libslic3r/GCode/OrderingStrategies.cpp | 5 ++ src/libslic3r/GCode/OrderingStrategies.hpp | 2 + .../GCode/PchipInterpolatorHelper.cpp | 4 ++ src/libslic3r/GCode/PreciseSeam.cpp | 14 +++++ src/libslic3r/GCode/PreciseSeam.hpp | 2 + src/libslic3r/GCode/PressureEqualizer.cpp | 11 ++++ src/libslic3r/GCode/PressureEqualizer.hpp | 7 +++ src/libslic3r/GCode/PrintExtents.cpp | 9 +++ .../GCode/RetractWhenCrossingPerimeters.cpp | 9 +++ .../GCode/RetractWhenCrossingPerimeters.hpp | 1 + src/libslic3r/GCode/SeamPlacer.cpp | 23 ++++++++ src/libslic3r/GCode/SeamPlacer.hpp | 5 ++ .../GCode/SmallAreaInfillFlowCompensator.cpp | 10 ++++ .../GCode/SmallAreaInfillFlowCompensator.hpp | 1 + src/libslic3r/GCode/SpiralVase.cpp | 5 ++ src/libslic3r/GCode/SpiralVase.hpp | 4 ++ src/libslic3r/GCode/ThumbnailData.cpp | 1 + src/libslic3r/GCode/ThumbnailData.hpp | 3 + src/libslic3r/GCode/Thumbnails.cpp | 16 ++++++ src/libslic3r/GCode/Thumbnails.hpp | 4 ++ src/libslic3r/GCode/TimelapsePosPicker.cpp | 17 ++++++ src/libslic3r/GCode/TimelapsePosPicker.hpp | 4 ++ src/libslic3r/GCode/ToolOrderUtils.cpp | 14 +++++ src/libslic3r/GCode/ToolOrderUtils.hpp | 1 + src/libslic3r/GCode/ToolOrdering.cpp | 17 ++++++ src/libslic3r/GCode/ToolOrdering.hpp | 8 +++ src/libslic3r/GCode/WipePathHelpers.cpp | 7 +++ src/libslic3r/GCode/WipePathHelpers.hpp | 1 + src/libslic3r/GCode/WipeTower.cpp | 23 ++++++++ src/libslic3r/GCode/WipeTower.hpp | 7 +++ src/libslic3r/GCode/WipeTower2.cpp | 22 ++++++++ src/libslic3r/GCode/WipeTower2.hpp | 4 ++ src/libslic3r/GCode/WipeTowerEstimate.cpp | 3 + src/libslic3r/GCodeReader.cpp | 12 ++++ src/libslic3r/GCodeReader.hpp | 4 ++ src/libslic3r/GCodeSender.hpp | 8 +++ src/libslic3r/GCodeWriter.cpp | 20 +++++++ src/libslic3r/GCodeWriter.hpp | 6 ++ src/libslic3r/Geometry.cpp | 13 +++++ src/libslic3r/Geometry.hpp | 11 ++++ src/libslic3r/Geometry/ArcWelder.hpp | 2 + src/libslic3r/Geometry/Bicubic.hpp | 2 + src/libslic3r/Geometry/Circle.cpp | 9 +++ src/libslic3r/Geometry/Circle.hpp | 5 ++ src/libslic3r/Geometry/ConvexHull.cpp | 10 ++++ src/libslic3r/Geometry/ConvexHull.hpp | 3 + src/libslic3r/Geometry/Curves.hpp | 6 ++ src/libslic3r/Geometry/MedialAxis.cpp | 4 ++ src/libslic3r/Geometry/Voronoi.cpp | 5 ++ src/libslic3r/Geometry/VoronoiOffset.cpp | 4 ++ src/libslic3r/Geometry/VoronoiUtils.cpp | 5 ++ src/libslic3r/Geometry/VoronoiUtilsCgal.cpp | 9 +++ src/libslic3r/Geometry/VoronoiVisualUtils.hpp | 12 ++++ src/libslic3r/InstanceLock.cpp | 4 ++ src/libslic3r/IntersectionPoints.cpp | 5 ++ src/libslic3r/IntersectionPoints.hpp | 5 ++ src/libslic3r/JumpPointSearch.hpp | 1 + src/libslic3r/KDTreeIndirect.hpp | 5 ++ src/libslic3r/LayOnFace.cpp | 6 ++ src/libslic3r/LayOnFace.hpp | 1 + src/libslic3r/Layer.cpp | 16 ++++++ src/libslic3r/Layer.hpp | 9 +++ src/libslic3r/LayerRegion.cpp | 24 ++++++++ src/libslic3r/Line.cpp | 5 ++ src/libslic3r/Line.hpp | 3 + src/libslic3r/LocalesUtils.cpp | 6 ++ src/libslic3r/LocalesUtils.hpp | 1 + src/libslic3r/MTUtils.hpp | 2 + src/libslic3r/MarchingSquares.hpp | 6 ++ src/libslic3r/MaterialType.cpp | 2 + src/libslic3r/Measure.cpp | 22 ++++++++ src/libslic3r/Measure.hpp | 7 +++ src/libslic3r/MeasureUtils.hpp | 7 +++ src/libslic3r/MeshBoolean.cpp | 31 +++++++++++ src/libslic3r/MeshBoolean.hpp | 4 ++ src/libslic3r/MeshSplitImpl.hpp | 9 +++ src/libslic3r/MinAreaBoundingBox.cpp | 7 +++ src/libslic3r/MinimumSpanningTree.cpp | 5 ++ src/libslic3r/Model.cpp | 42 ++++++++++++++ src/libslic3r/Model.hpp | 10 ++++ src/libslic3r/ModelArrange.cpp | 10 ++++ src/libslic3r/ModelArrange.hpp | 6 ++ src/libslic3r/MultiMaterialSegmentation.cpp | 29 ++++++++++ src/libslic3r/MultiMaterialSegmentation.hpp | 8 +++ src/libslic3r/MultiNozzleUtils.cpp | 10 ++++ src/libslic3r/MultiNozzleUtils.hpp | 2 + src/libslic3r/MultiPoint.cpp | 11 ++++ src/libslic3r/MultiPoint.hpp | 4 ++ src/libslic3r/MutablePolygon.cpp | 5 ++ src/libslic3r/MutablePolygon.hpp | 7 +++ src/libslic3r/MutablePriorityQueue.hpp | 4 ++ src/libslic3r/NSVGUtils.cpp | 13 +++++ src/libslic3r/NSVGUtils.hpp | 4 ++ src/libslic3r/NormalUtils.cpp | 5 ++ src/libslic3r/NormalUtils.hpp | 1 + src/libslic3r/ObjColorUtils.cpp | 2 + src/libslic3r/ObjColorUtils.hpp | 7 +++ src/libslic3r/ObjectID.cpp | 1 + src/libslic3r/ObjectID.hpp | 1 + src/libslic3r/OpenVDBUtils.cpp | 13 +++++ src/libslic3r/OpenVDBUtils.hpp | 3 + .../Optimize/BruteforceOptimizer.hpp | 5 ++ src/libslic3r/Optimize/NLoptOptimizer.hpp | 6 ++ src/libslic3r/Optimize/Optimizer.hpp | 1 + src/libslic3r/Orient.cpp | 20 +++++++ src/libslic3r/Orient.hpp | 7 +++ src/libslic3r/PNGReadWrite.cpp | 6 ++ src/libslic3r/PNGReadWrite.hpp | 2 + src/libslic3r/ParameterUtils.cpp | 5 ++ src/libslic3r/ParameterUtils.hpp | 2 + src/libslic3r/PerimeterGenerator.cpp | 18 ++++++ src/libslic3r/PerimeterGenerator.hpp | 7 +++ src/libslic3r/PlaceholderParser.cpp | 40 ++++++++++++++ src/libslic3r/PlaceholderParser.hpp | 2 + src/libslic3r/Platform.cpp | 5 ++ src/libslic3r/Point.cpp | 7 +++ src/libslic3r/Point.hpp | 11 ++++ src/libslic3r/Polygon.cpp | 13 +++++ src/libslic3r/Polygon.hpp | 7 +++ src/libslic3r/PolygonTrimmer.cpp | 5 ++ src/libslic3r/PolygonTrimmer.hpp | 1 + src/libslic3r/Polyline.cpp | 10 ++++ src/libslic3r/Polyline.hpp | 6 ++ src/libslic3r/Preset.cpp | 29 ++++++++++ src/libslic3r/Preset.hpp | 10 ++++ src/libslic3r/PresetBundle.cpp | 36 ++++++++++++ src/libslic3r/PresetBundle.hpp | 9 +++ src/libslic3r/PresetCacheFormat.cpp | 16 ++++++ src/libslic3r/PresetCacheFormat.hpp | 1 + src/libslic3r/PrincipalComponents2D.cpp | 6 ++ src/libslic3r/PrincipalComponents2D.hpp | 2 + src/libslic3r/Print.cpp | 50 +++++++++++++++++ src/libslic3r/Print.hpp | 22 ++++++++ src/libslic3r/PrintApply.cpp | 25 +++++++++ src/libslic3r/PrintBase.cpp | 12 ++++ src/libslic3r/PrintBase.hpp | 7 +++ src/libslic3r/PrintConfig.cpp | 26 +++++++++ src/libslic3r/PrintConfig.hpp | 16 ++++++ src/libslic3r/PrintObject.cpp | 32 +++++++++++ src/libslic3r/PrintObjectSlice.cpp | 26 +++++++++ src/libslic3r/PrintRegion.cpp | 8 +++ src/libslic3r/ProjectTask.cpp | 5 ++ src/libslic3r/ProjectTask.hpp | 1 + src/libslic3r/PublishSettings.cpp | 4 ++ src/libslic3r/QuadricEdgeCollapse.cpp | 14 +++++ src/libslic3r/SLA/AGGRaster.hpp | 9 +++ src/libslic3r/SLA/BoostAdapter.hpp | 12 ++++ src/libslic3r/SLA/Clustering.cpp | 8 +++ src/libslic3r/SLA/Clustering.hpp | 5 ++ src/libslic3r/SLA/ConcaveHull.cpp | 9 +++ src/libslic3r/SLA/ConcaveHull.hpp | 4 ++ src/libslic3r/SLA/Concurrency.hpp | 2 + src/libslic3r/SLA/Hollowing.cpp | 17 ++++++ src/libslic3r/SLA/Hollowing.hpp | 8 +++ src/libslic3r/SLA/IndexedMesh.cpp | 14 +++++ src/libslic3r/SLA/IndexedMesh.hpp | 6 ++ src/libslic3r/SLA/Pad.cpp | 9 +++ src/libslic3r/SLA/RasterBase.cpp | 12 ++++ src/libslic3r/SLA/RasterBase.hpp | 5 ++ src/libslic3r/SLA/RasterToPolygons.cpp | 9 +++ src/libslic3r/SLA/RasterToPolygons.hpp | 1 + src/libslic3r/SLA/ReprojectPointsOnMesh.hpp | 2 + src/libslic3r/SLA/Rotfinder.cpp | 14 +++++ src/libslic3r/SLA/Rotfinder.hpp | 1 + src/libslic3r/SLA/SpatIndex.cpp | 8 +++ src/libslic3r/SLA/SpatIndex.hpp | 3 + src/libslic3r/SLA/SupportPoint.hpp | 4 ++ src/libslic3r/SLA/SupportPointGenerator.cpp | 15 +++++ src/libslic3r/SLA/SupportPointGenerator.hpp | 10 ++++ src/libslic3r/SLA/SupportTree.cpp | 8 +++ src/libslic3r/SLA/SupportTree.hpp | 1 + src/libslic3r/SLA/SupportTreeBuilder.cpp | 15 +++++ src/libslic3r/SLA/SupportTreeBuilder.hpp | 6 ++ src/libslic3r/SLA/SupportTreeBuildsteps.cpp | 23 ++++++++ src/libslic3r/SLA/SupportTreeBuildsteps.hpp | 18 ++++++ src/libslic3r/SLA/SupportTreeMesher.cpp | 9 +++ src/libslic3r/SLA/SupportTreeMesher.hpp | 4 ++ src/libslic3r/SLAPrint.cpp | 25 +++++++++ src/libslic3r/SLAPrint.hpp | 20 +++++++ src/libslic3r/SLAPrintSteps.cpp | 25 +++++++++ src/libslic3r/SLAPrintSteps.hpp | 3 + src/libslic3r/SVG.cpp | 20 +++++++ src/libslic3r/SVG.hpp | 9 +++ src/libslic3r/Semver.cpp | 2 + src/libslic3r/Semver.hpp | 5 ++ src/libslic3r/Shape/TextShape.cpp | 23 ++++++++ src/libslic3r/Shape/TextShape.hpp | 3 + src/libslic3r/ShortEdgeCollapse.cpp | 4 ++ src/libslic3r/ShortEdgeCollapse.hpp | 1 + src/libslic3r/ShortestPath.cpp | 15 +++++ src/libslic3r/ShortestPath.hpp | 2 + src/libslic3r/SlicesToTriangleMesh.cpp | 7 +++ src/libslic3r/SlicesToTriangleMesh.hpp | 1 + src/libslic3r/Slicing.cpp | 8 +++ src/libslic3r/Slicing.hpp | 2 + src/libslic3r/SlicingAdaptive.cpp | 6 ++ src/libslic3r/SlicingAdaptive.hpp | 3 + src/libslic3r/StreamUtils.hpp | 1 + src/libslic3r/Support/SupportCommon.cpp | 16 ++++++ src/libslic3r/Support/SupportCommon.hpp | 8 +++ src/libslic3r/Support/SupportLayer.hpp | 4 ++ src/libslic3r/Support/SupportMaterial.cpp | 26 +++++++++ src/libslic3r/Support/SupportMaterial.hpp | 3 + src/libslic3r/Support/SupportParameters.hpp | 11 ++++ .../Support/SupportSpotsGenerator.cpp | 2 + .../Support/SupportSpotsGenerator.hpp | 2 + src/libslic3r/Support/TreeModelVolumes.cpp | 15 +++++ src/libslic3r/Support/TreeModelVolumes.hpp | 9 +++ src/libslic3r/Support/TreeSupport.cpp | 37 +++++++++++++ src/libslic3r/Support/TreeSupport.hpp | 14 +++++ src/libslic3r/Support/TreeSupport3D.cpp | 31 +++++++++++ src/libslic3r/Support/TreeSupport3D.hpp | 10 ++++ src/libslic3r/Support/TreeSupportCommon.hpp | 18 ++++++ src/libslic3r/Surface.cpp | 5 ++ src/libslic3r/Surface.hpp | 8 +++ src/libslic3r/SurfaceCollection.cpp | 10 ++++ src/libslic3r/SurfaceCollection.hpp | 4 ++ src/libslic3r/SurfaceMesh.hpp | 5 ++ src/libslic3r/Tesselate.cpp | 9 +++ src/libslic3r/Tesselate.hpp | 1 + src/libslic3r/TextConfiguration.hpp | 2 + .../TextureBake/TextureBakeDebug.cpp | 8 +++ .../TextureBake/TextureBakeDebug.hpp | 2 + .../TextureBake/TextureBakeDecimate.cpp | 6 ++ .../TextureBake/TextureBakeDecimate.hpp | 1 + .../TextureBake/TextureBakeDisplace.cpp | 7 +++ .../TextureBake/TextureBakeDisplace.hpp | 1 + src/libslic3r/TextureBake/TextureBakeFlip.cpp | 7 +++ src/libslic3r/TextureBake/TextureBakeFlip.hpp | 1 + .../TextureBake/TextureBakeIndex.cpp | 3 + .../TextureBake/TextureBakeIndex.hpp | 2 + src/libslic3r/TextureBake/TextureBakeMesh.cpp | 5 ++ src/libslic3r/TextureBake/TextureBakeMesh.hpp | 2 + .../TextureBake/TextureBakePipeline.cpp | 15 +++++ .../TextureBake/TextureBakePipeline.hpp | 2 + .../TextureBake/TextureBakeRegularize.cpp | 7 +++ .../TextureBake/TextureBakeRegularize.hpp | 1 + .../TextureBake/TextureBakeRelocate.cpp | 6 ++ .../TextureBake/TextureBakeRelocate.hpp | 1 + .../TextureBake/TextureBakeRepair.cpp | 6 ++ .../TextureBake/TextureBakeRepair.hpp | 1 + .../TextureBake/TextureBakeSubdivide.cpp | 8 +++ .../TextureBake/TextureBakeSubdivide.hpp | 3 + src/libslic3r/TextureDisplacement.cpp | 11 ++++ src/libslic3r/TextureDisplacement.hpp | 3 + src/libslic3r/TexturePainting.cpp | 10 ++++ src/libslic3r/TextureToColor/CgalUtils.hpp | 2 + src/libslic3r/TextureToColor/ColorUtils.cpp | 22 ++++++++ src/libslic3r/TextureToColor/ColorUtils.hpp | 5 ++ src/libslic3r/TextureToColor/Repair.hpp | 4 ++ .../TextureToColor/TextureToColor.cpp | 13 +++++ .../TextureToColor/TextureToColor.hpp | 5 ++ src/libslic3r/TextureToColor/TriMesh.hpp | 3 + src/libslic3r/Thread.cpp | 8 +++ src/libslic3r/Thread.hpp | 1 + src/libslic3r/Time.cpp | 6 ++ src/libslic3r/Timer.cpp | 2 + src/libslic3r/Timer.hpp | 2 + src/libslic3r/TriangleMesh.cpp | 15 +++++ src/libslic3r/TriangleMesh.hpp | 5 ++ src/libslic3r/TriangleMeshDeal.cpp | 2 + src/libslic3r/TriangleMeshSlicer.cpp | 14 +++++ src/libslic3r/TriangleMeshSlicer.hpp | 6 ++ src/libslic3r/TriangleSelector.cpp | 19 +++++++ src/libslic3r/TriangleSelector.hpp | 11 ++++ src/libslic3r/TriangleSetSampling.cpp | 5 ++ src/libslic3r/TriangleSetSampling.hpp | 2 + src/libslic3r/TriangulateWall.hpp | 4 ++ src/libslic3r/Triangulation.cpp | 17 ++++++ src/libslic3r/Triangulation.hpp | 2 + src/libslic3r/Utils.hpp | 15 +++++ src/libslic3r/VariableWidth.cpp | 12 ++++ src/libslic3r/VariableWidth.hpp | 2 + src/libslic3r/Zipper.cpp | 5 ++ src/libslic3r/Zipper.hpp | 2 + src/libslic3r/calib.cpp | 14 +++++ src/libslic3r/calib.hpp | 6 ++ src/libslic3r/format.hpp | 1 + src/libslic3r/libslic3r.h | 6 ++ src/libslic3r/miniz_extension.cpp | 8 +++ src/libslic3r/utils.cpp | 38 +++++++++++++ 489 files changed, 4156 insertions(+), 1 deletion(-) diff --git a/.clang-tidy b/.clang-tidy index f45561badb..3f0aaa8bde 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -14,7 +14,9 @@ CheckOptions: # admesh's stl.h, which the include path also exposes without its directory. # Clipper's own clipper.hpp is only included through libslic3r/clipper.hpp or # clipper_z.hpp, which configure it first, and Boost.Polygon's headers only - # work through boost/polygon/polygon.hpp or voronoi.hpp. minilzo's config + # work through boost/polygon/polygon.hpp or voronoi.hpp. Clipper2's headers + # are included through clipper2/clipper.h, or clipper2_z.hpp, which defines + # USINGZ first. minilzo's config # headers are internal to minilzo.h. # FFmpeg's C headers are left alone because they are only included inside # extern "C", which an inserted include would miss. OS-specific headers (GLib, @@ -59,4 +61,5 @@ CheckOptions: png(lib)?conf\.h; mcut[/\\]platform\.h; boost[/\\]polygon[/\\].*; + clipper2[/\\]clipper\.(core|engine|offset|minkowski|rectclip|export|triangulation|version)\.h; lzo(conf|defs)\.h diff --git a/src/libslic3r/AABBMesh.cpp b/src/libslic3r/AABBMesh.cpp index be026f69d7..bcd34546ed 100644 --- a/src/libslic3r/AABBMesh.cpp +++ b/src/libslic3r/AABBMesh.cpp @@ -1,10 +1,19 @@ #include "AABBMesh.hpp" +#include "Point.hpp" +#include #include +#include +#include +#include +#include +#include #include #include +#include #include +#include #ifdef SLIC3R_HOLE_RAYCASTER #include diff --git a/src/libslic3r/AABBMesh.hpp b/src/libslic3r/AABBMesh.hpp index 9998f504b5..c9195b2105 100644 --- a/src/libslic3r/AABBMesh.hpp +++ b/src/libslic3r/AABBMesh.hpp @@ -1,6 +1,10 @@ #ifndef PRUSASLICER_AABBMESH_H #define PRUSASLICER_AABBMESH_H +#include +#include +#include +#include #include #include diff --git a/src/libslic3r/AABBTreeIndirect.hpp b/src/libslic3r/AABBTreeIndirect.hpp index 483ca8efc4..5fd83e0be9 100644 --- a/src/libslic3r/AABBTreeIndirect.hpp +++ b/src/libslic3r/AABBTreeIndirect.hpp @@ -6,15 +6,20 @@ #ifndef slic3r_AABBTreeIndirect_hpp_ #define slic3r_AABBTreeIndirect_hpp_ +#include #include +#include +#include #include #include +#include #include #include #include "BoundingBox.hpp" #include "Utils.hpp" // for next_highest_power_of_2() +#include "libslic3r.h" // Definition of the ray intersection hit structure. #include diff --git a/src/libslic3r/AABBTreeLines.hpp b/src/libslic3r/AABBTreeLines.hpp index 52c4cdf545..de0c88aeb1 100644 --- a/src/libslic3r/AABBTreeLines.hpp +++ b/src/libslic3r/AABBTreeLines.hpp @@ -6,9 +6,15 @@ #include "libslic3r.h" #include "libslic3r/AABBTreeIndirect.hpp" #include "libslic3r/Line.hpp" +#include #include +#include #include +#include +#include +#include #include +#include #include namespace Slic3r { diff --git a/src/libslic3r/AStar.hpp b/src/libslic3r/AStar.hpp index a7d9e7b8f9..e79295c503 100644 --- a/src/libslic3r/AStar.hpp +++ b/src/libslic3r/AStar.hpp @@ -1,7 +1,11 @@ #ifndef ASTAR_HPP #define ASTAR_HPP +#include #include // std::isinf() is here +#include +#include +#include #include #include "libslic3r/MutablePriorityQueue.hpp" diff --git a/src/libslic3r/Algorithm/LineSplit.cpp b/src/libslic3r/Algorithm/LineSplit.cpp index d91514dbf9..789ca39be6 100644 --- a/src/libslic3r/Algorithm/LineSplit.cpp +++ b/src/libslic3r/Algorithm/LineSplit.cpp @@ -1,8 +1,20 @@ #include "LineSplit.hpp" #include "AABBTreeLines.hpp" +#include "libslic3r/ClipperUtils.hpp" +#include "libslic3r/ClipperZUtils.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/Line.hpp" +#include "libslic3r/ExPolygon.hpp" #include "SVG.hpp" #include "Utils.hpp" +#include +#include "libslic3r/libslic3r.h" +#include +#include +#include +#include +#include //#define DEBUG_SPLIT_LINE diff --git a/src/libslic3r/Algorithm/LineSplit.hpp b/src/libslic3r/Algorithm/LineSplit.hpp index 80f64e684c..098ff72d09 100644 --- a/src/libslic3r/Algorithm/LineSplit.hpp +++ b/src/libslic3r/Algorithm/LineSplit.hpp @@ -2,6 +2,12 @@ #define SRC_LIBSLIC3R_ALGORITHM_LINE_SPLIT_HPP_ #include "ClipperZUtils.hpp" +#include "libslic3r/libslic3r.h" +#include "libslic3r/Point.hpp" +#include +#include +#include +#include "libslic3r/ExPolygon.hpp" namespace Slic3r { namespace Algorithm { diff --git a/src/libslic3r/Algorithm/RegionExpansion.cpp b/src/libslic3r/Algorithm/RegionExpansion.cpp index 2cfb15ce6d..a4558a3939 100644 --- a/src/libslic3r/Algorithm/RegionExpansion.cpp +++ b/src/libslic3r/Algorithm/RegionExpansion.cpp @@ -1,11 +1,25 @@ #include "RegionExpansion.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/ExPolygon.hpp" +#include "libslic3r/libslic3r.h" +#include "libslic3r/Polyline.hpp" +#include "libslic3r/Polygon.hpp" +#include +#include +#include +#include +#include +#include #include #include #include #include +#include #include +#include +#include namespace Slic3r { namespace Algorithm { diff --git a/src/libslic3r/Algorithm/RegionExpansion.hpp b/src/libslic3r/Algorithm/RegionExpansion.hpp index a3e5ddaa38..b493b72d5c 100644 --- a/src/libslic3r/Algorithm/RegionExpansion.hpp +++ b/src/libslic3r/Algorithm/RegionExpansion.hpp @@ -1,10 +1,12 @@ #ifndef SRC_LIBSLIC3R_ALGORITHM_REGION_EXPANSION_HPP_ #define SRC_LIBSLIC3R_ALGORITHM_REGION_EXPANSION_HPP_ +#include #include #include #include #include +#include namespace Slic3r { namespace Algorithm { diff --git a/src/libslic3r/AnyPtr.hpp b/src/libslic3r/AnyPtr.hpp index c40d10093e..7c0f28b834 100644 --- a/src/libslic3r/AnyPtr.hpp +++ b/src/libslic3r/AnyPtr.hpp @@ -1,6 +1,7 @@ #ifndef ANYPTR_HPP #define ANYPTR_HPP +#include #include #include #include diff --git a/src/libslic3r/AppConfig.cpp b/src/libslic3r/AppConfig.cpp index 061665fbe6..663072d866 100644 --- a/src/libslic3r/AppConfig.cpp +++ b/src/libslic3r/AppConfig.cpp @@ -1,3 +1,8 @@ +#include "Technologies.hpp" +#include "Config.hpp" +#include "PrintConfig.hpp" +#include "calib.hpp" +#include "Semver.hpp" #include "libslic3r/libslic3r.h" #include "libslic3r/Utils.hpp" #include "libslic3r/Format/DRC.hpp" @@ -9,9 +14,18 @@ #include "LocalesUtils.hpp" #include "Thread.hpp" #include "format.hpp" +#include "libslic3r_version.h" #include "nlohmann/json.hpp" #include +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include diff --git a/src/libslic3r/AppConfig.hpp b/src/libslic3r/AppConfig.hpp index 1486cb6f9f..a08c018bb2 100644 --- a/src/libslic3r/AppConfig.hpp +++ b/src/libslic3r/AppConfig.hpp @@ -5,8 +5,11 @@ #include #include #include +#include "LocalesUtils.hpp" #include "nlohmann/json.hpp" #include +#include +#include #include "libslic3r/Config.hpp" #include "libslic3r/Semver.hpp" diff --git a/src/libslic3r/Arachne/BeadingStrategy/BeadingStrategy.cpp b/src/libslic3r/Arachne/BeadingStrategy/BeadingStrategy.cpp index 5ade0c9207..119ff8dd99 100644 --- a/src/libslic3r/Arachne/BeadingStrategy/BeadingStrategy.cpp +++ b/src/libslic3r/Arachne/BeadingStrategy/BeadingStrategy.cpp @@ -2,7 +2,9 @@ //CuraEngine is released under the terms of the AGPLv3 or higher. #include "BeadingStrategy.hpp" +#include "libslic3r/libslic3r.h" #include "libslic3r/Point.hpp" +#include namespace Slic3r::Arachne { diff --git a/src/libslic3r/Arachne/BeadingStrategy/BeadingStrategyFactory.cpp b/src/libslic3r/Arachne/BeadingStrategy/BeadingStrategyFactory.cpp index d6cb1331c1..242d54e63b 100644 --- a/src/libslic3r/Arachne/BeadingStrategy/BeadingStrategyFactory.cpp +++ b/src/libslic3r/Arachne/BeadingStrategy/BeadingStrategyFactory.cpp @@ -12,6 +12,7 @@ #include "DistributedBeadingStrategy.hpp" #include "RedistributeBeadingStrategy.hpp" #include "OuterWallInsetBeadingStrategy.hpp" +#include "libslic3r/libslic3r.h" #include "libslic3r/Arachne/BeadingStrategy/BeadingStrategy.hpp" namespace Slic3r::Arachne { diff --git a/src/libslic3r/Arachne/BeadingStrategy/DistributedBeadingStrategy.cpp b/src/libslic3r/Arachne/BeadingStrategy/DistributedBeadingStrategy.cpp index 7234015ae2..966682e054 100644 --- a/src/libslic3r/Arachne/BeadingStrategy/DistributedBeadingStrategy.cpp +++ b/src/libslic3r/Arachne/BeadingStrategy/DistributedBeadingStrategy.cpp @@ -6,6 +6,7 @@ #include #include "DistributedBeadingStrategy.hpp" +#include "libslic3r/libslic3r.h" #include "libslic3r/Arachne/BeadingStrategy/BeadingStrategy.hpp" namespace Slic3r::Arachne diff --git a/src/libslic3r/Arachne/BeadingStrategy/LimitedBeadingStrategy.cpp b/src/libslic3r/Arachne/BeadingStrategy/LimitedBeadingStrategy.cpp index 24e04c3f26..0c570bf307 100644 --- a/src/libslic3r/Arachne/BeadingStrategy/LimitedBeadingStrategy.cpp +++ b/src/libslic3r/Arachne/BeadingStrategy/LimitedBeadingStrategy.cpp @@ -3,10 +3,12 @@ #include #include +#include #include #include #include "LimitedBeadingStrategy.hpp" +#include "libslic3r/libslic3r.h" #include "libslic3r/Point.hpp" #include "libslic3r/Arachne/BeadingStrategy/BeadingStrategy.hpp" diff --git a/src/libslic3r/Arachne/BeadingStrategy/OuterWallInsetBeadingStrategy.cpp b/src/libslic3r/Arachne/BeadingStrategy/OuterWallInsetBeadingStrategy.cpp index ac9edb1dba..1b7bd7e342 100644 --- a/src/libslic3r/Arachne/BeadingStrategy/OuterWallInsetBeadingStrategy.cpp +++ b/src/libslic3r/Arachne/BeadingStrategy/OuterWallInsetBeadingStrategy.cpp @@ -6,6 +6,7 @@ #include #include +#include "libslic3r/libslic3r.h" #include "libslic3r/Arachne/BeadingStrategy/BeadingStrategy.hpp" namespace Slic3r::Arachne diff --git a/src/libslic3r/Arachne/BeadingStrategy/RedistributeBeadingStrategy.cpp b/src/libslic3r/Arachne/BeadingStrategy/RedistributeBeadingStrategy.cpp index 7307781840..e6a3c337ae 100644 --- a/src/libslic3r/Arachne/BeadingStrategy/RedistributeBeadingStrategy.cpp +++ b/src/libslic3r/Arachne/BeadingStrategy/RedistributeBeadingStrategy.cpp @@ -7,6 +7,7 @@ #include #include +#include "libslic3r/libslic3r.h" #include "libslic3r/Arachne/BeadingStrategy/BeadingStrategy.hpp" namespace Slic3r::Arachne diff --git a/src/libslic3r/Arachne/BeadingStrategy/WideningBeadingStrategy.cpp b/src/libslic3r/Arachne/BeadingStrategy/WideningBeadingStrategy.cpp index ab8b070604..0ceb2d9dd3 100644 --- a/src/libslic3r/Arachne/BeadingStrategy/WideningBeadingStrategy.cpp +++ b/src/libslic3r/Arachne/BeadingStrategy/WideningBeadingStrategy.cpp @@ -4,8 +4,11 @@ #include "WideningBeadingStrategy.hpp" #include +#include #include +#include +#include "libslic3r/libslic3r.h" #include "libslic3r/Arachne/BeadingStrategy/BeadingStrategy.hpp" namespace Slic3r::Arachne diff --git a/src/libslic3r/Arachne/SkeletalTrapezoidation.cpp b/src/libslic3r/Arachne/SkeletalTrapezoidation.cpp index da5c7357c1..82ca92e090 100644 --- a/src/libslic3r/Arachne/SkeletalTrapezoidation.cpp +++ b/src/libslic3r/Arachne/SkeletalTrapezoidation.cpp @@ -10,10 +10,18 @@ #include #include #include +#include +#include +#include #include #include #include +#include +#include "libslic3r/Point.hpp" +#include "libslic3r/libslic3r.h" +#include "libslic3r/Polygon.hpp" +#include "libslic3r/Arachne/BeadingStrategy/BeadingStrategy.hpp" #include "libslic3r/Geometry/VoronoiUtils.hpp" #include "ankerl/unordered_dense.h" #include "libslic3r/Arachne/SkeletalTrapezoidationEdge.hpp" diff --git a/src/libslic3r/Arachne/SkeletalTrapezoidationEdge.hpp b/src/libslic3r/Arachne/SkeletalTrapezoidationEdge.hpp index e0d3fe81d2..9eced8be93 100644 --- a/src/libslic3r/Arachne/SkeletalTrapezoidationEdge.hpp +++ b/src/libslic3r/Arachne/SkeletalTrapezoidationEdge.hpp @@ -4,10 +4,12 @@ #ifndef SKELETAL_TRAPEZOIDATION_EDGE_H #define SKELETAL_TRAPEZOIDATION_EDGE_H +#include #include // smart pointers #include #include +#include "libslic3r/libslic3r.h" #include "utils/ExtrusionJunction.hpp" namespace Slic3r::Arachne diff --git a/src/libslic3r/Arachne/SkeletalTrapezoidationGraph.cpp b/src/libslic3r/Arachne/SkeletalTrapezoidationGraph.cpp index f7a30c32db..4621a04616 100644 --- a/src/libslic3r/Arachne/SkeletalTrapezoidationGraph.cpp +++ b/src/libslic3r/Arachne/SkeletalTrapezoidationGraph.cpp @@ -6,11 +6,17 @@ #include #include #include +#include #include #include #include +#include +#include #include "../Line.hpp" +#include "libslic3r/Arachne/utils/HalfEdge.hpp" +#include "libslic3r/libslic3r.h" +#include "libslic3r/Arachne/utils/HalfEdgeNode.hpp" #include "libslic3r/Arachne/SkeletalTrapezoidationEdge.hpp" #include "libslic3r/Arachne/SkeletalTrapezoidationJoint.hpp" #include "libslic3r/Point.hpp" diff --git a/src/libslic3r/Arachne/SkeletalTrapezoidationJoint.hpp b/src/libslic3r/Arachne/SkeletalTrapezoidationJoint.hpp index 346d511165..3eab9c0916 100644 --- a/src/libslic3r/Arachne/SkeletalTrapezoidationJoint.hpp +++ b/src/libslic3r/Arachne/SkeletalTrapezoidationJoint.hpp @@ -6,6 +6,7 @@ #include // smart pointers +#include "libslic3r/libslic3r.h" #include "libslic3r/Arachne/BeadingStrategy/BeadingStrategy.hpp" namespace Slic3r::Arachne diff --git a/src/libslic3r/Arachne/WallToolPaths.cpp b/src/libslic3r/Arachne/WallToolPaths.cpp index d1f0341bda..a116674daa 100644 --- a/src/libslic3r/Arachne/WallToolPaths.cpp +++ b/src/libslic3r/Arachne/WallToolPaths.cpp @@ -2,12 +2,31 @@ // CuraEngine is released under the terms of the AGPLv3 or higher. #include //For std::partition_copy and std::min_element. +#include +#include +#include +#include +#include +#include +#include #include #include "WallToolPaths.hpp" +#include "libslic3r/PrintConfig.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/Polygon.hpp" +#include "libslic3r/Arachne/utils/ExtrusionLine.hpp" +#include "libslic3r/Line.hpp" +#include "libslic3r/Arachne/utils/PolygonsPointIndex.hpp" +#include "libslic3r/Flow.hpp" +#include "libslic3r/Arachne/BeadingStrategy/BeadingStrategyFactory.hpp" +#include "libslic3r/Arachne/utils/ExtrusionJunction.hpp" +#include "libslic3r/Arachne/utils/SparsePointGrid.hpp" +#include "libslic3r/Arachne/utils/SquareGrid.hpp" #include "SkeletalTrapezoidation.hpp" #include "../ClipperUtils.hpp" +#include "libslic3r/libslic3r.h" #include "utils/linearAlg2D.hpp" #include "EdgeGrid.hpp" #include "utils/SparseLineGrid.hpp" @@ -17,6 +36,8 @@ #include "Utils.hpp" #include +#include +#include //#define ARACHNE_STITCH_PATCH_DEBUG diff --git a/src/libslic3r/Arachne/WallToolPaths.hpp b/src/libslic3r/Arachne/WallToolPaths.hpp index d7120a088c..cfec7284eb 100644 --- a/src/libslic3r/Arachne/WallToolPaths.hpp +++ b/src/libslic3r/Arachne/WallToolPaths.hpp @@ -4,10 +4,16 @@ #ifndef CURAENGINE_WALLTOOLPATHS_H #define CURAENGINE_WALLTOOLPATHS_H +#include +#include #include #include +#include +#include #include "BeadingStrategy/BeadingStrategyFactory.hpp" +#include "libslic3r/libslic3r.h" +#include "libslic3r/Point.hpp" #include "utils/ExtrusionLine.hpp" #include "../Polygon.hpp" #include "../PrintConfig.hpp" diff --git a/src/libslic3r/Arachne/utils/ExtrusionJunction.hpp b/src/libslic3r/Arachne/utils/ExtrusionJunction.hpp index 625bf9b727..aebfd81347 100644 --- a/src/libslic3r/Arachne/utils/ExtrusionJunction.hpp +++ b/src/libslic3r/Arachne/utils/ExtrusionJunction.hpp @@ -6,6 +6,9 @@ #define UTILS_EXTRUSION_JUNCTION_H #include "../../Point.hpp" +#include "libslic3r/libslic3r.h" +#include +#include namespace Slic3r::Arachne { diff --git a/src/libslic3r/Arachne/utils/ExtrusionLine.cpp b/src/libslic3r/Arachne/utils/ExtrusionLine.cpp index 2beaa4f92f..c1c29c50e9 100644 --- a/src/libslic3r/Arachne/utils/ExtrusionLine.cpp +++ b/src/libslic3r/Arachne/utils/ExtrusionLine.cpp @@ -2,11 +2,17 @@ //CuraEngine is released under the terms of the AGPLv3 or higher. #include +#include #include +#include #include +#include #include "ExtrusionLine.hpp" #include "../../VariableWidth.hpp" +#include "libslic3r/ClipperZUtils.hpp" +#include "libslic3r/libslic3r.h" +#include "libslic3r/Point.hpp" #include "libslic3r/Arachne/utils/ExtrusionJunction.hpp" #include "libslic3r/BoundingBox.hpp" #include "libslic3r/ExtrusionEntity.hpp" diff --git a/src/libslic3r/Arachne/utils/ExtrusionLine.hpp b/src/libslic3r/Arachne/utils/ExtrusionLine.hpp index 8b4a753f5e..421f73e0e8 100644 --- a/src/libslic3r/Arachne/utils/ExtrusionLine.hpp +++ b/src/libslic3r/Arachne/utils/ExtrusionLine.hpp @@ -22,6 +22,7 @@ #include "../../BoundingBox.hpp" #include "../../ExtrusionEntity.hpp" #include "../../Flow.hpp" +#include "libslic3r/libslic3r.h" #include "libslic3r/Point.hpp" namespace Slic3r { diff --git a/src/libslic3r/Arachne/utils/PolygonsPointIndex.hpp b/src/libslic3r/Arachne/utils/PolygonsPointIndex.hpp index 04f017f86a..2ac32b9366 100644 --- a/src/libslic3r/Arachne/utils/PolygonsPointIndex.hpp +++ b/src/libslic3r/Arachne/utils/PolygonsPointIndex.hpp @@ -4,6 +4,9 @@ #ifndef UTILS_POLYGONS_POINT_INDEX_H #define UTILS_POLYGONS_POINT_INDEX_H +#include +#include +#include #include #include "../../Point.hpp" diff --git a/src/libslic3r/Arachne/utils/PolygonsSegmentIndex.hpp b/src/libslic3r/Arachne/utils/PolygonsSegmentIndex.hpp index 3258b41c7d..2df641c085 100644 --- a/src/libslic3r/Arachne/utils/PolygonsSegmentIndex.hpp +++ b/src/libslic3r/Arachne/utils/PolygonsSegmentIndex.hpp @@ -6,7 +6,10 @@ #include +#include "libslic3r/Polygon.hpp" +#include "libslic3r/Point.hpp" #include "PolygonsPointIndex.hpp" +#include "libslic3r/libslic3r.h" namespace Slic3r::Arachne { diff --git a/src/libslic3r/Arachne/utils/PolylineStitcher.cpp b/src/libslic3r/Arachne/utils/PolylineStitcher.cpp index 0abf63ac10..e011e5db51 100644 --- a/src/libslic3r/Arachne/utils/PolylineStitcher.cpp +++ b/src/libslic3r/Arachne/utils/PolylineStitcher.cpp @@ -4,6 +4,7 @@ #include "PolylineStitcher.hpp" #include "ExtrusionLine.hpp" +#include "libslic3r/Point.hpp" #include "libslic3r/Arachne/utils/PolygonsPointIndex.hpp" #include "libslic3r/Polygon.hpp" diff --git a/src/libslic3r/Arachne/utils/SparseGrid.hpp b/src/libslic3r/Arachne/utils/SparseGrid.hpp index 45876fb9a7..ce5bac81bc 100644 --- a/src/libslic3r/Arachne/utils/SparseGrid.hpp +++ b/src/libslic3r/Arachne/utils/SparseGrid.hpp @@ -6,11 +6,14 @@ #define UTILS_SPARSE_GRID_H #include +#include +#include #include #include #include "../../Point.hpp" #include "SquareGrid.hpp" +#include "libslic3r/libslic3r.h" namespace Slic3r::Arachne { diff --git a/src/libslic3r/Arachne/utils/SparseLineGrid.hpp b/src/libslic3r/Arachne/utils/SparseLineGrid.hpp index 0b38988f92..be3c430749 100644 --- a/src/libslic3r/Arachne/utils/SparseLineGrid.hpp +++ b/src/libslic3r/Arachne/utils/SparseLineGrid.hpp @@ -6,10 +6,15 @@ #define UTILS_SPARSE_LINE_GRID_H #include +#include +#include +#include #include #include +#include "libslic3r/Point.hpp" #include "SparseGrid.hpp" +#include "libslic3r/libslic3r.h" namespace Slic3r::Arachne { diff --git a/src/libslic3r/Arachne/utils/SparsePointGrid.hpp b/src/libslic3r/Arachne/utils/SparsePointGrid.hpp index 127380b3eb..ba1898a0ae 100644 --- a/src/libslic3r/Arachne/utils/SparsePointGrid.hpp +++ b/src/libslic3r/Arachne/utils/SparsePointGrid.hpp @@ -6,9 +6,13 @@ #define UTILS_SPARSE_POINT_GRID_H #include +#include +#include #include +#include "libslic3r/Point.hpp" #include "SparseGrid.hpp" +#include "libslic3r/libslic3r.h" namespace Slic3r::Arachne { diff --git a/src/libslic3r/Arachne/utils/SquareGrid.cpp b/src/libslic3r/Arachne/utils/SquareGrid.cpp index 1af9910426..dcbd018f1b 100644 --- a/src/libslic3r/Arachne/utils/SquareGrid.cpp +++ b/src/libslic3r/Arachne/utils/SquareGrid.cpp @@ -4,7 +4,11 @@ #include "SquareGrid.hpp" #include +#include +#include +#include +#include "libslic3r/libslic3r.h" #include "libslic3r/Point.hpp" using namespace Slic3r::Arachne; diff --git a/src/libslic3r/Arachne/utils/linearAlg2D.hpp b/src/libslic3r/Arachne/utils/linearAlg2D.hpp index 599d3fa835..632032da8f 100644 --- a/src/libslic3r/Arachne/utils/linearAlg2D.hpp +++ b/src/libslic3r/Arachne/utils/linearAlg2D.hpp @@ -5,6 +5,9 @@ #define UTILS_LINEAR_ALG_2D_H #include "../../Point.hpp" +#include +#include +#include namespace Slic3r::Arachne::LinearAlg2D { diff --git a/src/libslic3r/ArcFitter.cpp b/src/libslic3r/ArcFitter.cpp index 46dd12931e..8bd1bc4fe6 100644 --- a/src/libslic3r/ArcFitter.cpp +++ b/src/libslic3r/ArcFitter.cpp @@ -1,8 +1,14 @@ #include "ArcFitter.hpp" +#include "Point.hpp" +#include "Circle.hpp" +#include "MultiPoint.hpp" #include "Polyline.hpp" +#include "libslic3r.h" #include #include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/ArcFitter.hpp b/src/libslic3r/ArcFitter.hpp index f2b2ee49d8..03d38abc85 100644 --- a/src/libslic3r/ArcFitter.hpp +++ b/src/libslic3r/ArcFitter.hpp @@ -2,6 +2,9 @@ #define slic3r_ArcFitter_hpp_ #include "Circle.hpp" +#include +#include "Point.hpp" +#include namespace Slic3r { diff --git a/src/libslic3r/Arrange.cpp b/src/libslic3r/Arrange.cpp index 9020aba8ba..8a2cace499 100644 --- a/src/libslic3r/Arrange.cpp +++ b/src/libslic3r/Arrange.cpp @@ -1,9 +1,28 @@ #include "Arrange.hpp" +#include "ExPolygon.hpp" +#include "Point.hpp" #include "Print.hpp" #include "BoundingBox.hpp" +#include "PrintConfig.hpp" #include "libslic3r.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include "libnest2d/common.hpp" +#include "libnest2d/geometry_traits_nfp.hpp" +#include "libnest2d/nester.hpp" +#include "libnest2d/geometry_traits.hpp" #include #include #include @@ -13,6 +32,11 @@ #include #include +#include +#include +#include +#include +#include #if defined(_MSC_VER) && defined(__clang__) #define BOOST_NO_CXX17_HDR_STRING_VIEW diff --git a/src/libslic3r/Arrange.hpp b/src/libslic3r/Arrange.hpp index ad125aee7d..ea89640a7b 100644 --- a/src/libslic3r/Arrange.hpp +++ b/src/libslic3r/Arrange.hpp @@ -2,8 +2,17 @@ #define ARRANGE_HPP #include "ExPolygon.hpp" +#include "Point.hpp" +#include "Polygon.hpp" #include "PrintConfig.hpp" #include "Print.hpp" +#include +#include "libslic3r.h" +#include +#include +#include +#include +#include #define BED_SHRINK_SEQ_PRINT 5 diff --git a/src/libslic3r/BoundingBox.cpp b/src/libslic3r/BoundingBox.cpp index cf5441dace..dc4f461dc7 100644 --- a/src/libslic3r/BoundingBox.cpp +++ b/src/libslic3r/BoundingBox.cpp @@ -1,5 +1,8 @@ #include "BoundingBox.hpp" +#include "Point.hpp" #include "Polygon.hpp" +#include "libslic3r.h" +#include #include #include diff --git a/src/libslic3r/BoundingBox.hpp b/src/libslic3r/BoundingBox.hpp index 8aac3f1cb9..03f6a8f9bb 100644 --- a/src/libslic3r/BoundingBox.hpp +++ b/src/libslic3r/BoundingBox.hpp @@ -5,7 +5,10 @@ #include "Exception.hpp" #include "Point.hpp" #include "Polygon.hpp" +#include +#include #include +#include namespace Slic3r { diff --git a/src/libslic3r/BridgeDetector.cpp b/src/libslic3r/BridgeDetector.cpp index 321e066a8a..ad1b8bb6fb 100644 --- a/src/libslic3r/BridgeDetector.cpp +++ b/src/libslic3r/BridgeDetector.cpp @@ -1,7 +1,18 @@ #include "BridgeDetector.hpp" +#include "BoundingBox.hpp" #include "ClipperUtils.hpp" +#include "ExPolygon.hpp" #include "Geometry.hpp" +#include "libslic3r.h" +#include "Polygon.hpp" +#include "Line.hpp" +#include "Polyline.hpp" +#include "Point.hpp" #include +#include +#include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/BridgeDetector.hpp b/src/libslic3r/BridgeDetector.hpp index 1e5bb1a101..85982ed91c 100644 --- a/src/libslic3r/BridgeDetector.hpp +++ b/src/libslic3r/BridgeDetector.hpp @@ -9,7 +9,14 @@ #include "PrincipalComponents2D.hpp" #include "libslic3r.h" #include "ExPolygon.hpp" +#include +#include +#include #include +#include +#include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/Brim.cpp b/src/libslic3r/Brim.cpp index 8ba4dfb596..f48723cfef 100644 --- a/src/libslic3r/Brim.cpp +++ b/src/libslic3r/Brim.cpp @@ -1,18 +1,37 @@ +#include "BoundingBox.hpp" +#include "BrimEarsPoint.hpp" #include "ClipperUtils.hpp" #include "EdgeGrid.hpp" +#include "ExPolygon.hpp" +#include "Flow.hpp" +#include "Geometry.hpp" +#include "ExtrusionEntity.hpp" #include "Layer.hpp" +#include "Point.hpp" +#include "ObjectID.hpp" +#include "Polygon.hpp" +#include "Line.hpp" +#include "MultiPoint.hpp" +#include "Polyline.hpp" #include "Print.hpp" +#include "PrintBase.hpp" #include "ShortestPath.hpp" #include "libslic3r.h" #include "PrintConfig.hpp" #include "MaterialType.hpp" #include "Model.hpp" #include +#include +#include #include #include +#include +#include #include #include +#include +#include #ifndef NDEBUG // #define BRIM_DEBUG_TO_SVG diff --git a/src/libslic3r/Brim.hpp b/src/libslic3r/Brim.hpp index 0603af20cc..9279b1e023 100644 --- a/src/libslic3r/Brim.hpp +++ b/src/libslic3r/Brim.hpp @@ -4,8 +4,10 @@ #include "ExPolygon.hpp" #include "ObjectID.hpp" #include "Point.hpp" +#include "Polygon.hpp" #include +#include #include namespace Slic3r { diff --git a/src/libslic3r/BrimEarsPoint.hpp b/src/libslic3r/BrimEarsPoint.hpp index a859d54f23..020b03475a 100644 --- a/src/libslic3r/BrimEarsPoint.hpp +++ b/src/libslic3r/BrimEarsPoint.hpp @@ -1,7 +1,10 @@ #ifndef BRIMEARSPOINT_HPP #define BRIMEARSPOINT_HPP +#include +#include "libslic3r.h" #include +#include namespace Slic3r { diff --git a/src/libslic3r/BuildVolume.cpp b/src/libslic3r/BuildVolume.cpp index 15e6668bae..eb5a447249 100644 --- a/src/libslic3r/BuildVolume.cpp +++ b/src/libslic3r/BuildVolume.cpp @@ -1,11 +1,24 @@ #include "BuildVolume.hpp" +#include "BoundingBox.hpp" #include "ClipperUtils.hpp" +#include "Polygon.hpp" +#include "Geometry/Circle.hpp" +#include "ExtrusionEntity.hpp" #include "TriangleMesh.hpp" #include "Geometry/ConvexHull.hpp" #include "GCode/GCodeProcessor.hpp" #include "Point.hpp" +#include "libslic3r.h" +#include #include +#include +#include +#include +#include +#include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/BuildVolume.hpp b/src/libslic3r/BuildVolume.hpp index 6f53fdd704..8c53242fe8 100644 --- a/src/libslic3r/BuildVolume.hpp +++ b/src/libslic3r/BuildVolume.hpp @@ -5,9 +5,13 @@ #include "Geometry/Circle.hpp" #include "Polygon.hpp" #include "BoundingBox.hpp" +#include "libslic3r.h" #include +#include #include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/CAD/CadDocument.cpp b/src/libslic3r/CAD/CadDocument.cpp index ea20ffd966..b4a89f6a69 100644 --- a/src/libslic3r/CAD/CadDocument.cpp +++ b/src/libslic3r/CAD/CadDocument.cpp @@ -1,8 +1,14 @@ #include "libslic3r/CAD/CadDocument.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/CAD/SketchEngine.hpp" +#include "libslic3r/CAD/GeometryEngine.hpp" #include "libslic3r/CAD/SketchConstraints.hpp" #include "libslic3r/CAD/SketchSolver.hpp" #include "libslic3r/CAD/SketchImport.hpp" // transform_regions for imported art +#include +#include +#include #include #include @@ -26,6 +32,10 @@ #include #include #include +#include +#include +#include +#include #include #include #include @@ -69,12 +79,18 @@ #include #include #include +#include +#include +#include #include #include #include #include #include +#include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/CAD/CadDocument.hpp b/src/libslic3r/CAD/CadDocument.hpp index f62536384a..216be818bd 100644 --- a/src/libslic3r/CAD/CadDocument.hpp +++ b/src/libslic3r/CAD/CadDocument.hpp @@ -1,16 +1,20 @@ #ifndef slic3r_CadDocument_hpp_ #define slic3r_CadDocument_hpp_ +#include "libslic3r/Point.hpp" #include "libslic3r/TriangleMesh.hpp" #include "libslic3r/CAD/SketchEngine.hpp" #include "libslic3r/CAD/GeometryEngine.hpp" // FaceGroup #include "libslic3r/Color.hpp" // ColorRGBA (per-body display colour override) +#include #include #include #include #include #include +#include +#include #include #include #include diff --git a/src/libslic3r/CAD/GeometryEngine.cpp b/src/libslic3r/CAD/GeometryEngine.cpp index 2b923938c2..1e5896e67a 100644 --- a/src/libslic3r/CAD/GeometryEngine.cpp +++ b/src/libslic3r/CAD/GeometryEngine.cpp @@ -1,12 +1,25 @@ #include "libslic3r/CAD/GeometryEngine.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/TriangleMesh.hpp" #include #include #include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include +#include +#include #include #include #include @@ -43,6 +56,9 @@ #include #include #include +#include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/CAD/GeometryEngine.hpp b/src/libslic3r/CAD/GeometryEngine.hpp index f27a0f2f17..6c0fb51daf 100644 --- a/src/libslic3r/CAD/GeometryEngine.hpp +++ b/src/libslic3r/CAD/GeometryEngine.hpp @@ -1,6 +1,7 @@ #ifndef slic3r_GeometryEngine_hpp_ #define slic3r_GeometryEngine_hpp_ +#include "libslic3r/Point.hpp" #include "libslic3r/TriangleMesh.hpp" #include @@ -8,6 +9,8 @@ #include #include #include +#include +#include #include #include #include diff --git a/src/libslic3r/CAD/SketchConstraints.cpp b/src/libslic3r/CAD/SketchConstraints.cpp index 003afb4d63..acc82a0e42 100644 --- a/src/libslic3r/CAD/SketchConstraints.cpp +++ b/src/libslic3r/CAD/SketchConstraints.cpp @@ -1,6 +1,11 @@ #include "libslic3r/CAD/SketchConstraints.hpp" +#include "libslic3r/Point.hpp" +#include #include +#include #include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/CAD/SketchConstraints.hpp b/src/libslic3r/CAD/SketchConstraints.hpp index 88bcadc403..10c3efacc4 100644 --- a/src/libslic3r/CAD/SketchConstraints.hpp +++ b/src/libslic3r/CAD/SketchConstraints.hpp @@ -2,6 +2,7 @@ #define slic3r_SketchConstraints_hpp_ #include "libslic3r/Point.hpp" +#include #include #include diff --git a/src/libslic3r/CAD/SketchEngine.cpp b/src/libslic3r/CAD/SketchEngine.cpp index 5cc36ce648..ba92fa88bb 100644 --- a/src/libslic3r/CAD/SketchEngine.cpp +++ b/src/libslic3r/CAD/SketchEngine.cpp @@ -1,7 +1,18 @@ #include "libslic3r/CAD/SketchEngine.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/TriangleMesh.hpp" +#include +#include +#include +#include +#include +#include +#include +#include #include #include +#include #include #include @@ -47,8 +58,11 @@ #include #include #include +#include #include #include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/CAD/SketchImport.cpp b/src/libslic3r/CAD/SketchImport.cpp index 7140776603..32bcc608d3 100644 --- a/src/libslic3r/CAD/SketchImport.cpp +++ b/src/libslic3r/CAD/SketchImport.cpp @@ -1,5 +1,8 @@ #include "libslic3r/CAD/SketchImport.hpp" +#include "libslic3r/Polygon.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/EmbossShape.hpp" #include "libslic3r/Emboss.hpp" #include "libslic3r/NSVGUtils.hpp" #include "libslic3r/ExPolygon.hpp" @@ -9,6 +12,11 @@ #include #include +#include +#include +#include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/CAD/SketchInference.cpp b/src/libslic3r/CAD/SketchInference.cpp index cfeb2cd509..eca56ee5c1 100644 --- a/src/libslic3r/CAD/SketchInference.cpp +++ b/src/libslic3r/CAD/SketchInference.cpp @@ -1,7 +1,13 @@ #include "libslic3r/CAD/SketchInference.hpp" +#include "libslic3r/CAD/SketchEngine.hpp" +#include "libslic3r/Point.hpp" #include #include +#include +#include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/CAD/SketchInference.hpp b/src/libslic3r/CAD/SketchInference.hpp index be51f0240e..eb30af184a 100644 --- a/src/libslic3r/CAD/SketchInference.hpp +++ b/src/libslic3r/CAD/SketchInference.hpp @@ -1,7 +1,9 @@ #ifndef slic3r_SketchInference_hpp_ #define slic3r_SketchInference_hpp_ +#include "libslic3r/Point.hpp" #include "libslic3r/CAD/SketchEngine.hpp" +#include #include #include #include diff --git a/src/libslic3r/CAD/SketchSolver.cpp b/src/libslic3r/CAD/SketchSolver.cpp index 952f9de16f..03033d061e 100644 --- a/src/libslic3r/CAD/SketchSolver.cpp +++ b/src/libslic3r/CAD/SketchSolver.cpp @@ -1,5 +1,7 @@ #include "libslic3r/CAD/SketchSolver.hpp" +#include "libslic3r/CAD/SketchEngine.hpp" +#include #include #include @@ -7,6 +9,8 @@ #include #include #include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/CAD/ThreadStandards.cpp b/src/libslic3r/CAD/ThreadStandards.cpp index 2d113d01e6..11b6b24d8f 100644 --- a/src/libslic3r/CAD/ThreadStandards.cpp +++ b/src/libslic3r/CAD/ThreadStandards.cpp @@ -1,4 +1,6 @@ #include "libslic3r/CAD/ThreadStandards.hpp" +#include +#include namespace Slic3r { diff --git a/src/libslic3r/CSGMesh/CSGMesh.hpp b/src/libslic3r/CSGMesh/CSGMesh.hpp index ea16eae52a..bb5060b0d3 100644 --- a/src/libslic3r/CSGMesh/CSGMesh.hpp +++ b/src/libslic3r/CSGMesh/CSGMesh.hpp @@ -2,7 +2,11 @@ #define CSGMESH_HPP #include +#include +#include #include +#include +#include namespace Slic3r { namespace csg { diff --git a/src/libslic3r/CSGMesh/CSGMeshCopy.hpp b/src/libslic3r/CSGMesh/CSGMeshCopy.hpp index 78800f9bbb..f00b24b535 100644 --- a/src/libslic3r/CSGMesh/CSGMeshCopy.hpp +++ b/src/libslic3r/CSGMesh/CSGMeshCopy.hpp @@ -1,7 +1,11 @@ #ifndef CSGMESHCOPY_HPP #define CSGMESHCOPY_HPP +#include "libslic3r/AnyPtr.hpp" #include "CSGMesh.hpp" +#include "libslic3r/libslic3r.h" +#include +#include namespace Slic3r { namespace csg { diff --git a/src/libslic3r/CSGMesh/ModelToCSGMesh.hpp b/src/libslic3r/CSGMesh/ModelToCSGMesh.hpp index 5963b29109..2dcd2eef2e 100644 --- a/src/libslic3r/CSGMesh/ModelToCSGMesh.hpp +++ b/src/libslic3r/CSGMesh/ModelToCSGMesh.hpp @@ -3,9 +3,13 @@ #include "CSGMesh.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/TriangleMesh.hpp" #include "libslic3r/Model.hpp" #include "libslic3r/SLA/Hollowing.hpp" #include "libslic3r/MeshSplitImpl.hpp" +#include +#include namespace Slic3r { namespace csg { diff --git a/src/libslic3r/CSGMesh/PerformCSGMeshBooleans.hpp b/src/libslic3r/CSGMesh/PerformCSGMeshBooleans.hpp index df4a603382..091621ab84 100644 --- a/src/libslic3r/CSGMesh/PerformCSGMeshBooleans.hpp +++ b/src/libslic3r/CSGMesh/PerformCSGMeshBooleans.hpp @@ -1,11 +1,17 @@ #ifndef PERFORMCSGMESHBOOLEANS_HPP #define PERFORMCSGMESHBOOLEANS_HPP +#include #include +#include +#include #include +#include + #include "CSGMesh.hpp" +#include "libslic3r/libslic3r.h" #include "libslic3r/Execution/ExecutionTBB.hpp" //#include "libslic3r/Execution/ExecutionSeq.hpp" #include "libslic3r/MeshBoolean.hpp" diff --git a/src/libslic3r/CSGMesh/SliceCSGMesh.hpp b/src/libslic3r/CSGMesh/SliceCSGMesh.hpp index 9d7b9a077d..165e9af2b6 100644 --- a/src/libslic3r/CSGMesh/SliceCSGMesh.hpp +++ b/src/libslic3r/CSGMesh/SliceCSGMesh.hpp @@ -3,8 +3,16 @@ #include "CSGMesh.hpp" +#include +#include +#include #include +#include +#include +#include "libslic3r/ExPolygon.hpp" +#include "libslic3r/libslic3r.h" +#include "libslic3r/Execution/Execution.hpp" #include "libslic3r/TriangleMeshSlicer.hpp" #include "libslic3r/ClipperUtils.hpp" #include "libslic3r/Execution/ExecutionTBB.hpp" diff --git a/src/libslic3r/CSGMesh/TriangleMeshAdapter.hpp b/src/libslic3r/CSGMesh/TriangleMeshAdapter.hpp index 81b05b0463..d5586823fb 100644 --- a/src/libslic3r/CSGMesh/TriangleMeshAdapter.hpp +++ b/src/libslic3r/CSGMesh/TriangleMeshAdapter.hpp @@ -3,6 +3,7 @@ #include "CSGMesh.hpp" +#include "libslic3r/Point.hpp" #include "libslic3r/TriangleMesh.hpp" namespace Slic3r { namespace csg { diff --git a/src/libslic3r/Channel.hpp b/src/libslic3r/Channel.hpp index 68369af638..8ed9da9a88 100644 --- a/src/libslic3r/Channel.hpp +++ b/src/libslic3r/Channel.hpp @@ -1,6 +1,9 @@ #ifndef slic3r_Channel_hpp_ #define slic3r_Channel_hpp_ +#include +#include +#include #include #include #include diff --git a/src/libslic3r/Circle.cpp b/src/libslic3r/Circle.cpp index c277a67795..8d09ba8f89 100644 --- a/src/libslic3r/Circle.cpp +++ b/src/libslic3r/Circle.cpp @@ -2,8 +2,14 @@ #include #include +#include +#include +#include #include "Geometry.hpp" +#include "Point.hpp" +#include "Line.hpp" #include "Polygon.hpp" +#include "libslic3r.h" //BBS: Refer to ArcWelderLib for the arc fitting functions diff --git a/src/libslic3r/Circle.hpp b/src/libslic3r/Circle.hpp index c06b197e19..388c7488ea 100644 --- a/src/libslic3r/Circle.hpp +++ b/src/libslic3r/Circle.hpp @@ -3,6 +3,8 @@ #include "Point.hpp" #include "Line.hpp" +#include "libslic3r.h" +#include namespace Slic3r { diff --git a/src/libslic3r/ClipperUtils.cpp b/src/libslic3r/ClipperUtils.cpp index 88be185f8c..d80936515e 100644 --- a/src/libslic3r/ClipperUtils.cpp +++ b/src/libslic3r/ClipperUtils.cpp @@ -1,14 +1,29 @@ #include #include +#include +#include +#include +#include +#include #include #include #include #include "ClipperUtils.hpp" +#include "BoundingBox.hpp" +#include "ExPolygon.hpp" #include "Geometry.hpp" +#include "Point.hpp" +#include "Polygon.hpp" +#include "Polyline.hpp" +#include "Line.hpp" #include "ShortestPath.hpp" +#include "libslic3r.h" +#include "Surface.hpp" #include +#include +#include // #define CLIPPER_UTILS_DEBUG diff --git a/src/libslic3r/ClipperUtils.hpp b/src/libslic3r/ClipperUtils.hpp index 5f05c8e3c4..00cf60076b 100644 --- a/src/libslic3r/ClipperUtils.hpp +++ b/src/libslic3r/ClipperUtils.hpp @@ -1,10 +1,17 @@ #ifndef slic3r_ClipperUtils_hpp_ #define slic3r_ClipperUtils_hpp_ +#include "Point.hpp" +#include "Polyline.hpp" +#include "Line.hpp" #include "libslic3r.h" #include "ExPolygon.hpp" #include "Polygon.hpp" #include "Surface.hpp" +#include +#include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/ClipperZUtils.cpp b/src/libslic3r/ClipperZUtils.cpp index f7a4b79b0d..a07f40dc4a 100644 --- a/src/libslic3r/ClipperZUtils.cpp +++ b/src/libslic3r/ClipperZUtils.cpp @@ -1,6 +1,8 @@ #include "ClipperZUtils.hpp" +#include "ClipperUtils.hpp" #include +#include namespace Slic3r { namespace ClipperZUtils { diff --git a/src/libslic3r/ClipperZUtils.hpp b/src/libslic3r/ClipperZUtils.hpp index 159a4e81b3..781357caa5 100644 --- a/src/libslic3r/ClipperZUtils.hpp +++ b/src/libslic3r/ClipperZUtils.hpp @@ -1,8 +1,13 @@ #ifndef slic3r_ClipperZUtils_hpp_ #define slic3r_ClipperZUtils_hpp_ +#include "libslic3r.h" +#include +#include +#include #include #include +#include #include #include diff --git a/src/libslic3r/Color.cpp b/src/libslic3r/Color.cpp index d7208d40fc..bb08b7c75b 100644 --- a/src/libslic3r/Color.cpp +++ b/src/libslic3r/Color.cpp @@ -1,7 +1,15 @@ #include "libslic3r.h" #include "Color.hpp" +#include +#include +#include +#include +#include +#include #include +#include +#include static const float INV_255 = 1.0f / 255.0f; diff --git a/src/libslic3r/ColorDecomposeRecipe.cpp b/src/libslic3r/ColorDecomposeRecipe.cpp index f2ceb1860a..6aa09f01d2 100644 --- a/src/libslic3r/ColorDecomposeRecipe.cpp +++ b/src/libslic3r/ColorDecomposeRecipe.cpp @@ -9,7 +9,9 @@ #include #include #include +#include #include +#include namespace Slic3r { namespace { diff --git a/src/libslic3r/Config.cpp b/src/libslic3r/Config.cpp index df2030b575..38c5b30118 100644 --- a/src/libslic3r/Config.cpp +++ b/src/libslic3r/Config.cpp @@ -1,4 +1,6 @@ #include "Config.hpp" +#include "Exception.hpp" +#include "Point.hpp" #include "format.hpp" #include "Utils.hpp" #include "LocalesUtils.hpp" @@ -6,7 +8,20 @@ #include #include +#include +#include +#include +#include +#include +#include #include +#include +#include +#include +#include +#include +#include +#include #include #include #include @@ -26,8 +41,15 @@ #include #include #include +#include #include +#include +#include +#include +#include //BBS: add json support +#include "libslic3r.h" +#include "libslic3r_version.h" #include "nlohmann/json.hpp" using namespace nlohmann; diff --git a/src/libslic3r/Config.hpp b/src/libslic3r/Config.hpp index 9818887c1d..9d76262ec6 100644 --- a/src/libslic3r/Config.hpp +++ b/src/libslic3r/Config.hpp @@ -3,6 +3,11 @@ #include #include +#include +#include +#include +#include +#include #include #include #include @@ -10,10 +15,15 @@ #include #include #include +#include #include +#include +#include #include #include +#include #include +#include "LocalesUtils.hpp" #include "libslic3r.h" #include "clonable_ptr.hpp" #include "Exception.hpp" diff --git a/src/libslic3r/ContourZ.cpp b/src/libslic3r/ContourZ.cpp index f4a5fc049a..8751bcca58 100644 --- a/src/libslic3r/ContourZ.cpp +++ b/src/libslic3r/ContourZ.cpp @@ -2,14 +2,18 @@ #include "ExtrusionEntity.hpp" #include "ExtrusionEntityCollection.hpp" #include "Layer.hpp" +#include "Line.hpp" #include "Point.hpp" #include "Print.hpp" #include "SLA/IndexedMesh.hpp" #include "libslic3r.h" +#include #include #include #include +#include #include +#include namespace Slic3r { diff --git a/src/libslic3r/CustomGCode.cpp b/src/libslic3r/CustomGCode.cpp index acd7089c05..a78bc2a111 100644 --- a/src/libslic3r/CustomGCode.cpp +++ b/src/libslic3r/CustomGCode.cpp @@ -2,6 +2,10 @@ #include "Config.hpp" #include "GCode.hpp" #include "GCodeWriter.hpp" +#include +#include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/CustomGCode.hpp b/src/libslic3r/CustomGCode.hpp index 7d8c7d9982..a4ed244dc5 100644 --- a/src/libslic3r/CustomGCode.hpp +++ b/src/libslic3r/CustomGCode.hpp @@ -1,7 +1,10 @@ #ifndef slic3r_CustomGCode_hpp_ #define slic3r_CustomGCode_hpp_ +#include +#include #include +#include #include #include diff --git a/src/libslic3r/CutSurface.cpp b/src/libslic3r/CutSurface.cpp index dbf737e3ed..8967f6c2ba 100644 --- a/src/libslic3r/CutSurface.cpp +++ b/src/libslic3r/CutSurface.cpp @@ -1,4 +1,38 @@ #include "CutSurface.hpp" +#include "libslic3r/Emboss.hpp" +#include +#include +#include +#include "libslic3r/Point.hpp" +#include "libslic3r/ExPolygon.hpp" +#include +#include +#include +#include +#include "libslic3r/BoundingBox.hpp" +#include +#include "libslic3r/Polygon.hpp" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "libslic3r/AABBTreeIndirect.hpp" +#include +#include "libslic3r/libslic3r.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include /// models_input.obj - Check transormation of model to each others /// projection_center.obj - circle representing center of projection with correct distance diff --git a/src/libslic3r/CutSurface.hpp b/src/libslic3r/CutSurface.hpp index 9f4e3159cf..33b0d88697 100644 --- a/src/libslic3r/CutSurface.hpp +++ b/src/libslic3r/CutSurface.hpp @@ -1,6 +1,8 @@ #ifndef slic3r_CutSurface_hpp_ #define slic3r_CutSurface_hpp_ +#include "libslic3r/BoundingBox.hpp" +#include #include #include // indexed_triangle_set #include "ExPolygon.hpp" diff --git a/src/libslic3r/CutUtils.cpp b/src/libslic3r/CutUtils.cpp index f8b1483773..e5cb3cc6f1 100644 --- a/src/libslic3r/CutUtils.cpp +++ b/src/libslic3r/CutUtils.cpp @@ -1,13 +1,24 @@ #include "CutUtils.hpp" #include "Geometry.hpp" +#include "Point.hpp" +#include "TriangleMesh.hpp" #include "libslic3r.h" #include "Model.hpp" #include "TriangleMeshSlicer.hpp" #include "TriangleSelector.hpp" #include "ObjectID.hpp" +#include #include +#include +#include +#include +#include +#include +#include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/CutUtils.hpp b/src/libslic3r/CutUtils.hpp index b7f31d7b9a..37f30308b6 100644 --- a/src/libslic3r/CutUtils.hpp +++ b/src/libslic3r/CutUtils.hpp @@ -5,6 +5,7 @@ #include "Point.hpp" #include "Model.hpp" +#include #include namespace Slic3r { diff --git a/src/libslic3r/EdgeGrid.cpp b/src/libslic3r/EdgeGrid.cpp index 93bf7d48ec..c6e003505a 100644 --- a/src/libslic3r/EdgeGrid.cpp +++ b/src/libslic3r/EdgeGrid.cpp @@ -1,10 +1,21 @@ #include +#include +#include +#include +#include +#include +#include #include #include #include #include +#include "Polygon.hpp" +#include "Point.hpp" +#include "Polyline.hpp" +#include "ExPolygon.hpp" +#include "Line.hpp" #include "libslic3r.h" #include "ClipperUtils.hpp" #include "EdgeGrid.hpp" diff --git a/src/libslic3r/EdgeGrid.hpp b/src/libslic3r/EdgeGrid.hpp index 6bbed1e9fa..971d23ead6 100644 --- a/src/libslic3r/EdgeGrid.hpp +++ b/src/libslic3r/EdgeGrid.hpp @@ -1,12 +1,24 @@ #ifndef slic3r_EdgeGrid_hpp_ #define slic3r_EdgeGrid_hpp_ +#include +#include +#include +#include +#include #include #include +#include +#include +#include +#include "Line.hpp" #include "Point.hpp" #include "BoundingBox.hpp" #include "ExPolygon.hpp" +#include "libslic3r.h" +#include "Polygon.hpp" +#include "Polyline.hpp" namespace Slic3r { namespace EdgeGrid { diff --git a/src/libslic3r/ElephantFootCompensation.cpp b/src/libslic3r/ElephantFootCompensation.cpp index aaf18608ee..40b856ee4b 100644 --- a/src/libslic3r/ElephantFootCompensation.cpp +++ b/src/libslic3r/ElephantFootCompensation.cpp @@ -1,3 +1,6 @@ +#include "Point.hpp" +#include "BoundingBox.hpp" +#include "Polygon.hpp" #include "libslic3r.h" #include "ClipperUtils.hpp" #include "EdgeGrid.hpp" @@ -8,8 +11,14 @@ #include "SVG.hpp" #include "Utils.hpp" +#include #include #include +#include +#include +#include +#include +#include // #define CONTOUR_DISTANCE_DEBUG_SVG diff --git a/src/libslic3r/Emboss.cpp b/src/libslic3r/Emboss.cpp index 80a9274fd0..ae13cbf54e 100644 --- a/src/libslic3r/Emboss.cpp +++ b/src/libslic3r/Emboss.cpp @@ -1,12 +1,35 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include "Emboss.hpp" +#include #include #include #include #include #include #include // union_ex + for boldness(polygon extend(offset)) +#include "ExPolygon.hpp" +#include +#include "AABBTreeIndirect.hpp" +#include +#include "EmbossShape.hpp" +#include #include "IntersectionPoints.hpp" +#include "Polygon.hpp" +#include "TextConfiguration.hpp" +#include "Point.hpp" #define STB_TRUETYPE_IMPLEMENTATION // force following include to generate implementation #include "imgui/imstb_truetype.h" // stbtt_fontinfo diff --git a/src/libslic3r/Emboss.hpp b/src/libslic3r/Emboss.hpp index 2d445fcc6c..9b7beafec7 100644 --- a/src/libslic3r/Emboss.hpp +++ b/src/libslic3r/Emboss.hpp @@ -1,11 +1,19 @@ #ifndef slic3r_Emboss_hpp_ #define slic3r_Emboss_hpp_ +#include +#include +#include +#include +#include +#include +#include #include #include #include #include #include // indexed_triangle_set +#include "Point.hpp" #include "Polygon.hpp" #include "ExPolygon.hpp" #include "EmbossShape.hpp" // ExPolygonsWithIds diff --git a/src/libslic3r/EmbossShape.hpp b/src/libslic3r/EmbossShape.hpp index 3e4a950037..490844bdef 100644 --- a/src/libslic3r/EmbossShape.hpp +++ b/src/libslic3r/EmbossShape.hpp @@ -9,9 +9,11 @@ #include #include #include +#include #include "Point.hpp" // Transform3d #include "ExPolygon.hpp" #include "ExPolygonSerialize.hpp" +#include "libslic3r.h" #include "nanosvg/nanosvg.h" // NSVGimage namespace Slic3r { diff --git a/src/libslic3r/ExPolygon.cpp b/src/libslic3r/ExPolygon.cpp index 185e925084..f34b07b7cb 100644 --- a/src/libslic3r/ExPolygon.cpp +++ b/src/libslic3r/ExPolygon.cpp @@ -2,13 +2,23 @@ #include "ExPolygon.hpp" #include "Exception.hpp" #include "Geometry/MedialAxis.hpp" +#include "Point.hpp" +#include "MultiPoint.hpp" #include "Polygon.hpp" #include "Line.hpp" #include "ClipperUtils.hpp" +#include "Polyline.hpp" #include "SVG.hpp" +#include "libslic3r.h" #include #include +#include +#include +#include +#include #include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/ExPolygon.hpp b/src/libslic3r/ExPolygon.hpp index ce7ebe892f..d695171d1e 100644 --- a/src/libslic3r/ExPolygon.hpp +++ b/src/libslic3r/ExPolygon.hpp @@ -1,10 +1,17 @@ #ifndef slic3r_ExPolygon_hpp_ #define slic3r_ExPolygon_hpp_ +#include "Line.hpp" #include "Point.hpp" #include "libslic3r.h" #include "Polygon.hpp" #include "Polyline.hpp" +#include +#include +#include +#include +#include +#include #include namespace Slic3r { diff --git a/src/libslic3r/ExPolygonCollection.hpp b/src/libslic3r/ExPolygonCollection.hpp index 35e1eef4eb..ecef053ebc 100644 --- a/src/libslic3r/ExPolygonCollection.hpp +++ b/src/libslic3r/ExPolygonCollection.hpp @@ -1,10 +1,13 @@ #ifndef slic3r_ExPolygonCollection_hpp_ #define slic3r_ExPolygonCollection_hpp_ +#include "Point.hpp" +#include "Polygon.hpp" #include "libslic3r.h" #include "ExPolygon.hpp" #include "Line.hpp" #include "Polyline.hpp" +#include namespace Slic3r { diff --git a/src/libslic3r/ExPolygonSerialize.hpp b/src/libslic3r/ExPolygonSerialize.hpp index 712d4706d5..58d12093e6 100644 --- a/src/libslic3r/ExPolygonSerialize.hpp +++ b/src/libslic3r/ExPolygonSerialize.hpp @@ -3,6 +3,7 @@ #include "ExPolygon.hpp" #include "Point.hpp" // Cereal serialization of Point +#include "Polygon.hpp" #include #include diff --git a/src/libslic3r/ExPolygonsIndex.cpp b/src/libslic3r/ExPolygonsIndex.cpp index 976531799f..296d43a198 100644 --- a/src/libslic3r/ExPolygonsIndex.cpp +++ b/src/libslic3r/ExPolygonsIndex.cpp @@ -1,4 +1,10 @@ #include "ExPolygonsIndex.hpp" +#include "ExPolygon.hpp" +#include +#include +#include +#include +#include using namespace Slic3r; // IMPROVE: use one dimensional vector for polygons offset with searching by std::lower_bound diff --git a/src/libslic3r/ExPolygonsIndex.hpp b/src/libslic3r/ExPolygonsIndex.hpp index b46fd50890..317fb5f731 100644 --- a/src/libslic3r/ExPolygonsIndex.hpp +++ b/src/libslic3r/ExPolygonsIndex.hpp @@ -2,6 +2,8 @@ #define slic3r_ExPolygonsIndex_hpp_ #include "ExPolygon.hpp" +#include +#include namespace Slic3r { ///

diff --git a/src/libslic3r/Exception.hpp b/src/libslic3r/Exception.hpp index d271a25052..5297af8ff2 100644 --- a/src/libslic3r/Exception.hpp +++ b/src/libslic3r/Exception.hpp @@ -1,7 +1,9 @@ #ifndef _libslic3r_Exception_h_ #define _libslic3r_Exception_h_ +#include #include +#include #include namespace Slic3r { diff --git a/src/libslic3r/Execution/Execution.hpp b/src/libslic3r/Execution/Execution.hpp index 62e49cfeb3..9620d9b11d 100644 --- a/src/libslic3r/Execution/Execution.hpp +++ b/src/libslic3r/Execution/Execution.hpp @@ -1,6 +1,7 @@ #ifndef EXECUTION_HPP #define EXECUTION_HPP +#include #include #include #include diff --git a/src/libslic3r/Execution/ExecutionSeq.hpp b/src/libslic3r/Execution/ExecutionSeq.hpp index 321d65631b..56afa6aaf4 100644 --- a/src/libslic3r/Execution/ExecutionSeq.hpp +++ b/src/libslic3r/Execution/ExecutionSeq.hpp @@ -1,6 +1,9 @@ #ifndef EXECUTIONSEQ_HPP #define EXECUTIONSEQ_HPP +#include +#include "libslic3r/libslic3r.h" +#include #ifdef PRUSASLICER_USE_EXECUTION_STD // Conflicts with our version of TBB #include #endif diff --git a/src/libslic3r/Execution/ExecutionTBB.hpp b/src/libslic3r/Execution/ExecutionTBB.hpp index 2250b8e322..4881c7b59c 100644 --- a/src/libslic3r/Execution/ExecutionTBB.hpp +++ b/src/libslic3r/Execution/ExecutionTBB.hpp @@ -1,14 +1,17 @@ #ifndef EXECUTIONTBB_HPP #define EXECUTIONTBB_HPP +#include #include #include #include #include #include +#include #include "Execution.hpp" +#include "libslic3r/libslic3r.h" namespace Slic3r { diff --git a/src/libslic3r/Extruder.cpp b/src/libslic3r/Extruder.cpp index b1b6ca347a..bffdf6771c 100644 --- a/src/libslic3r/Extruder.cpp +++ b/src/libslic3r/Extruder.cpp @@ -1,5 +1,11 @@ #include "Extruder.hpp" +#include "Exception.hpp" #include "PrintConfig.hpp" +#include +#include "libslic3r.h" +#include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/Extruder.hpp b/src/libslic3r/Extruder.hpp index aa023ea040..94e083c86b 100644 --- a/src/libslic3r/Extruder.hpp +++ b/src/libslic3r/Extruder.hpp @@ -3,6 +3,7 @@ #include "libslic3r.h" #include "Point.hpp" +#include namespace Slic3r { diff --git a/src/libslic3r/ExtrusionEntity.cpp b/src/libslic3r/ExtrusionEntity.cpp index bd45150a15..a3590814f7 100644 --- a/src/libslic3r/ExtrusionEntity.cpp +++ b/src/libslic3r/ExtrusionEntity.cpp @@ -4,10 +4,23 @@ #include "ClipperUtils.hpp" #include "Extruder.hpp" #include "Flow.hpp" +#include +#include #include +#include +#include #include #include +#include "Point.hpp" +#include "Polyline.hpp" +#include "Polygon.hpp" +#include +#include +#include "Line.hpp" +#include +#include #include "Utils.hpp" +#include "libslic3r.h" #define L(s) (s) diff --git a/src/libslic3r/ExtrusionEntity.hpp b/src/libslic3r/ExtrusionEntity.hpp index de80247bce..d7dac99364 100644 --- a/src/libslic3r/ExtrusionEntity.hpp +++ b/src/libslic3r/ExtrusionEntity.hpp @@ -1,13 +1,19 @@ #ifndef slic3r_ExtrusionEntity_hpp_ #define slic3r_ExtrusionEntity_hpp_ +#include "Point.hpp" #include "libslic3r.h" #include "Polygon.hpp" #include "Polyline.hpp" #include +#include +#include +#include #include #include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/ExtrusionEntityCollection.cpp b/src/libslic3r/ExtrusionEntityCollection.cpp index 9a37ff3ac1..0141e3d5e8 100644 --- a/src/libslic3r/ExtrusionEntityCollection.cpp +++ b/src/libslic3r/ExtrusionEntityCollection.cpp @@ -1,7 +1,12 @@ #include "ExtrusionEntityCollection.hpp" +#include "ExtrusionEntity.hpp" +#include "Point.hpp" +#include "Polygon.hpp" #include "ShortestPath.hpp" #include #include +#include +#include #include namespace Slic3r { diff --git a/src/libslic3r/ExtrusionEntityCollection.hpp b/src/libslic3r/ExtrusionEntityCollection.hpp index 13727869fe..664ad1ddcd 100644 --- a/src/libslic3r/ExtrusionEntityCollection.hpp +++ b/src/libslic3r/ExtrusionEntityCollection.hpp @@ -1,9 +1,16 @@ #ifndef slic3r_ExtrusionEntityCollection_hpp_ #define slic3r_ExtrusionEntityCollection_hpp_ +#include "Point.hpp" +#include "Polygon.hpp" +#include "Polyline.hpp" #include "libslic3r.h" #include "Exception.hpp" #include "ExtrusionEntity.hpp" +#include +#include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/ExtrusionSimulator.cpp b/src/libslic3r/ExtrusionSimulator.cpp index 4bf54edea9..bb9179a7e2 100644 --- a/src/libslic3r/ExtrusionSimulator.cpp +++ b/src/libslic3r/ExtrusionSimulator.cpp @@ -3,6 +3,9 @@ //#undef SLIC3R_DEBUG //#define NDEBUG +#include +#include +#include #include #include @@ -12,7 +15,14 @@ #include #include +#include +#include +#include +#include +#include "Point.hpp" +#include "BoundingBox.hpp" +#include "ExtrusionEntity.hpp" #include "libslic3r.h" #include "ExtrusionSimulator.hpp" diff --git a/src/libslic3r/ExtrusionSimulator.hpp b/src/libslic3r/ExtrusionSimulator.hpp index 040406766d..33629d79e6 100644 --- a/src/libslic3r/ExtrusionSimulator.hpp +++ b/src/libslic3r/ExtrusionSimulator.hpp @@ -1,6 +1,7 @@ #ifndef slic3r_ExtrusionSimulator_hpp_ #define slic3r_ExtrusionSimulator_hpp_ +#include "Point.hpp" #include "libslic3r.h" #include "ExtrusionEntity.hpp" #include "BoundingBox.hpp" diff --git a/src/libslic3r/FaceDetector.cpp b/src/libslic3r/FaceDetector.cpp index 5eb5ca762c..a631822d9e 100644 --- a/src/libslic3r/FaceDetector.cpp +++ b/src/libslic3r/FaceDetector.cpp @@ -1,8 +1,13 @@ #include "FaceDetector.hpp" +#include "BoundingBox.hpp" #include "TriangleMesh.hpp" #include "SLA/IndexedMesh.hpp" #include "Model.hpp" +#include +#include #include +#include +#include namespace Slic3r { static const double BBOX_OFFSET = 2.0; diff --git a/src/libslic3r/FaceDetector.hpp b/src/libslic3r/FaceDetector.hpp index b4d9d78985..190877ecec 100644 --- a/src/libslic3r/FaceDetector.hpp +++ b/src/libslic3r/FaceDetector.hpp @@ -2,6 +2,7 @@ #define slic3r_FaceDetector_hpp_ #include "Point.hpp" +#include namespace Slic3r { class ModelObject; diff --git a/src/libslic3r/Feature/FuzzySkin/FuzzySkin.cpp b/src/libslic3r/Feature/FuzzySkin/FuzzySkin.cpp index be86e92245..c580cc3c0f 100644 --- a/src/libslic3r/Feature/FuzzySkin/FuzzySkin.cpp +++ b/src/libslic3r/Feature/FuzzySkin/FuzzySkin.cpp @@ -1,5 +1,19 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include +#include +#include +#include "libslic3r/libslic3r.h" +#include "libslic3r/Surface.hpp" #include "libslic3r/Algorithm/LineSplit.hpp" #include "libslic3r/Arachne/utils/ExtrusionJunction.hpp" #include "libslic3r/Arachne/utils/ExtrusionLine.hpp" diff --git a/src/libslic3r/Feature/FuzzySkin/FuzzySkin.hpp b/src/libslic3r/Feature/FuzzySkin/FuzzySkin.hpp index ab0c491b38..ec5069a49c 100644 --- a/src/libslic3r/Feature/FuzzySkin/FuzzySkin.hpp +++ b/src/libslic3r/Feature/FuzzySkin/FuzzySkin.hpp @@ -1,9 +1,13 @@ #ifndef libslic3r_FuzzySkin_hpp_ #define libslic3r_FuzzySkin_hpp_ +#include "libslic3r/Point.hpp" +#include "libslic3r/libslic3r.h" +#include "libslic3r/Polygon.hpp" #include "libslic3r/Arachne/utils/ExtrusionJunction.hpp" #include "libslic3r/Arachne/utils/ExtrusionLine.hpp" #include "libslic3r/PerimeterGenerator.hpp" +#include namespace Slic3r::Feature::FuzzySkin { diff --git a/src/libslic3r/Feature/Interlocking/InterlockingGenerator.cpp b/src/libslic3r/Feature/Interlocking/InterlockingGenerator.cpp index 726ee2ffd8..9e2fb7fa47 100644 --- a/src/libslic3r/Feature/Interlocking/InterlockingGenerator.cpp +++ b/src/libslic3r/Feature/Interlocking/InterlockingGenerator.cpp @@ -2,8 +2,22 @@ // CuraEngine is released under the terms of the AGPLv3 or higher. #include "InterlockingGenerator.hpp" +#include "libslic3r/Feature/Interlocking/VoxelUtils.hpp" +#include "libslic3r/libslic3r.h" +#include "libslic3r/Geometry.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/Flow.hpp" +#include "libslic3r/Polygon.hpp" +#include "libslic3r/Surface.hpp" +#include "libslic3r/ExPolygon.hpp" #include "libslic3r/ClipperUtils.hpp" #include "Layer.hpp" +#include +#include +#include +#include +#include +#include namespace std { template<> struct hash diff --git a/src/libslic3r/Feature/Interlocking/InterlockingGenerator.hpp b/src/libslic3r/Feature/Interlocking/InterlockingGenerator.hpp index e6b79f9bc8..b06c8a10c8 100644 --- a/src/libslic3r/Feature/Interlocking/InterlockingGenerator.hpp +++ b/src/libslic3r/Feature/Interlocking/InterlockingGenerator.hpp @@ -4,8 +4,16 @@ #ifndef INTERLOCKING_GENERATOR_HPP #define INTERLOCKING_GENERATOR_HPP +#include "libslic3r/libslic3r.h" +#include "libslic3r/Point.hpp" +#include "libslic3r/ExPolygon.hpp" #include "libslic3r/Print.hpp" #include "VoxelUtils.hpp" +#include +#include +#include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/Feature/Interlocking/VoxelUtils.cpp b/src/libslic3r/Feature/Interlocking/VoxelUtils.cpp index 303473ae48..6e33ddaca7 100644 --- a/src/libslic3r/Feature/Interlocking/VoxelUtils.cpp +++ b/src/libslic3r/Feature/Interlocking/VoxelUtils.cpp @@ -2,9 +2,21 @@ // CuraEngine is released under the terms of the AGPLv3 or higher. #include "VoxelUtils.hpp" +#include "libslic3r/libslic3r.h" +#include "libslic3r/Point.hpp" +#include "libslic3r/ExPolygon.hpp" +#include "libslic3r/Polygon.hpp" +#include "libslic3r/Fill/FillBase.hpp" +#include "libslic3r/PrintConfig.hpp" +#include "libslic3r/Polyline.hpp" #include "libslic3r/Geometry.hpp" #include "libslic3r/Fill/FillRectilinear.hpp" #include "libslic3r/Surface.hpp" +#include +#include +#include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/Feature/Interlocking/VoxelUtils.hpp b/src/libslic3r/Feature/Interlocking/VoxelUtils.hpp index 0348b69598..dc571c06ea 100644 --- a/src/libslic3r/Feature/Interlocking/VoxelUtils.hpp +++ b/src/libslic3r/Feature/Interlocking/VoxelUtils.hpp @@ -4,8 +4,13 @@ #ifndef UTILS_VOXEL_UTILS_H #define UTILS_VOXEL_UTILS_H +#include +#include #include +#include +#include "libslic3r/Point.hpp" +#include "libslic3r/libslic3r.h" #include "libslic3r/Polygon.hpp" #include "libslic3r/ExPolygon.hpp" diff --git a/src/libslic3r/FilamentGroup.cpp b/src/libslic3r/FilamentGroup.cpp index 07a4cc2449..5536a13282 100644 --- a/src/libslic3r/FilamentGroup.cpp +++ b/src/libslic3r/FilamentGroup.cpp @@ -1,11 +1,34 @@ #include "FilamentGroup.hpp" +#include "FilamentGroupUtils.hpp" #include "GCode/ToolOrderUtils.hpp" #include "FlushVolPredictor.hpp" +#include "MultiNozzleUtils.hpp" +#include "PrintConfig.hpp" +#include "libslic3r.h" #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include +#include #include #include +#include +#include +#include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/FilamentGroup.hpp b/src/libslic3r/FilamentGroup.hpp index 9172685bee..b090a22fe0 100644 --- a/src/libslic3r/FilamentGroup.hpp +++ b/src/libslic3r/FilamentGroup.hpp @@ -2,14 +2,21 @@ #define FILAMENT_GROUP_HPP #include +#include #include #include +#include #include #include +#include +#include +#include #include #include #include "GCode/ToolOrderUtils.hpp" #include "FilamentGroupUtils.hpp" +#include "PrintConfig.hpp" +#include "MultiNozzleUtils.hpp" const static int DEFAULT_CLUSTER_SIZE = 16; diff --git a/src/libslic3r/FilamentGroupUtils.cpp b/src/libslic3r/FilamentGroupUtils.cpp index c0cd747025..7402341806 100644 --- a/src/libslic3r/FilamentGroupUtils.cpp +++ b/src/libslic3r/FilamentGroupUtils.cpp @@ -1,6 +1,22 @@ #include "FilamentGroupUtils.hpp" +#include +#include +#include +#include +#include +#include "PrintConfig.hpp" +#include "Config.hpp" +#include +#include +#include "libslic3r.h" +#include "MultiNozzleUtils.hpp" #include +#include #include +#include +#include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/FilamentGroupUtils.hpp b/src/libslic3r/FilamentGroupUtils.hpp index f0865a93c6..a73a562e90 100644 --- a/src/libslic3r/FilamentGroupUtils.hpp +++ b/src/libslic3r/FilamentGroupUtils.hpp @@ -1,6 +1,9 @@ #ifndef FILAMENT_GROUP_UTILS_HPP #define FILAMENT_GROUP_UTILS_HPP +#include +#include +#include #include #include #include diff --git a/src/libslic3r/FilamentMixer.cpp b/src/libslic3r/FilamentMixer.cpp index 66640498e6..51952c94c9 100644 --- a/src/libslic3r/FilamentMixer.cpp +++ b/src/libslic3r/FilamentMixer.cpp @@ -5,12 +5,17 @@ #include #include #include +#include #include +#include #include #include #include #include +#include +#include +#include #include "ColorDecomposeRecipe.hpp" #include "FilamentMixerModel.hpp" diff --git a/src/libslic3r/FilamentMixer.hpp b/src/libslic3r/FilamentMixer.hpp index 81ddd29e46..5ea4484437 100644 --- a/src/libslic3r/FilamentMixer.hpp +++ b/src/libslic3r/FilamentMixer.hpp @@ -1,6 +1,7 @@ #ifndef SLIC3R_FILAMENT_MIXER_HPP #define SLIC3R_FILAMENT_MIXER_HPP +#include #include #include #include diff --git a/src/libslic3r/FileParserError.hpp b/src/libslic3r/FileParserError.hpp index b7e63d84e0..4777ee8a79 100644 --- a/src/libslic3r/FileParserError.hpp +++ b/src/libslic3r/FileParserError.hpp @@ -1,8 +1,10 @@ #ifndef slic3r_FileParserError_hpp_ #define slic3r_FileParserError_hpp_ +#include "Exception.hpp" #include "libslic3r.h" +#include #include #include #include diff --git a/src/libslic3r/Fill/Fill.cpp b/src/libslic3r/Fill/Fill.cpp index a09c69fc5e..505081ab79 100644 --- a/src/libslic3r/Fill/Fill.cpp +++ b/src/libslic3r/Fill/Fill.cpp @@ -1,6 +1,19 @@ +#include #include +#include +#include +#include +#include +#include +#include +#include #include #include +#include +#include +#include +#include +#include #include "../ClipperUtils.hpp" #include "../Geometry.hpp" @@ -10,14 +23,23 @@ #include "../Surface.hpp" #include "AABBTreeLines.hpp" +#include "libslic3r/Config.hpp" +#include "libslic3r/ExPolygon.hpp" +#include "libslic3r/BoundingBox.hpp" #include "ExtrusionEntity.hpp" #include "Fill.hpp" +#include "libslic3r/Fill/FillBase.hpp" #include "FillRectilinear.hpp" #include "FillLightning.hpp" #include "FillConcentricInternal.hpp" #include "FillTpmsD.hpp" #include "FillTpmsFK.hpp" #include "FillConcentric.hpp" +#include "libslic3r/Flow.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/Line.hpp" +#include "libslic3r/Polygon.hpp" +#include "libslic3r/Polyline.hpp" #include "libslic3r.h" namespace Slic3r { diff --git a/src/libslic3r/Fill/Fill.hpp b/src/libslic3r/Fill/Fill.hpp index b183cf0253..138321fd0a 100644 --- a/src/libslic3r/Fill/Fill.hpp +++ b/src/libslic3r/Fill/Fill.hpp @@ -1,9 +1,11 @@ #ifndef slic3r_Fill_hpp_ #define slic3r_Fill_hpp_ +#include #include #include #include +#include #include "../libslic3r.h" #include "../PrintConfig.hpp" diff --git a/src/libslic3r/Fill/Fill3DHoneycomb.cpp b/src/libslic3r/Fill/Fill3DHoneycomb.cpp index ad5f8918fd..5a390fa517 100644 --- a/src/libslic3r/Fill/Fill3DHoneycomb.cpp +++ b/src/libslic3r/Fill/Fill3DHoneycomb.cpp @@ -1,8 +1,20 @@ #include "../ClipperUtils.hpp" #include "../ShortestPath.hpp" #include "../Surface.hpp" +#include "libslic3r/ExPolygon.hpp" +#include "libslic3r/BoundingBox.hpp" #include "FillBase.hpp" #include "FillCornerSmoothing.hpp" +#include "libslic3r/libslic3r.h" +#include +#include +#include +#include "libslic3r/Point.hpp" +#include +#include +#include +#include "libslic3r/Polyline.hpp" +#include #include "Fill3DHoneycomb.hpp" namespace Slic3r { diff --git a/src/libslic3r/Fill/Fill3DHoneycomb.hpp b/src/libslic3r/Fill/Fill3DHoneycomb.hpp index 2d6664ddf4..2ad6f79a7c 100644 --- a/src/libslic3r/Fill/Fill3DHoneycomb.hpp +++ b/src/libslic3r/Fill/Fill3DHoneycomb.hpp @@ -2,10 +2,14 @@ #define slic3r_Fill3DHoneycomb_hpp_ #include +#include #include "../libslic3r.h" +#include "libslic3r/ExPolygon.hpp" #include "FillBase.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/Polyline.hpp" namespace Slic3r { diff --git a/src/libslic3r/Fill/FillAdaptive.cpp b/src/libslic3r/Fill/FillAdaptive.cpp index 809eddb218..927e2c86a3 100644 --- a/src/libslic3r/Fill/FillAdaptive.cpp +++ b/src/libslic3r/Fill/FillAdaptive.cpp @@ -6,18 +6,40 @@ #include "../Layer.hpp" #include "../Print.hpp" #include "../ShortestPath.hpp" +#include "libslic3r/BoundingBox.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/Flow.hpp" +#include "libslic3r/PrintConfig.hpp" +#include "libslic3r/libslic3r.h" +#include "libslic3r/Polyline.hpp" +#include "libslic3r/Line.hpp" +#include "libslic3r/Fill/FillBase.hpp" #include "FillAdaptive.hpp" // for indexed_triangle_set +#include +#include #include +#include +#include +#include +#include +#include +#include #include #include #include #include +#include +#include +#include #include +#include #include +#include +#include // Boost pool: Don't use mutexes to synchronize memory allocation. #define BOOST_POOL_NO_MT diff --git a/src/libslic3r/Fill/FillAdaptive.hpp b/src/libslic3r/Fill/FillAdaptive.hpp index de0768b26e..9b424133a2 100644 --- a/src/libslic3r/Fill/FillAdaptive.hpp +++ b/src/libslic3r/Fill/FillAdaptive.hpp @@ -11,7 +11,17 @@ #ifndef slic3r_FillAdaptive_hpp_ #define slic3r_FillAdaptive_hpp_ +#include "libslic3r/BoundingBox.hpp" +#include "libslic3r/ExPolygon.hpp" #include "FillBase.hpp" +#include +#include +#include +#include +#include "libslic3r/Point.hpp" +#include "libslic3r/libslic3r.h" +#include "libslic3r/Polyline.hpp" +#include "libslic3r/Line.hpp" struct indexed_triangle_set; diff --git a/src/libslic3r/Fill/FillBase.cpp b/src/libslic3r/Fill/FillBase.cpp index d0126e9cb8..91a3bb42af 100644 --- a/src/libslic3r/Fill/FillBase.cpp +++ b/src/libslic3r/Fill/FillBase.cpp @@ -1,7 +1,16 @@ +#include +#include +#include +#include +#include +#include #include #include #include +#include +#include +#include #include "../ClipperUtils.hpp" #include "../EdgeGrid.hpp" #include "../Geometry.hpp" @@ -13,6 +22,12 @@ #include "../VariableWidth.hpp" #include "FillBase.hpp" +#include "libslic3r/Exception.hpp" +#include "libslic3r/Config.hpp" +#include "libslic3r/ExPolygon.hpp" +#include "libslic3r/ExtrusionEntity.hpp" +#include "libslic3r/ExtrusionEntityCollection.hpp" +#include "libslic3r/BoundingBox.hpp" #include "FillConcentric.hpp" #include "FillSpiralInset.hpp" #include "FillHoneycomb.hpp" @@ -28,6 +43,11 @@ // BBS: new infill pattern header #include "FillConcentricInternal.hpp" #include "FillCrossHatch.hpp" +#include "libslic3r/Polyline.hpp" +#include "libslic3r/ShortestPath.hpp" +#include "libslic3r/Line.hpp" +#include "libslic3r/Polygon.hpp" +#include "libslic3r/Utils.hpp" // #define INFILL_DEBUG_OUTPUT namespace Slic3r { diff --git a/src/libslic3r/Fill/FillBase.hpp b/src/libslic3r/Fill/FillBase.hpp index d50c29b332..0ccce102ad 100644 --- a/src/libslic3r/Fill/FillBase.hpp +++ b/src/libslic3r/Fill/FillBase.hpp @@ -2,12 +2,18 @@ #define slic3r_FillBase_hpp_ #include +#include +#include +#include #include #include #include #include +#include #include +#include +#include #include "../libslic3r.h" #include "../BoundingBox.hpp" @@ -20,6 +26,8 @@ #include "../ExtrusionEntity.hpp" #include "../ExtrusionEntityCollection.hpp" #include "../ShortestPath.hpp" +#include "libslic3r/Polyline.hpp" +#include "libslic3r/Polygon.hpp" namespace Slic3r { diff --git a/src/libslic3r/Fill/FillConcentric.cpp b/src/libslic3r/Fill/FillConcentric.cpp index 044fee042e..6a70200b34 100644 --- a/src/libslic3r/Fill/FillConcentric.cpp +++ b/src/libslic3r/Fill/FillConcentric.cpp @@ -5,8 +5,21 @@ #include "Arachne/WallToolPaths.hpp" #include "FillConcentric.hpp" +#include "libslic3r/Fill/FillBase.hpp" +#include "libslic3r/BoundingBox.hpp" +#include "libslic3r/Arachne/utils/ExtrusionLine.hpp" #include "FillCornerSmoothing.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/Polyline.hpp" +#include "libslic3r/libslic3r.h" +#include "libslic3r/Polygon.hpp" +#include +#include "libslic3r/PrintConfig.hpp" +#include +#include #include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/Fill/FillConcentric.hpp b/src/libslic3r/Fill/FillConcentric.hpp index 56040d848d..43273131db 100644 --- a/src/libslic3r/Fill/FillConcentric.hpp +++ b/src/libslic3r/Fill/FillConcentric.hpp @@ -1,7 +1,11 @@ #ifndef slic3r_FillConcentric_hpp_ #define slic3r_FillConcentric_hpp_ +#include "libslic3r/ExPolygon.hpp" #include "FillBase.hpp" +#include +#include "libslic3r/Point.hpp" +#include "libslic3r/Polyline.hpp" namespace Slic3r { diff --git a/src/libslic3r/Fill/FillConcentricInternal.cpp b/src/libslic3r/Fill/FillConcentricInternal.cpp index d565992ea1..49b21935f3 100644 --- a/src/libslic3r/Fill/FillConcentricInternal.cpp +++ b/src/libslic3r/Fill/FillConcentricInternal.cpp @@ -3,9 +3,22 @@ #include "../Surface.hpp" #include "../VariableWidth.hpp" #include "Arachne/WallToolPaths.hpp" +#include "libslic3r/Fill/FillBase.hpp" +#include "libslic3r/ExtrusionEntity.hpp" +#include "libslic3r/Polyline.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/libslic3r.h" +#include "libslic3r/Polygon.hpp" +#include "libslic3r/Arachne/utils/ExtrusionLine.hpp" +#include "libslic3r/ExtrusionEntityCollection.hpp" #include "FillConcentricInternal.hpp" +#include +#include +#include #include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/Fill/FillConcentricInternal.hpp b/src/libslic3r/Fill/FillConcentricInternal.hpp index 2c93eb5ee9..f78e9e1cb1 100644 --- a/src/libslic3r/Fill/FillConcentricInternal.hpp +++ b/src/libslic3r/Fill/FillConcentricInternal.hpp @@ -1,6 +1,7 @@ #ifndef slic3r_FillConcentricInternal_hpp_ #define slic3r_FillConcentricInternal_hpp_ +#include "libslic3r/ExtrusionEntity.hpp" #include "FillBase.hpp" namespace Slic3r { diff --git a/src/libslic3r/Fill/FillCornerSmoothing.cpp b/src/libslic3r/Fill/FillCornerSmoothing.cpp index dbce39d572..f87de98293 100644 --- a/src/libslic3r/Fill/FillCornerSmoothing.cpp +++ b/src/libslic3r/Fill/FillCornerSmoothing.cpp @@ -1,6 +1,16 @@ +#include #include +#include +#include +#include +#include +#include #include "FillCornerSmoothing.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/libslic3r.h" +#include "libslic3r/Polyline.hpp" +#include "libslic3r/Polygon.hpp" namespace Slic3r { diff --git a/src/libslic3r/Fill/FillCornerSmoothing.hpp b/src/libslic3r/Fill/FillCornerSmoothing.hpp index 7f2ead229a..b59cf26237 100644 --- a/src/libslic3r/Fill/FillCornerSmoothing.hpp +++ b/src/libslic3r/Fill/FillCornerSmoothing.hpp @@ -4,6 +4,7 @@ #include #include #include +#include #include #include "../libslic3r.h" diff --git a/src/libslic3r/Fill/FillCrossHatch.cpp b/src/libslic3r/Fill/FillCrossHatch.cpp index 98be5ef46b..c70a8a5320 100644 --- a/src/libslic3r/Fill/FillCrossHatch.cpp +++ b/src/libslic3r/Fill/FillCrossHatch.cpp @@ -1,9 +1,17 @@ #include "../ClipperUtils.hpp" #include "../ShortestPath.hpp" #include "../Surface.hpp" +#include #include +#include +#include +#include "libslic3r/ExPolygon.hpp" +#include "libslic3r/BoundingBox.hpp" #include "FillBase.hpp" #include "FillCornerSmoothing.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/libslic3r.h" +#include "libslic3r/Polyline.hpp" #include "FillCrossHatch.hpp" namespace Slic3r { diff --git a/src/libslic3r/Fill/FillCrossHatch.hpp b/src/libslic3r/Fill/FillCrossHatch.hpp index 34c46116eb..0fdc16644a 100644 --- a/src/libslic3r/Fill/FillCrossHatch.hpp +++ b/src/libslic3r/Fill/FillCrossHatch.hpp @@ -2,10 +2,14 @@ #define slic3r_FillCrossHatch_hpp_ #include +#include #include "../libslic3r.h" +#include "libslic3r/ExPolygon.hpp" #include "FillBase.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/Polyline.hpp" namespace Slic3r { diff --git a/src/libslic3r/Fill/FillGyroid.cpp b/src/libslic3r/Fill/FillGyroid.cpp index c9a108573d..de748d4893 100644 --- a/src/libslic3r/Fill/FillGyroid.cpp +++ b/src/libslic3r/Fill/FillGyroid.cpp @@ -4,9 +4,19 @@ #include "../Surface.hpp" #include #include +#include #include #include +#include "libslic3r/BoundingBox.hpp" +#include +#include "libslic3r/Execution/ExecutionTBB.hpp" +#include +#include +#include "libslic3r/ExPolygon.hpp" #include "FillBase.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/libslic3r.h" +#include "libslic3r/Polyline.hpp" #include "FillGyroid.hpp" // --------------------------------------------------------------------------- diff --git a/src/libslic3r/Fill/FillGyroid.hpp b/src/libslic3r/Fill/FillGyroid.hpp index 751a7c2570..2599662403 100644 --- a/src/libslic3r/Fill/FillGyroid.hpp +++ b/src/libslic3r/Fill/FillGyroid.hpp @@ -3,7 +3,11 @@ #include "../libslic3r.h" +#include "libslic3r/ExPolygon.hpp" #include "FillBase.hpp" +#include +#include "libslic3r/Point.hpp" +#include "libslic3r/Polyline.hpp" namespace Slic3r { diff --git a/src/libslic3r/Fill/FillHoneycomb.cpp b/src/libslic3r/Fill/FillHoneycomb.cpp index 82679541da..594ff3fbba 100644 --- a/src/libslic3r/Fill/FillHoneycomb.cpp +++ b/src/libslic3r/Fill/FillHoneycomb.cpp @@ -2,7 +2,17 @@ #include "../ShortestPath.hpp" #include "../Surface.hpp" +#include "libslic3r/Fill/FillBase.hpp" +#include "libslic3r/ExPolygon.hpp" +#include "libslic3r/BoundingBox.hpp" #include "FillCornerSmoothing.hpp" +#include +#include "libslic3r/Point.hpp" +#include "libslic3r/Polyline.hpp" +#include "libslic3r/libslic3r.h" +#include +#include +#include #include "FillHoneycomb.hpp" namespace Slic3r { diff --git a/src/libslic3r/Fill/FillHoneycomb.hpp b/src/libslic3r/Fill/FillHoneycomb.hpp index 55be423854..fd1fe039de 100644 --- a/src/libslic3r/Fill/FillHoneycomb.hpp +++ b/src/libslic3r/Fill/FillHoneycomb.hpp @@ -1,11 +1,17 @@ #ifndef slic3r_FillHoneycomb_hpp_ #define slic3r_FillHoneycomb_hpp_ +#include #include +#include +#include #include "../libslic3r.h" +#include "libslic3r/ExPolygon.hpp" #include "FillBase.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/Polyline.hpp" namespace Slic3r { diff --git a/src/libslic3r/Fill/FillLightning.cpp b/src/libslic3r/Fill/FillLightning.cpp index 77031b42e0..9f6200a88e 100644 --- a/src/libslic3r/Fill/FillLightning.cpp +++ b/src/libslic3r/Fill/FillLightning.cpp @@ -1,10 +1,18 @@ #include "../ClipperUtils.hpp" #include "../Print.hpp" #include "../ShortestPath.hpp" +#include "libslic3r/ExPolygon.hpp" +#include "libslic3r/Fill/Lightning/Layer.hpp" #include "FillBase.hpp" #include "FillCornerSmoothing.hpp" #include "FillLightning.hpp" #include "Lightning/Generator.hpp" +#include +#include "libslic3r/Point.hpp" +#include "libslic3r/Polyline.hpp" +#include "libslic3r/libslic3r.h" +#include +#include namespace Slic3r::FillLightning { diff --git a/src/libslic3r/Fill/FillLightning.hpp b/src/libslic3r/Fill/FillLightning.hpp index 74aa159b0b..8ad15b5c2a 100644 --- a/src/libslic3r/Fill/FillLightning.hpp +++ b/src/libslic3r/Fill/FillLightning.hpp @@ -1,7 +1,13 @@ #ifndef slic3r_FillLightning_hpp_ #define slic3r_FillLightning_hpp_ +#include "libslic3r/ExPolygon.hpp" #include "FillBase.hpp" +#include +#include +#include +#include "libslic3r/Point.hpp" +#include "libslic3r/Polyline.hpp" namespace Slic3r { diff --git a/src/libslic3r/Fill/FillLine.cpp b/src/libslic3r/Fill/FillLine.cpp index 5d548e5dbb..f46c102131 100644 --- a/src/libslic3r/Fill/FillLine.cpp +++ b/src/libslic3r/Fill/FillLine.cpp @@ -2,6 +2,17 @@ #include "../ExPolygon.hpp" #include "../ShortestPath.hpp" #include "../Surface.hpp" +#include "libslic3r/Fill/FillBase.hpp" +#include +#include "libslic3r/Point.hpp" +#include "libslic3r/Polyline.hpp" +#include +#include "libslic3r/libslic3r.h" +#include "libslic3r/BoundingBox.hpp" +#include "libslic3r/Line.hpp" +#include +#include +#include #include "FillLine.hpp" diff --git a/src/libslic3r/Fill/FillLine.hpp b/src/libslic3r/Fill/FillLine.hpp index 4ad9ca49a4..73633716dc 100644 --- a/src/libslic3r/Fill/FillLine.hpp +++ b/src/libslic3r/Fill/FillLine.hpp @@ -3,7 +3,12 @@ #include "../libslic3r.h" +#include "libslic3r/ExPolygon.hpp" #include "FillBase.hpp" +#include +#include "libslic3r/Point.hpp" +#include "libslic3r/Polyline.hpp" +#include "libslic3r/Line.hpp" namespace Slic3r { diff --git a/src/libslic3r/Fill/FillPlanePath.cpp b/src/libslic3r/Fill/FillPlanePath.cpp index 577aef0600..2ee2b1ef3a 100644 --- a/src/libslic3r/Fill/FillPlanePath.cpp +++ b/src/libslic3r/Fill/FillPlanePath.cpp @@ -2,7 +2,21 @@ #include "../ShortestPath.hpp" #include "../Surface.hpp" +#include "libslic3r/BoundingBox.hpp" +#include "libslic3r/Fill/FillBase.hpp" +#include "libslic3r/ExPolygon.hpp" +#include "libslic3r/ExtrusionEntity.hpp" #include "FillCornerSmoothing.hpp" +#include "libslic3r/Point.hpp" +#include +#include "libslic3r/Polyline.hpp" +#include "libslic3r/PrintConfig.hpp" +#include "libslic3r/libslic3r.h" +#include +#include +#include +#include +#include #include "FillPlanePath.hpp" namespace Slic3r { diff --git a/src/libslic3r/Fill/FillPlanePath.hpp b/src/libslic3r/Fill/FillPlanePath.hpp index a1e9068ca9..d24d9df9f4 100644 --- a/src/libslic3r/Fill/FillPlanePath.hpp +++ b/src/libslic3r/Fill/FillPlanePath.hpp @@ -1,11 +1,17 @@ #ifndef slic3r_FillPlanePath_hpp_ #define slic3r_FillPlanePath_hpp_ +#include +#include #include +#include #include "../libslic3r.h" +#include "libslic3r/ExPolygon.hpp" #include "FillBase.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/Polyline.hpp" namespace Slic3r { diff --git a/src/libslic3r/Fill/FillRectilinear.cpp b/src/libslic3r/Fill/FillRectilinear.cpp index b4373d3ea6..5951e154e9 100644 --- a/src/libslic3r/Fill/FillRectilinear.cpp +++ b/src/libslic3r/Fill/FillRectilinear.cpp @@ -1,3 +1,8 @@ +#include +#include +#include +#include +#include #include #include @@ -10,6 +15,9 @@ #include #include #include +#include +#include +#include #include "../ClipperUtils.hpp" #include "../ExPolygon.hpp" @@ -18,7 +26,17 @@ #include "../ShortestPath.hpp" #include "../VariableWidth.hpp" +#include "libslic3r/BoundingBox.hpp" +#include "libslic3r/Fill/FillBase.hpp" +#include "libslic3r/ExtrusionEntity.hpp" +#include "libslic3r/ExtrusionEntityCollection.hpp" #include "FillCornerSmoothing.hpp" +#include "libslic3r/Polygon.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/Polyline.hpp" +#include "libslic3r/Utils.hpp" +#include "libslic3r/PrintConfig.hpp" +#include "libslic3r/Flow.hpp" #include "FillRectilinear.hpp" // #define SLIC3R_DEBUG diff --git a/src/libslic3r/Fill/FillRectilinear.hpp b/src/libslic3r/Fill/FillRectilinear.hpp index adb9ef5131..a4453ad2d0 100644 --- a/src/libslic3r/Fill/FillRectilinear.hpp +++ b/src/libslic3r/Fill/FillRectilinear.hpp @@ -3,7 +3,18 @@ #include "../libslic3r.h" +#include "libslic3r/BoundingBox.hpp" +#include "libslic3r/ExtrusionEntity.hpp" +#include "libslic3r/ExPolygon.hpp" #include "FillBase.hpp" +#include "libslic3r/Polyline.hpp" +#include +#include +#include +#include +#include "libslic3r/Flow.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/Polygon.hpp" namespace Slic3r { diff --git a/src/libslic3r/Fill/FillSpiralInset.cpp b/src/libslic3r/Fill/FillSpiralInset.cpp index e6323c2572..8f663df340 100644 --- a/src/libslic3r/Fill/FillSpiralInset.cpp +++ b/src/libslic3r/Fill/FillSpiralInset.cpp @@ -3,12 +3,25 @@ #include "../Surface.hpp" #include "../VariableWidth.hpp" #include "Arachne/WallToolPaths.hpp" +#include "libslic3r/Polygon.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/Polyline.hpp" +#include "libslic3r/Arachne/utils/ExtrusionLine.hpp" +#include "libslic3r/libslic3r.h" +#include "libslic3r/Fill/FillBase.hpp" +#include "libslic3r/PrintConfig.hpp" +#include "libslic3r/BoundingBox.hpp" #include "FillSpiralInset.hpp" #include +#include #include +#include #include +#include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/Fill/FillSpiralInset.hpp b/src/libslic3r/Fill/FillSpiralInset.hpp index eb799ec2f3..8b95657b4b 100644 --- a/src/libslic3r/Fill/FillSpiralInset.hpp +++ b/src/libslic3r/Fill/FillSpiralInset.hpp @@ -1,7 +1,11 @@ #ifndef slic3r_FillSpiralInset_hpp_ #define slic3r_FillSpiralInset_hpp_ +#include "libslic3r/ExPolygon.hpp" #include "FillBase.hpp" +#include +#include "libslic3r/Point.hpp" +#include "libslic3r/Polyline.hpp" namespace Slic3r { diff --git a/src/libslic3r/Fill/FillTpmsD.cpp b/src/libslic3r/Fill/FillTpmsD.cpp index 06e0302e8d..bb1a338691 100644 --- a/src/libslic3r/Fill/FillTpmsD.cpp +++ b/src/libslic3r/Fill/FillTpmsD.cpp @@ -1,10 +1,15 @@ #include #include +#include +#include +#include #include //#include #include "../ClipperUtils.hpp" #include "../ShortestPath.hpp" +#include "libslic3r/Polyline.hpp" +#include "libslic3r/ExPolygon.hpp" #include "libslic3r/BoundingBox.hpp" #include "libslic3r/Fill/FillBase.hpp" #include "libslic3r/Point.hpp" diff --git a/src/libslic3r/Fill/FillTpmsFK.cpp b/src/libslic3r/Fill/FillTpmsFK.cpp index 66ed1cbc84..a48a63f3d0 100644 --- a/src/libslic3r/Fill/FillTpmsFK.cpp +++ b/src/libslic3r/Fill/FillTpmsFK.cpp @@ -1,8 +1,17 @@ #include "../ClipperUtils.hpp" #include "../MarchingSquares.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/libslic3r.h" +#include "libslic3r/BoundingBox.hpp" +#include "libslic3r/Polyline.hpp" +#include "libslic3r/Execution/ExecutionTBB.hpp" +#include "libslic3r/Fill/FillBase.hpp" +#include "libslic3r/ExPolygon.hpp" #include "FillTpmsFK.hpp" #include #include +#include +#include #include #include #include diff --git a/src/libslic3r/Fill/Lightning/DistanceField.cpp b/src/libslic3r/Fill/Lightning/DistanceField.cpp index 65da94b839..73d74cef03 100644 --- a/src/libslic3r/Fill/Lightning/DistanceField.cpp +++ b/src/libslic3r/Fill/Lightning/DistanceField.cpp @@ -4,8 +4,22 @@ #include "DistanceField.hpp" //Class we're implementing. #include "../FillRectilinear.hpp" #include "../../ClipperUtils.hpp" +#include "libslic3r/libslic3r.h" +#include "libslic3r/Polygon.hpp" +#include "libslic3r/BoundingBox.hpp" +#include "libslic3r/ExPolygon.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/Line.hpp" +#include +#include +#include +#include +#include +#include +#include #include +#include #ifdef LIGHTNING_DISTANCE_FIELD_DEBUG_OUTPUT #include "../../SVG.hpp" diff --git a/src/libslic3r/Fill/Lightning/DistanceField.hpp b/src/libslic3r/Fill/Lightning/DistanceField.hpp index 007ac235e5..737c432824 100644 --- a/src/libslic3r/Fill/Lightning/DistanceField.hpp +++ b/src/libslic3r/Fill/Lightning/DistanceField.hpp @@ -7,6 +7,13 @@ #include "../../BoundingBox.hpp" #include "../../Point.hpp" #include "../../Polygon.hpp" +#include "libslic3r/libslic3r.h" +#include +#include +#include +#include +#include +#include //#define LIGHTNING_DISTANCE_FIELD_DEBUG_OUTPUT diff --git a/src/libslic3r/Fill/Lightning/Generator.cpp b/src/libslic3r/Fill/Lightning/Generator.cpp index c638610aa5..c35eb3250f 100644 --- a/src/libslic3r/Fill/Lightning/Generator.cpp +++ b/src/libslic3r/Fill/Lightning/Generator.cpp @@ -2,6 +2,15 @@ //CuraEngine is released under the terms of the AGPLv3 or higher. #include "Generator.hpp" +#include "libslic3r/SVG.hpp" +#include "libslic3r/BoundingBox.hpp" +#include "libslic3r/PrintConfig.hpp" +#include "libslic3r/Flow.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/Polygon.hpp" +#include "libslic3r/Surface.hpp" +#include "libslic3r/Fill/Lightning/Layer.hpp" +#include "libslic3r/EdgeGrid.hpp" #include "TreeNode.hpp" #include "../../ClipperUtils.hpp" @@ -9,6 +18,18 @@ #include "../../Print.hpp" #include "ExPolygon.hpp" +#include +#include +#include +#include +#include +#include +#include +#include "libslic3r/libslic3r.h" +#include +#include +#include +#include /* Possible future tasks/optimizations,etc.: * - Improve connecting heuristic to favor connecting to shorter trees diff --git a/src/libslic3r/Fill/Lightning/Generator.hpp b/src/libslic3r/Fill/Lightning/Generator.hpp index 79110fb8dd..18be848b9e 100644 --- a/src/libslic3r/Fill/Lightning/Generator.hpp +++ b/src/libslic3r/Fill/Lightning/Generator.hpp @@ -4,8 +4,12 @@ #ifndef LIGHTNING_GENERATOR_H #define LIGHTNING_GENERATOR_H +#include "libslic3r/BoundingBox.hpp" #include "Layer.hpp" +#include "libslic3r/Polygon.hpp" +#include "libslic3r/libslic3r.h" +#include #include #include #include diff --git a/src/libslic3r/Fill/Lightning/Layer.cpp b/src/libslic3r/Fill/Lightning/Layer.cpp index 4a30a95f45..f461888a14 100644 --- a/src/libslic3r/Fill/Lightning/Layer.cpp +++ b/src/libslic3r/Fill/Lightning/Layer.cpp @@ -3,16 +3,31 @@ #include "Layer.hpp" //The class we're implementing. +#include "libslic3r/BoundingBox.hpp" #include "DistanceField.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/Polygon.hpp" +#include "libslic3r/EdgeGrid.hpp" +#include "libslic3r/Line.hpp" +#include "libslic3r/Polyline.hpp" #include "TreeNode.hpp" #include "../../ClipperUtils.hpp" #include "../../Geometry.hpp" #include "Utils.hpp" +#include "libslic3r/libslic3r.h" +#include +#include +#include +#include +#include +#include #include #include #include +#include +#include namespace Slic3r::FillLightning { diff --git a/src/libslic3r/Fill/Lightning/Layer.hpp b/src/libslic3r/Fill/Lightning/Layer.hpp index e8c0a38b4d..378dc354b2 100644 --- a/src/libslic3r/Fill/Lightning/Layer.hpp +++ b/src/libslic3r/Fill/Lightning/Layer.hpp @@ -6,7 +6,12 @@ #include "../../EdgeGrid.hpp" #include "../../Polygon.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/BoundingBox.hpp" +#include "libslic3r/libslic3r.h" +#include "libslic3r/Polyline.hpp" +#include #include #include #include diff --git a/src/libslic3r/Fill/Lightning/TreeNode.cpp b/src/libslic3r/Fill/Lightning/TreeNode.cpp index c57180e530..9a08242392 100644 --- a/src/libslic3r/Fill/Lightning/TreeNode.cpp +++ b/src/libslic3r/Fill/Lightning/TreeNode.cpp @@ -4,6 +4,22 @@ #include "TreeNode.hpp" #include "../../Geometry.hpp" +#include "libslic3r/libslic3r.h" +#include "libslic3r/Point.hpp" +#include +#include +#include +#include "libslic3r/Polygon.hpp" +#include "libslic3r/EdgeGrid.hpp" +#include +#include +#include +#include +#include +#include "libslic3r/Line.hpp" +#include "libslic3r/Polyline.hpp" +#include +#include namespace Slic3r::FillLightning { diff --git a/src/libslic3r/Fill/Lightning/TreeNode.hpp b/src/libslic3r/Fill/Lightning/TreeNode.hpp index 95559524ba..c82ca3f2b6 100644 --- a/src/libslic3r/Fill/Lightning/TreeNode.hpp +++ b/src/libslic3r/Fill/Lightning/TreeNode.hpp @@ -4,6 +4,8 @@ #ifndef LIGHTNING_TREE_NODE_H #define LIGHTNING_TREE_NODE_H +#include +#include #include #include #include @@ -12,7 +14,11 @@ #include "../../EdgeGrid.hpp" #include "../../Polygon.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/Polyline.hpp" +#include "libslic3r/BoundingBox.hpp" #include "SVG.hpp" +#include "libslic3r/libslic3r.h" //#define LIGHTNING_TREE_NODE_DEBUG_OUTPUT diff --git a/src/libslic3r/Flow.cpp b/src/libslic3r/Flow.cpp index 80912362ce..13ee73973e 100644 --- a/src/libslic3r/Flow.cpp +++ b/src/libslic3r/Flow.cpp @@ -1,10 +1,15 @@ #include "Flow.hpp" +#include "Exception.hpp" +#include "Config.hpp" #include "I18N.hpp" #include "Print.hpp" +#include "libslic3r.h" #include #include #include +#include +#include // Mark string for localization and translate. #define L(s) Slic3r::I18N::translate(s) diff --git a/src/libslic3r/Flow.hpp b/src/libslic3r/Flow.hpp index 79cb1b324d..14d20a41c7 100644 --- a/src/libslic3r/Flow.hpp +++ b/src/libslic3r/Flow.hpp @@ -5,6 +5,8 @@ #include "Config.hpp" #include "Exception.hpp" #include "ExtrusionEntity.hpp" +#include +#include namespace Slic3r { diff --git a/src/libslic3r/FlushVolCalc.cpp b/src/libslic3r/FlushVolCalc.cpp index 635328f5ab..daeaf587c6 100644 --- a/src/libslic3r/FlushVolCalc.cpp +++ b/src/libslic3r/FlushVolCalc.cpp @@ -1,5 +1,8 @@ +#include #include #include +#include +#include "FlushVolPredictor.hpp" #include "slic3r/Utils/ColorSpaceConvert.hpp" #include "Utils.hpp" #include "FlushVolCalc.hpp" diff --git a/src/libslic3r/FlushVolPredictor.cpp b/src/libslic3r/FlushVolPredictor.cpp index dc39284b5f..e18b726c1f 100644 --- a/src/libslic3r/FlushVolPredictor.cpp +++ b/src/libslic3r/FlushVolPredictor.cpp @@ -1,9 +1,19 @@ #include "FlushVolPredictor.hpp" #include "Utils.hpp" +#include +#include +#include #include +#include +#include +#include #include #include #include +#include +#include +#include +#include namespace FlushPredict { diff --git a/src/libslic3r/Format/3mf.cpp b/src/libslic3r/Format/3mf.cpp index 738f1f5f6f..2f457f634d 100644 --- a/src/libslic3r/Format/3mf.cpp +++ b/src/libslic3r/Format/3mf.cpp @@ -10,10 +10,37 @@ #include "../Time.hpp" #include "../I18N.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/TriangleMesh.hpp" +#include "libslic3r/Slicing.hpp" +#include "libslic3r/SLA/SupportPoint.hpp" +#include "libslic3r/SLA/Hollowing.hpp" +#include "libslic3r/Config.hpp" +#include "libslic3r_version.h" +#include "libslic3r/PrintConfig.hpp" #include "3mf.hpp" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include +#include +#include #include #include @@ -28,6 +55,9 @@ #include #include #include +#include +#include +#include namespace pt = boost::property_tree; #include diff --git a/src/libslic3r/Format/3mf.hpp b/src/libslic3r/Format/3mf.hpp index c46b4e5533..ec59aff307 100644 --- a/src/libslic3r/Format/3mf.hpp +++ b/src/libslic3r/Format/3mf.hpp @@ -1,6 +1,7 @@ #ifndef slic3r_Format_3mf_hpp_ #define slic3r_Format_3mf_hpp_ #include +#include namespace Slic3r { // PrusaFileParser is used to check 3mf file is from Prusa diff --git a/src/libslic3r/Format/AMF.cpp b/src/libslic3r/Format/AMF.cpp index c5c9904e87..abf6953855 100644 --- a/src/libslic3r/Format/AMF.cpp +++ b/src/libslic3r/Format/AMF.cpp @@ -1,4 +1,10 @@ +#include +#include +#include +#include +#include #include +#include #include #include #include @@ -16,11 +22,16 @@ #include "../Geometry.hpp" #include "../CustomGCode.hpp" #include "../LocalesUtils.hpp" +#include "libslic3r/Config.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/TriangleMesh.hpp" #include "AMF.hpp" #include #include +#include +#include namespace pt = boost::property_tree; #include diff --git a/src/libslic3r/Format/AMF.hpp b/src/libslic3r/Format/AMF.hpp index e48e424748..335d47d6fb 100644 --- a/src/libslic3r/Format/AMF.hpp +++ b/src/libslic3r/Format/AMF.hpp @@ -5,6 +5,7 @@ namespace Slic3r { class Model; class DynamicPrintConfig; +struct ConfigSubstitutionContext; // Load the content of an amf file into the given model and configuration. extern bool load_amf(const char* path, DynamicPrintConfig* config, ConfigSubstitutionContext* config_substitutions, Model* model, bool* use_inches); diff --git a/src/libslic3r/Format/AssimpImport.cpp b/src/libslic3r/Format/AssimpImport.cpp index f0ae99506a..0ab728f305 100644 --- a/src/libslic3r/Format/AssimpImport.cpp +++ b/src/libslic3r/Format/AssimpImport.cpp @@ -4,21 +4,30 @@ #include "ResourcePathUtils.hpp" #include +#include #include #include +#include #include #include +#include +#include +#include #include #include +#include #include #include #include +#include #include +#include #include #include #include +#include #include namespace Slic3r { diff --git a/src/libslic3r/Format/DRC.cpp b/src/libslic3r/Format/DRC.cpp index c07655f69b..1cf9c13565 100644 --- a/src/libslic3r/Format/DRC.cpp +++ b/src/libslic3r/Format/DRC.cpp @@ -1,3 +1,15 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include @@ -9,6 +21,7 @@ #include #include #include +#include using namespace draco; #include "libslic3r/Model.hpp" diff --git a/src/libslic3r/Format/OBJ.cpp b/src/libslic3r/Format/OBJ.cpp index 8242f2c0c9..db24ebec0b 100644 --- a/src/libslic3r/Format/OBJ.cpp +++ b/src/libslic3r/Format/OBJ.cpp @@ -2,15 +2,27 @@ #include "../Model.hpp" #include "../TriangleMesh.hpp" #include "../TexturePainting.hpp" +#include "libslic3r/Color.hpp" +#include "libslic3r/Point.hpp" #include "ResourcePathUtils.hpp" #include "OBJ.hpp" #include "objparser.hpp" +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include +#include #ifdef _WIN32 #define DIR_SEPARATOR '\\' diff --git a/src/libslic3r/Format/OBJ.hpp b/src/libslic3r/Format/OBJ.hpp index c103326af6..0767ddd87d 100644 --- a/src/libslic3r/Format/OBJ.hpp +++ b/src/libslic3r/Format/OBJ.hpp @@ -2,7 +2,14 @@ #define slic3r_Format_OBJ_hpp_ #include "libslic3r/Color.hpp" #include "objparser.hpp" +#include "libslic3r/Point.hpp" +#include +#include +#include +#include +#include #include +#include namespace Slic3r { class TriangleMesh; diff --git a/src/libslic3r/Format/ResourcePathUtils.hpp b/src/libslic3r/Format/ResourcePathUtils.hpp index d82b92bd45..eccfcba84f 100644 --- a/src/libslic3r/Format/ResourcePathUtils.hpp +++ b/src/libslic3r/Format/ResourcePathUtils.hpp @@ -2,6 +2,9 @@ #define slic3r_Format_ResourcePathUtils_hpp_ #include +#include +#include +#include #include #include #include diff --git a/src/libslic3r/Format/SL1.cpp b/src/libslic3r/Format/SL1.cpp index 5796c108e5..15589e79b4 100644 --- a/src/libslic3r/Format/SL1.cpp +++ b/src/libslic3r/Format/SL1.cpp @@ -1,13 +1,34 @@ #include "SL1.hpp" +#include "libslic3r/ExPolygon.hpp" +#include "libslic3r/Config.hpp" #include "GCode/ThumbnailData.hpp" +#include "libslic3r/libslic3r.h" +#include "libslic3r/Polygon.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/Utils.hpp" #include "libslic3r/Time.hpp" +#include +#include +#include +#include #include #include #include "libslic3r/Zipper.hpp" #include "libslic3r/SLAPrint.hpp" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include "libslic3r/Exception.hpp" @@ -20,10 +41,15 @@ #include "libslic3r/miniz_extension.hpp" #include "libslic3r/PNGReadWrite.hpp" #include "libslic3r/LocalesUtils.hpp" +#include "libslic3r_version.h" #include #include #include +#include +#include +#include +#include namespace marchsq { diff --git a/src/libslic3r/Format/SL1.hpp b/src/libslic3r/Format/SL1.hpp index 6fb4405c90..ad6b51f7d9 100644 --- a/src/libslic3r/Format/SL1.hpp +++ b/src/libslic3r/Format/SL1.hpp @@ -1,8 +1,17 @@ #ifndef ARCHIVETRAITS_HPP #define ARCHIVETRAITS_HPP +#include +#include +#include #include +#include +#include "libslic3r/PrintConfig.hpp" +#include "libslic3r/SLA/RasterBase.hpp" +#include "libslic3r/Config.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/Exception.hpp" #include "libslic3r/Zipper.hpp" #include "libslic3r/SLAPrint.hpp" diff --git a/src/libslic3r/Format/STEP.cpp b/src/libslic3r/Format/STEP.cpp index 8305174e73..611648bc5a 100644 --- a/src/libslic3r/Format/STEP.cpp +++ b/src/libslic3r/Format/STEP.cpp @@ -1,10 +1,30 @@ #include "../libslic3r.h" #include "../Model.hpp" #include "../TriangleMesh.hpp" +#include "libslic3r/Exception.hpp" +#include "libslic3r/Utils.hpp" +#include "libslic3r/Point.hpp" #include "libslic3r/Thread.hpp" #include "STEP.hpp" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include @@ -12,6 +32,8 @@ #include #include +#include +#include #ifdef _WIN32 #define DIR_SEPARATOR '\\' diff --git a/src/libslic3r/Format/STEP.hpp b/src/libslic3r/Format/STEP.hpp index 336fd79766..5563a690c8 100644 --- a/src/libslic3r/Format/STEP.hpp +++ b/src/libslic3r/Format/STEP.hpp @@ -3,16 +3,26 @@ #include "XCAFDoc_DocumentTool.hxx" #include "XCAFApp_Application.hxx" #include "XCAFDoc_ShapeTool.hxx" +#include +#include #include #include #include #include +#include +#include +#include +#include +#include +#include +#include namespace fs = boost::filesystem; namespace Slic3r { class TriangleMesh; +class Model; class ModelObject; // load step stage diff --git a/src/libslic3r/Format/STL.cpp b/src/libslic3r/Format/STL.cpp index 1888f5cd18..55489af976 100644 --- a/src/libslic3r/Format/STL.cpp +++ b/src/libslic3r/Format/STL.cpp @@ -4,7 +4,9 @@ #include "STL.hpp" +#include #include +#include #ifdef _WIN32 #define DIR_SEPARATOR '\\' diff --git a/src/libslic3r/Format/ZipperArchiveImport.cpp b/src/libslic3r/Format/ZipperArchiveImport.cpp index 657e420bbc..3f690e42da 100644 --- a/src/libslic3r/Format/ZipperArchiveImport.cpp +++ b/src/libslic3r/Format/ZipperArchiveImport.cpp @@ -1,12 +1,25 @@ #include "ZipperArchiveImport.hpp" +#include "libslic3r/Config.hpp" +#include "libslic3r/LocalesUtils.hpp" #include "libslic3r/miniz_extension.hpp" #include "libslic3r/Exception.hpp" #include "libslic3r/PrintConfig.hpp" +#include +#include +#include #include #include #include +#include +#include +#include +#include +#include +#include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/Format/ZipperArchiveImport.hpp b/src/libslic3r/Format/ZipperArchiveImport.hpp index adddcacd40..18cbb78209 100644 --- a/src/libslic3r/Format/ZipperArchiveImport.hpp +++ b/src/libslic3r/Format/ZipperArchiveImport.hpp @@ -1,12 +1,14 @@ #ifndef ZIPPERARCHIVEIMPORT_HPP #define ZIPPERARCHIVEIMPORT_HPP +#include #include #include #include #include +#include "libslic3r/Config.hpp" #include "libslic3r/PrintConfig.hpp" namespace Slic3r { diff --git a/src/libslic3r/Format/bbs_3mf.cpp b/src/libslic3r/Format/bbs_3mf.cpp index 160c169d69..fb4c877a04 100644 --- a/src/libslic3r/Format/bbs_3mf.cpp +++ b/src/libslic3r/Format/bbs_3mf.cpp @@ -12,10 +12,61 @@ #include "../Time.hpp" #include "../I18N.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/GCode/GCodeProcessor.hpp" +#include "libslic3r/PrintConfig.hpp" +#include "libslic3r/MultiNozzleUtils.hpp" +#include "libslic3r/TriangleMesh.hpp" +#include "libslic3r/ObjectID.hpp" +#include "libslic3r/Slicing.hpp" +#include "libslic3r/BrimEarsPoint.hpp" +#include "libslic3r/Config.hpp" +#include "libslic3r/CustomGCode.hpp" +#include "libslic3r_version.h" #include "bbs_3mf.hpp" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include @@ -39,6 +90,10 @@ #include #include #include +#include +#include +#include +#include namespace pt = boost::property_tree; diff --git a/src/libslic3r/Format/bbs_3mf.hpp b/src/libslic3r/Format/bbs_3mf.hpp index 768ae7bcfe..489870b8fc 100644 --- a/src/libslic3r/Format/bbs_3mf.hpp +++ b/src/libslic3r/Format/bbs_3mf.hpp @@ -2,9 +2,21 @@ #define BBS_3MF_hpp_ #include "../GCode/ThumbnailData.hpp" +#include "libslic3r/MultiNozzleUtils.hpp" +#include "libslic3r/Semver.hpp" #include "libslic3r/ProjectTask.hpp" #include "libslic3r/GCode/GCodeProcessor.hpp" +#include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include namespace Slic3r { class Model; diff --git a/src/libslic3r/Format/objparser.cpp b/src/libslic3r/Format/objparser.cpp index c5f33a7d0a..5146a21e80 100644 --- a/src/libslic3r/Format/objparser.cpp +++ b/src/libslic3r/Format/objparser.cpp @@ -1,8 +1,16 @@ +#include +#include +#include +#include +#include #include #include #include #include +#include +#include +#include #include "objparser.hpp" diff --git a/src/libslic3r/Format/objparser.hpp b/src/libslic3r/Format/objparser.hpp index e711bdf6f4..b34c0f3bf2 100644 --- a/src/libslic3r/Format/objparser.hpp +++ b/src/libslic3r/Format/objparser.hpp @@ -6,6 +6,7 @@ #include #include #include +#include namespace ObjParser { diff --git a/src/libslic3r/Format/svg.cpp b/src/libslic3r/Format/svg.cpp index c9738c8058..7521afddb9 100644 --- a/src/libslic3r/Format/svg.cpp +++ b/src/libslic3r/Format/svg.cpp @@ -1,3 +1,5 @@ +#include "libslic3r/Point.hpp" +#include "libslic3r/Format/STEP.hpp" #include "libslic3r/ClipperUtils.hpp" #include "../libslic3r.h" #include "../Model.hpp" @@ -6,9 +8,23 @@ #include "svg.hpp" #include "nanosvg/nanosvg.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include +#include +#include #include "BRepBuilderAPI_MakeWire.hxx" #include "BRepBuilderAPI_MakeEdge.hxx" diff --git a/src/libslic3r/Format/svg.hpp b/src/libslic3r/Format/svg.hpp index 095251c32a..cf6c35137f 100644 --- a/src/libslic3r/Format/svg.hpp +++ b/src/libslic3r/Format/svg.hpp @@ -1,4 +1,7 @@ #pragma once + +#include + namespace Slic3r { class Model; diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index 25addff79d..2b0f254b43 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -1,9 +1,31 @@ +#include "ArcFitter.hpp" #include "BoundingBox.hpp" +#include "Circle.hpp" #include "Config.hpp" +#include "GCode/GCodeProcessor.hpp" +#include "Flow.hpp" +#include "GCode/ThumbnailData.hpp" +#include "GCode/ToolOrdering.hpp" +#include "GCode/SpiralVase.hpp" +#include "GCode/PressureEqualizer.hpp" +#include "GCode/SmallAreaInfillFlowCompensator.hpp" +#include "GCode/CoolingBuffer.hpp" +#include "GCode/AdaptivePAProcessor.hpp" +#include "CustomGCode.hpp" +#include "GCode/TimelapsePosPicker.hpp" +#include "ExPolygon.hpp" #include "GCode/WipePathHelpers.hpp" +#include "GCodeReader.hpp" #include "GCodeWriter.hpp" +#include "Point.hpp" +#include "Line.hpp" +#include "ObjectID.hpp" +#include "Layer.hpp" #include "Polygon.hpp" +#include "Polyline.hpp" +#include "PrintBase.hpp" #include "PrintConfig.hpp" +#include "enum_bitmask.hpp" #include "libslic3r.h" #include "I18N.hpp" #include "GCode.hpp" @@ -26,16 +48,39 @@ #include "libslic3r/format.hpp" #include "Time.hpp" #include "GCode/ExtrusionProcessor.hpp" +#include +#include #include +#include +#include +#include +#include #include #include +#include +#include +#include #include #include +#include +#include +#include +#include #include #include +#include +#include #include +#include +#include +#include +#include +#include #include #include +#include +#include +#include #include #include @@ -54,7 +99,9 @@ #include "SVG.hpp" #include +#include #include "calib.hpp" +#include "libslic3r_version.h" // Intel redesigned some TBB interface considerably when merging TBB with their oneAPI set of libraries, see GH #7332. // We are using quite an old TBB 2017 U7. Before we update our build servers, let's use the old API, which is deprecated in up to date TBB. #if ! defined(TBB_VERSION_MAJOR) diff --git a/src/libslic3r/GCode.hpp b/src/libslic3r/GCode.hpp index 7567bc6e0d..0172fcf8c0 100644 --- a/src/libslic3r/GCode.hpp +++ b/src/libslic3r/GCode.hpp @@ -1,6 +1,11 @@ #ifndef slic3r_GCode_hpp_ #define slic3r_GCode_hpp_ +#include "ExtrusionEntity.hpp" +#include "Polygon.hpp" +#include "Config.hpp" +#include "ExtrusionEntityCollection.hpp" +#include "Print.hpp" #include "libslic3r.h" #include "ExPolygon.hpp" #include "GCodeWriter.hpp" @@ -28,12 +33,20 @@ #include "GCode/AdaptivePAProcessor.hpp" #include "GCode/TimelapsePosPicker.hpp" +#include "libslic3r_version.h" +#include +#include +#include +#include +#include #include #include #include #include #include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/GCode/AdaptivePAInterpolator.cpp b/src/libslic3r/GCode/AdaptivePAInterpolator.cpp index 2681ab13b2..5d86420ad2 100644 --- a/src/libslic3r/GCode/AdaptivePAInterpolator.cpp +++ b/src/libslic3r/GCode/AdaptivePAInterpolator.cpp @@ -4,10 +4,16 @@ // Implementation file for the AdaptivePAInterpolator class, providing methods to parse data and perform PA interpolation. #include "AdaptivePAInterpolator.hpp" +#include +#include "libslic3r/GCode/PchipInterpolatorHelper.hpp" +#include #include #include #include #include +#include +#include +#include /** * @brief Parses the input data and sets up the interpolators. diff --git a/src/libslic3r/GCode/AdaptivePAProcessor.cpp b/src/libslic3r/GCode/AdaptivePAProcessor.cpp index 8145db3b9f..21bd308853 100644 --- a/src/libslic3r/GCode/AdaptivePAProcessor.cpp +++ b/src/libslic3r/GCode/AdaptivePAProcessor.cpp @@ -4,11 +4,20 @@ // Implementation of the AdaptivePAProcessor class, responsible for processing G-code layers with adaptive pressure advance. #include "../GCode.hpp" +#include "libslic3r/GCode/AdaptivePAInterpolator.hpp" +#include "libslic3r/libslic3r.h" #include "AdaptivePAProcessor.hpp" +#include +#include +#include +#include +#include +#include #include #include #include #include +#include namespace Slic3r { diff --git a/src/libslic3r/GCode/AdaptivePAProcessor.hpp b/src/libslic3r/GCode/AdaptivePAProcessor.hpp index 01aa2f1104..c662191536 100644 --- a/src/libslic3r/GCode/AdaptivePAProcessor.hpp +++ b/src/libslic3r/GCode/AdaptivePAProcessor.hpp @@ -11,12 +11,14 @@ #include #include #include +#include #include "AdaptivePAInterpolator.hpp" namespace Slic3r { // Forward declaration of GCode class class GCode; +class PrintConfig; /** * @brief Class for processing G-code layers with adaptive pressure advance. diff --git a/src/libslic3r/GCode/AvoidCrossingPerimeters.cpp b/src/libslic3r/GCode/AvoidCrossingPerimeters.cpp index 21f02b3462..62c2ae61fd 100644 --- a/src/libslic3r/GCode/AvoidCrossingPerimeters.cpp +++ b/src/libslic3r/GCode/AvoidCrossingPerimeters.cpp @@ -7,11 +7,30 @@ #include "../Geometry.hpp" #include "../ClipperUtils.hpp" #include "../SVG.hpp" +#include "libslic3r/Line.hpp" +#include "libslic3r/libslic3r.h" +#include "libslic3r/Point.hpp" +#include "libslic3r/Utils.hpp" +#include "libslic3r/Polyline.hpp" +#include "libslic3r/BoundingBox.hpp" +#include "libslic3r/Flow.hpp" +#include "libslic3r/Surface.hpp" +#include "libslic3r/Config.hpp" #include "AvoidCrossingPerimeters.hpp" +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/GCode/AvoidCrossingPerimeters.hpp b/src/libslic3r/GCode/AvoidCrossingPerimeters.hpp index a348eed786..53e2942d3b 100644 --- a/src/libslic3r/GCode/AvoidCrossingPerimeters.hpp +++ b/src/libslic3r/GCode/AvoidCrossingPerimeters.hpp @@ -4,6 +4,10 @@ #include "../libslic3r.h" #include "../ExPolygon.hpp" #include "../EdgeGrid.hpp" +#include "libslic3r/Polyline.hpp" +#include "libslic3r/Polygon.hpp" +#include "libslic3r/BoundingBox.hpp" +#include namespace Slic3r { diff --git a/src/libslic3r/GCode/ConflictChecker.cpp b/src/libslic3r/GCode/ConflictChecker.cpp index e8f533be7c..70b58423fa 100644 --- a/src/libslic3r/GCode/ConflictChecker.cpp +++ b/src/libslic3r/GCode/ConflictChecker.cpp @@ -1,11 +1,28 @@ #include "ConflictChecker.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/Line.hpp" +#include "libslic3r/libslic3r.h" +#include "libslic3r/ExtrusionEntityCollection.hpp" +#include "libslic3r/ExtrusionEntity.hpp" +#include "libslic3r/Layer.hpp" +#include "libslic3r/Print.hpp" +#include "libslic3r/GCode/GCodeProcessor.hpp" +#include +#include +#include +#include +#include +#include +#include #include #include #include #include #include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/GCode/ConflictChecker.hpp b/src/libslic3r/GCode/ConflictChecker.hpp index a10b969431..50a126b89a 100644 --- a/src/libslic3r/GCode/ConflictChecker.hpp +++ b/src/libslic3r/GCode/ConflictChecker.hpp @@ -5,8 +5,18 @@ #include "../Model.hpp" #include "../Print.hpp" #include "../Layer.hpp" +#include "libslic3r/Line.hpp" +#include "libslic3r/ExtrusionEntity.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/Polyline.hpp" +#include "libslic3r/ExtrusionEntityCollection.hpp" +#include "libslic3r/GCode/GCodeProcessor.hpp" #include +#include +#include +#include +#include #include #include diff --git a/src/libslic3r/GCode/CoolingBuffer.cpp b/src/libslic3r/GCode/CoolingBuffer.cpp index 7f6e9c67d5..6524b3ce38 100644 --- a/src/libslic3r/GCode/CoolingBuffer.cpp +++ b/src/libslic3r/GCode/CoolingBuffer.cpp @@ -1,12 +1,26 @@ #include "../GCode.hpp" +#include "libslic3r/Extruder.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/libslic3r.h" +#include "libslic3r/Circle.hpp" #include "CoolingBuffer.hpp" +#include #include #include #include +#include +#include +#include +#include +#include +#include #include #include +#include #include #include +#include +#include #if 0 #define DEBUG diff --git a/src/libslic3r/GCode/CoolingBuffer.hpp b/src/libslic3r/GCode/CoolingBuffer.hpp index 742b8f78b7..0f7e27b14f 100644 --- a/src/libslic3r/GCode/CoolingBuffer.hpp +++ b/src/libslic3r/GCode/CoolingBuffer.hpp @@ -2,14 +2,18 @@ #define slic3r_CoolingBuffer_hpp_ #include "../libslic3r.h" +#include "../Point.hpp" +#include #include #include #include +#include namespace Slic3r { class GCode; class Layer; +class PrintConfig; struct PerExtruderAdjustments; // A standalone G-code filter, to control cooling of the print. diff --git a/src/libslic3r/GCode/ElegooGCodeProcessorHelper.cpp b/src/libslic3r/GCode/ElegooGCodeProcessorHelper.cpp index cac53637a5..1b086e4f47 100644 --- a/src/libslic3r/GCode/ElegooGCodeProcessorHelper.cpp +++ b/src/libslic3r/GCode/ElegooGCodeProcessorHelper.cpp @@ -1,10 +1,13 @@ #include "GCodeProcessor.hpp" +#include "libslic3r/GCodeReader.hpp" #include "libslic3r/libslic3r.h" #include #include #include +#include +#include #include namespace Slic3r { diff --git a/src/libslic3r/GCode/ExtrusionProcessor.hpp b/src/libslic3r/GCode/ExtrusionProcessor.hpp index 8ed829aa6e..7cc886bfe9 100644 --- a/src/libslic3r/GCode/ExtrusionProcessor.hpp +++ b/src/libslic3r/GCode/ExtrusionProcessor.hpp @@ -15,7 +15,10 @@ #include "../ClipperUtils.hpp" #include "../Flow.hpp" #include "../Config.hpp" +#include "libslic3r/Line.hpp" +#include "libslic3r/ExPolygon.hpp" +#include #include #include #include diff --git a/src/libslic3r/GCode/FanMover.cpp b/src/libslic3r/GCode/FanMover.cpp index 9d77d1d04c..cb5fc310ee 100644 --- a/src/libslic3r/GCode/FanMover.cpp +++ b/src/libslic3r/GCode/FanMover.cpp @@ -1,10 +1,25 @@ #include "FanMover.hpp" +#include "libslic3r/PrintConfig.hpp" +#include "libslic3r/libslic3r.h" +#include "libslic3r/ExtrusionEntity.hpp" #include "GCodeReader.hpp" +#include +#include +#include +#include +#include +#include +#include +#include #include /* +#include +#include +#include #include +#include #include #include @@ -12,8 +27,12 @@ #include "../PrintConfig.hpp" #include "../Utils.hpp" #include "Print.hpp" +#include "libslic3r/PrintConfig.hpp" +#include "libslic3r/libslic3r.h" #include +#include +#include */ diff --git a/src/libslic3r/GCode/FanMover.hpp b/src/libslic3r/GCode/FanMover.hpp index 17addd855c..b3a6fcb309 100644 --- a/src/libslic3r/GCode/FanMover.hpp +++ b/src/libslic3r/GCode/FanMover.hpp @@ -9,7 +9,12 @@ #include "../Point.hpp" #include "../GCodeReader.hpp" #include "../GCodeWriter.hpp" +#include +#include +#include #include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/GCode/GCodeProcessor.cpp b/src/libslic3r/GCode/GCodeProcessor.cpp index e03be228d0..760a04eb4d 100644 --- a/src/libslic3r/GCode/GCodeProcessor.cpp +++ b/src/libslic3r/GCode/GCodeProcessor.cpp @@ -1,14 +1,30 @@ +#include "libslic3r/Config.hpp" +#include "libslic3r/CustomGCode.hpp" +#include "libslic3r/Exception.hpp" +#include "libslic3r/BoundingBox.hpp" +#include "libslic3r/CommonDefs.hpp" +#include "libslic3r/ArcFitter.hpp" #include "ExtrusionEntity.hpp" +#include "libslic3r/GCodeReader.hpp" #include "GCodeWriter.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/PrintBase.hpp" +#include "libslic3r/Polygon.hpp" #include "PrintConfig.hpp" +#include "libslic3r/TriangleSelector.hpp" #include "libslic3r/libslic3r.h" #include "libslic3r/Utils.hpp" #include "libslic3r/Print.hpp" #include "libslic3r/ClipperUtils.hpp" #include "libslic3r/LocalesUtils.hpp" #include "libslic3r/format.hpp" +#include "libslic3r_version.h" #include "GCodeProcessor.hpp" +#include +#include +#include +#include #include #include #include @@ -16,15 +32,38 @@ #include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include #include #include #include +#include #include +#include +#include +#include +#include #if __has_include() #include diff --git a/src/libslic3r/GCode/GCodeProcessor.hpp b/src/libslic3r/GCode/GCodeProcessor.hpp index 192a80a43d..cde789cb6c 100644 --- a/src/libslic3r/GCode/GCodeProcessor.hpp +++ b/src/libslic3r/GCode/GCodeProcessor.hpp @@ -1,6 +1,11 @@ #ifndef slic3r_GCodeProcessor_hpp_ #define slic3r_GCodeProcessor_hpp_ +#include "libslic3r/CommonDefs.hpp" +#include "libslic3r/libslic3r.h" +#include "libslic3r/Polygon.hpp" +#include "libslic3r/Config.hpp" +#include "libslic3r/ArcFitter.hpp" #include "libslic3r/GCodeReader.hpp" #include "libslic3r/Point.hpp" #include "libslic3r/ExtrusionEntity.hpp" @@ -8,8 +13,17 @@ #include "libslic3r/CustomGCode.hpp" #include "libslic3r/MultiNozzleUtils.hpp" +#include +#include #include #include +#include +#include +#include +#include +#include +#include +#include #include #include #include diff --git a/src/libslic3r/GCode/OrderingStrategies.cpp b/src/libslic3r/GCode/OrderingStrategies.cpp index 2ba9ae5490..73cb90f461 100644 --- a/src/libslic3r/GCode/OrderingStrategies.cpp +++ b/src/libslic3r/GCode/OrderingStrategies.cpp @@ -4,9 +4,14 @@ #include "OrderingStrategies.hpp" #include "../Geometry.hpp" #include "../ShortestPath.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/PrintConfig.hpp" #include #include +#include +#include +#include #include #include #include diff --git a/src/libslic3r/GCode/OrderingStrategies.hpp b/src/libslic3r/GCode/OrderingStrategies.hpp index 598eac8130..4e6d766b37 100644 --- a/src/libslic3r/GCode/OrderingStrategies.hpp +++ b/src/libslic3r/GCode/OrderingStrategies.hpp @@ -5,6 +5,8 @@ #include "../libslic3r.h" #include "../Point.hpp" +#include +#include "libslic3r/PrintConfig.hpp" #ifndef SLIC3R_TEST_HARNESS #include "../Print.hpp" diff --git a/src/libslic3r/GCode/PchipInterpolatorHelper.cpp b/src/libslic3r/GCode/PchipInterpolatorHelper.cpp index 44baa6cbf7..b01a23edb5 100644 --- a/src/libslic3r/GCode/PchipInterpolatorHelper.cpp +++ b/src/libslic3r/GCode/PchipInterpolatorHelper.cpp @@ -4,9 +4,13 @@ // Implementation file for the PchipInterpolatorHelper class #include "PchipInterpolatorHelper.hpp" +#include +#include #include #include #include +#include +#include /** * @brief Constructs the PCHIP interpolator with given data points. diff --git a/src/libslic3r/GCode/PreciseSeam.cpp b/src/libslic3r/GCode/PreciseSeam.cpp index 378ab2d2d3..b8eb5ea270 100644 --- a/src/libslic3r/GCode/PreciseSeam.cpp +++ b/src/libslic3r/GCode/PreciseSeam.cpp @@ -1,9 +1,23 @@ #include "PreciseSeam.hpp" +#include "libslic3r/Polygon.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/Model.hpp" +#include "libslic3r/ClipperUtils.hpp" #include "SeamPlacer.hpp" +#include "libslic3r/libslic3r.h" #include "libslic3r/BoundingBox.hpp" #include +#include #include +#include +#include +#include +#include +#include +#include #include +#include +#include namespace Slic3r { namespace PreciseSeam { diff --git a/src/libslic3r/GCode/PreciseSeam.hpp b/src/libslic3r/GCode/PreciseSeam.hpp index d5c1e98952..f4f75c37bf 100644 --- a/src/libslic3r/GCode/PreciseSeam.hpp +++ b/src/libslic3r/GCode/PreciseSeam.hpp @@ -2,9 +2,11 @@ #define slic3r_PreciseSeam_hpp_ #include +#include #include #include #include +#include "libslic3r/Point.hpp" #include "libslic3r/Polygon.hpp" #include "libslic3r/Polyline.hpp" #include "libslic3r/Model.hpp" diff --git a/src/libslic3r/GCode/PressureEqualizer.cpp b/src/libslic3r/GCode/PressureEqualizer.cpp index 3db54ca2af..44ca576933 100644 --- a/src/libslic3r/GCode/PressureEqualizer.cpp +++ b/src/libslic3r/GCode/PressureEqualizer.cpp @@ -1,8 +1,17 @@ +#include +#include +#include +#include +#include +#include #include +#include +#include #include #include #include #include +#include #include "../libslic3r.h" #include "../PrintConfig.hpp" @@ -10,6 +19,8 @@ #include "../GCode.hpp" #include "PressureEqualizer.hpp" +#include "libslic3r/ExtrusionEntity.hpp" +#include "libslic3r/Exception.hpp" #include "fast_float/fast_float.h" #include "GCodeWriter.hpp" diff --git a/src/libslic3r/GCode/PressureEqualizer.hpp b/src/libslic3r/GCode/PressureEqualizer.hpp index 2f2982860e..be8e0e77fe 100644 --- a/src/libslic3r/GCode/PressureEqualizer.hpp +++ b/src/libslic3r/GCode/PressureEqualizer.hpp @@ -2,7 +2,14 @@ #define slic3r_GCode_PressureEqualizer_hpp_ #include "../libslic3r.h" +#include "../ExtrusionEntity.hpp" #include "../PrintConfig.hpp" +#include +#include +#include +#include +#include +#include #include diff --git a/src/libslic3r/GCode/PrintExtents.cpp b/src/libslic3r/GCode/PrintExtents.cpp index 9008adaa9a..71bc826258 100644 --- a/src/libslic3r/GCode/PrintExtents.cpp +++ b/src/libslic3r/GCode/PrintExtents.cpp @@ -10,7 +10,16 @@ #include "../Print.hpp" #include "PrintExtents.hpp" +#include "libslic3r/Polyline.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/Exception.hpp" +#include "libslic3r/Geometry.hpp" #include "WipeTower.hpp" +#include "libslic3r/libslic3r.h" +#include +#include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/GCode/RetractWhenCrossingPerimeters.cpp b/src/libslic3r/GCode/RetractWhenCrossingPerimeters.cpp index 776091adfb..32994741d4 100644 --- a/src/libslic3r/GCode/RetractWhenCrossingPerimeters.cpp +++ b/src/libslic3r/GCode/RetractWhenCrossingPerimeters.cpp @@ -1,6 +1,15 @@ #include "../ClipperUtils.hpp" #include "../Layer.hpp" #include "../Polyline.hpp" +#include "libslic3r/Surface.hpp" +#include +#include "libslic3r/AABBTreeIndirect.hpp" +#include +#include "libslic3r/ExPolygon.hpp" +#include "libslic3r/BoundingBox.hpp" +#include "libslic3r/libslic3r.h" +#include +#include "libslic3r/Polygon.hpp" #include "RetractWhenCrossingPerimeters.hpp" diff --git a/src/libslic3r/GCode/RetractWhenCrossingPerimeters.hpp b/src/libslic3r/GCode/RetractWhenCrossingPerimeters.hpp index fb624d7f90..e6029ce7f1 100644 --- a/src/libslic3r/GCode/RetractWhenCrossingPerimeters.hpp +++ b/src/libslic3r/GCode/RetractWhenCrossingPerimeters.hpp @@ -4,6 +4,7 @@ #include #include "../AABBTreeIndirect.hpp" +#include "libslic3r/libslic3r.h" namespace Slic3r { diff --git a/src/libslic3r/GCode/SeamPlacer.cpp b/src/libslic3r/GCode/SeamPlacer.cpp index d527ec6aa9..720339f746 100644 --- a/src/libslic3r/GCode/SeamPlacer.cpp +++ b/src/libslic3r/GCode/SeamPlacer.cpp @@ -1,15 +1,38 @@ #include "SeamPlacer.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/AABBTreeIndirect.hpp" +#include "libslic3r/Model.hpp" +#include "libslic3r/Flow.hpp" +#include "libslic3r/Line.hpp" +#include "libslic3r/ExPolygon.hpp" #include "Polygon.hpp" +#include "libslic3r/PrintBase.hpp" #include "PrintConfig.hpp" +#include "libslic3r/libslic3r.h" +#include "libslic3r/TriangleMesh.hpp" +#include "libslic3r/TriangleSelector.hpp" #include "tbb/parallel_for.h" #include "tbb/blocked_range.h" #include "tbb/parallel_reduce.h" +#include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include +#include #include +#include +#include #include "libslic3r/AABBTreeLines.hpp" #include "libslic3r/KDTreeIndirect.hpp" diff --git a/src/libslic3r/GCode/SeamPlacer.hpp b/src/libslic3r/GCode/SeamPlacer.hpp index 9855b4f4aa..cbf2c73fbe 100644 --- a/src/libslic3r/GCode/SeamPlacer.hpp +++ b/src/libslic3r/GCode/SeamPlacer.hpp @@ -1,12 +1,17 @@ #ifndef libslic3r_SeamPlacer_hpp_ #define libslic3r_SeamPlacer_hpp_ +#include +#include #include #include +#include +#include #include #include #include +#include "libslic3r/Point.hpp" #include "libslic3r/libslic3r.h" #include "libslic3r/ExtrusionEntity.hpp" #include "libslic3r/Polygon.hpp" diff --git a/src/libslic3r/GCode/SmallAreaInfillFlowCompensator.cpp b/src/libslic3r/GCode/SmallAreaInfillFlowCompensator.cpp index 20377cfe8d..fec0e4aa88 100644 --- a/src/libslic3r/GCode/SmallAreaInfillFlowCompensator.cpp +++ b/src/libslic3r/GCode/SmallAreaInfillFlowCompensator.cpp @@ -6,16 +6,26 @@ // Based on original work by Alexander Þór licensed under the GPLv3: // https://github.com/Alexander-T-Moss/Small-Area-Flow-Comp +#include +#include +#include #include #include #include +#include +#include #include #include "../libslic3r.h" #include "../PrintConfig.hpp" +#include "libslic3r/Exception.hpp" +#include "libslic3r/GCode/PchipInterpolatorHelper.hpp" +#include "libslic3r/ExtrusionEntity.hpp" #include "SmallAreaInfillFlowCompensator.hpp" #include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/GCode/SmallAreaInfillFlowCompensator.hpp b/src/libslic3r/GCode/SmallAreaInfillFlowCompensator.hpp index de1df98170..2139e7f438 100644 --- a/src/libslic3r/GCode/SmallAreaInfillFlowCompensator.hpp +++ b/src/libslic3r/GCode/SmallAreaInfillFlowCompensator.hpp @@ -6,6 +6,7 @@ #include "../ExtrusionEntity.hpp" #include "PchipInterpolatorHelper.hpp" #include +#include namespace Slic3r { diff --git a/src/libslic3r/GCode/SpiralVase.cpp b/src/libslic3r/GCode/SpiralVase.cpp index 2c39bda4f7..d96f99de4f 100644 --- a/src/libslic3r/GCode/SpiralVase.cpp +++ b/src/libslic3r/GCode/SpiralVase.cpp @@ -1,8 +1,13 @@ #include "SpiralVase.hpp" #include "GCode.hpp" +#include "libslic3r/libslic3r.h" +#include +#include #include #include #include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/GCode/SpiralVase.hpp b/src/libslic3r/GCode/SpiralVase.hpp index f28b4c5f55..b1e7c79f7e 100644 --- a/src/libslic3r/GCode/SpiralVase.hpp +++ b/src/libslic3r/GCode/SpiralVase.hpp @@ -3,6 +3,10 @@ #include "../libslic3r.h" #include "../GCodeReader.hpp" +#include "libslic3r/PrintConfig.hpp" +#include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/GCode/ThumbnailData.cpp b/src/libslic3r/GCode/ThumbnailData.cpp index d895c0d95f..a86d10c4a4 100644 --- a/src/libslic3r/GCode/ThumbnailData.cpp +++ b/src/libslic3r/GCode/ThumbnailData.cpp @@ -1,4 +1,5 @@ #include "ThumbnailData.hpp" +#include namespace Slic3r { diff --git a/src/libslic3r/GCode/ThumbnailData.hpp b/src/libslic3r/GCode/ThumbnailData.hpp index bc37ad40c4..f112000273 100644 --- a/src/libslic3r/GCode/ThumbnailData.hpp +++ b/src/libslic3r/GCode/ThumbnailData.hpp @@ -1,7 +1,10 @@ #ifndef slic3r_ThumbnailData_hpp_ #define slic3r_ThumbnailData_hpp_ +#include +#include #include +#include "libslic3r/libslic3r.h" #include "libslic3r/Point.hpp" #include "nlohmann/json.hpp" diff --git a/src/libslic3r/GCode/Thumbnails.cpp b/src/libslic3r/GCode/Thumbnails.cpp index 526ba82498..9d32b0b63b 100644 --- a/src/libslic3r/GCode/Thumbnails.cpp +++ b/src/libslic3r/GCode/Thumbnails.cpp @@ -1,11 +1,27 @@ #include "Thumbnails.hpp" #include "../miniz_extension.hpp" +#include "libslic3r/GCode/ThumbnailData.hpp" +#include "libslic3r/PrintConfig.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/Config.hpp" +#include "libslic3r/enum_bitmask.hpp" #include "format.hpp" #include #include +#include +#include +#include +#include +#include #include #include +#include +#include +#include +#include +#include +#include #include #include diff --git a/src/libslic3r/GCode/Thumbnails.hpp b/src/libslic3r/GCode/Thumbnails.hpp index bcee02fea1..fd72973bac 100644 --- a/src/libslic3r/GCode/Thumbnails.hpp +++ b/src/libslic3r/GCode/Thumbnails.hpp @@ -4,9 +4,13 @@ #include "../Point.hpp" #include "../PrintConfig.hpp" #include "../enum_bitmask.hpp" +#include "libslic3r/Config.hpp" #include "ThumbnailData.hpp" #include "../enum_bitmask.hpp" +#include +#include +#include #include #include #include diff --git a/src/libslic3r/GCode/TimelapsePosPicker.cpp b/src/libslic3r/GCode/TimelapsePosPicker.cpp index 364624a88c..fded08c1ce 100644 --- a/src/libslic3r/GCode/TimelapsePosPicker.cpp +++ b/src/libslic3r/GCode/TimelapsePosPicker.cpp @@ -1,6 +1,23 @@ #include "ClipperUtils.hpp" #include "TimelapsePosPicker.hpp" +#include "libslic3r/ExPolygon.hpp" #include "Layer.hpp" +#include "libslic3r/Point.hpp" +#include +#include "libslic3r/PrintConfig.hpp" +#include +#include +#include +#include "libslic3r/libslic3r.h" +#include "libslic3r/Polygon.hpp" +#include +#include +#include "libslic3r/Print.hpp" +#include +#include +#include +#include "libslic3r/Utils.hpp" +#include "libslic3r/Polyline.hpp" constexpr int FILTER_THRESHOLD = 5; constexpr int MAX_CANDIDATE_SIZE = 5; diff --git a/src/libslic3r/GCode/TimelapsePosPicker.hpp b/src/libslic3r/GCode/TimelapsePosPicker.hpp index 9ed6b14fc7..af102e6340 100644 --- a/src/libslic3r/GCode/TimelapsePosPicker.hpp +++ b/src/libslic3r/GCode/TimelapsePosPicker.hpp @@ -1,7 +1,11 @@ #ifndef TIMELAPSE_POS_PICKER_HPP #define TIMELAPSE_POS_PICKER_HPP +#include +#include #include +#include "libslic3r/Polygon.hpp" +#include "libslic3r/BoundingBox.hpp" #include "libslic3r/Point.hpp" #include "libslic3r/ExPolygon.hpp" #include "libslic3r/Print.hpp" diff --git a/src/libslic3r/GCode/ToolOrderUtils.cpp b/src/libslic3r/GCode/ToolOrderUtils.cpp index 4a67477d24..b64042a23f 100644 --- a/src/libslic3r/GCode/ToolOrderUtils.cpp +++ b/src/libslic3r/GCode/ToolOrderUtils.cpp @@ -1,9 +1,23 @@ #include "ToolOrderUtils.hpp" +#include "libslic3r/MultiNozzleUtils.hpp" #include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include #include +#include +#include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/GCode/ToolOrderUtils.hpp b/src/libslic3r/GCode/ToolOrderUtils.hpp index 7b103531b1..db24545f33 100644 --- a/src/libslic3r/GCode/ToolOrderUtils.hpp +++ b/src/libslic3r/GCode/ToolOrderUtils.hpp @@ -1,6 +1,7 @@ #ifndef TOOL_ORDER_UTILS_HPP #define TOOL_ORDER_UTILS_HPP +#include #include #include #include diff --git a/src/libslic3r/GCode/ToolOrdering.cpp b/src/libslic3r/GCode/ToolOrdering.cpp index 5026323d54..38532a2f67 100644 --- a/src/libslic3r/GCode/ToolOrdering.cpp +++ b/src/libslic3r/GCode/ToolOrdering.cpp @@ -1,4 +1,9 @@ +#include "libslic3r/Exception.hpp" +#include "libslic3r/CustomGCode.hpp" +#include "libslic3r/Config.hpp" #include "ExtrusionEntity.hpp" +#include "libslic3r/ObjectID.hpp" +#include "libslic3r/FilamentGroup.hpp" #include "Print.hpp" #include "ToolOrdering.hpp" #include "Layer.hpp" @@ -9,11 +14,23 @@ #include "MultiNozzleUtils.hpp" #include "FilamentMixer.hpp" #include "LocalesUtils.hpp" +#include "libslic3r/PrintConfig.hpp" #include "Utils.hpp" #include "format.hpp" #include "I18N.hpp" #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include // #define SLIC3R_DEBUG diff --git a/src/libslic3r/GCode/ToolOrdering.hpp b/src/libslic3r/GCode/ToolOrdering.hpp index 1b8ce190d7..70b55fdb33 100644 --- a/src/libslic3r/GCode/ToolOrdering.hpp +++ b/src/libslic3r/GCode/ToolOrdering.hpp @@ -5,11 +5,19 @@ #include "../libslic3r.h" +#include +#include +#include #include #include +#include +#include +#include +#include #include #include +#include #include "../FilamentGroup.hpp" #include "../FilamentMixer.hpp" #include "../MultiNozzleUtils.hpp" diff --git a/src/libslic3r/GCode/WipePathHelpers.cpp b/src/libslic3r/GCode/WipePathHelpers.cpp index d785a16a8c..2c2ef7ff74 100644 --- a/src/libslic3r/GCode/WipePathHelpers.cpp +++ b/src/libslic3r/GCode/WipePathHelpers.cpp @@ -1,12 +1,19 @@ #include "WipePathHelpers.hpp" #include "../AABBTreeLines.hpp" +#include "libslic3r/ExtrusionEntity.hpp" +#include "libslic3r/Line.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/libslic3r.h" #include #include #include +#include #include +#include #include +#include namespace Slic3r { diff --git a/src/libslic3r/GCode/WipePathHelpers.hpp b/src/libslic3r/GCode/WipePathHelpers.hpp index 616e5dc88b..17c0dfa238 100644 --- a/src/libslic3r/GCode/WipePathHelpers.hpp +++ b/src/libslic3r/GCode/WipePathHelpers.hpp @@ -5,6 +5,7 @@ #include "../ExtrusionEntity.hpp" #include "../Polyline.hpp" #include "../Line.hpp" +#include "libslic3r/Point.hpp" namespace Slic3r { diff --git a/src/libslic3r/GCode/WipeTower.cpp b/src/libslic3r/GCode/WipeTower.cpp index a700ada09f..cef86313ba 100644 --- a/src/libslic3r/GCode/WipeTower.cpp +++ b/src/libslic3r/GCode/WipeTower.cpp @@ -1,16 +1,39 @@ #include "WipeTower.hpp" +#include #include +#include +#include +#include +#include #include +#include +#include +#include +#include +#include +#include +#include #include #include #include #include +#include "libslic3r/Circle.hpp" +#include "libslic3r/ExtrusionEntity.hpp" +#include "libslic3r/ArcFitter.hpp" #include "GCodeProcessor.hpp" #include "BoundingBox.hpp" #include "ClipperUtils.hpp" +#include "libslic3r/Line.hpp" #include "LocalesUtils.hpp" +#include "libslic3r/PrintConfig.hpp" +#include "libslic3r/Polygon.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/Polyline.hpp" +#include "libslic3r/MultiNozzleUtils.hpp" +#include "libslic3r/TriangleMesh.hpp" #include "Triangulation.hpp" +#include "libslic3r/libslic3r.h" namespace Slic3r diff --git a/src/libslic3r/GCode/WipeTower.hpp b/src/libslic3r/GCode/WipeTower.hpp index 8ea7f848ef..dd000737c7 100644 --- a/src/libslic3r/GCode/WipeTower.hpp +++ b/src/libslic3r/GCode/WipeTower.hpp @@ -2,16 +2,23 @@ #define WipeTower_ #include +#include +#include +#include +#include #include #include +#include #include #include +#include "libslic3r/libslic3r.h" #include "libslic3r/Point.hpp" #include "libslic3r/Polygon.hpp" #include "libslic3r/Polyline.hpp" #include "libslic3r/TriangleMesh.hpp" #include +#include #include "libslic3r/MultiNozzleUtils.hpp" namespace Slic3r { diff --git a/src/libslic3r/GCode/WipeTower2.cpp b/src/libslic3r/GCode/WipeTower2.cpp index a576172a39..9b92f4c26a 100644 --- a/src/libslic3r/GCode/WipeTower2.cpp +++ b/src/libslic3r/GCode/WipeTower2.cpp @@ -1,22 +1,44 @@ // Orca: WipeTower2 for all non bbl printers, support all MMU device and toolchanger. #include "WipeTower2.hpp" +#include +#include #include +#include +#include +#include +#include #include +#include +#include +#include +#include +#include #include #include #include #include #include +#include "libslic3r/Circle.hpp" +#include "libslic3r/ArcFitter.hpp" #include "ClipperUtils.hpp" +#include "libslic3r/ExtrusionEntity.hpp" +#include "libslic3r/GCode/WipeTower.hpp" +#include "libslic3r/ExPolygon.hpp" +#include "libslic3r/Fill/FillBase.hpp" #include "GCodeProcessor.hpp" #include "BoundingBox.hpp" +#include "libslic3r/Line.hpp" #include "LocalesUtils.hpp" #include "Geometry.hpp" +#include "libslic3r/Polygon.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/Polyline.hpp" #include "PrintConfig.hpp" #include "Surface.hpp" #include "Fill/FillRectilinear.hpp" +#include "libslic3r/libslic3r.h" #include diff --git a/src/libslic3r/GCode/WipeTower2.hpp b/src/libslic3r/GCode/WipeTower2.hpp index 02ce15672b..408a5f6607 100644 --- a/src/libslic3r/GCode/WipeTower2.hpp +++ b/src/libslic3r/GCode/WipeTower2.hpp @@ -4,10 +4,14 @@ #define WipeTower2_ #include +#include +#include +#include #include #include #include #include +#include #include "libslic3r/Point.hpp" #include "libslic3r/Polygon.hpp" diff --git a/src/libslic3r/GCode/WipeTowerEstimate.cpp b/src/libslic3r/GCode/WipeTowerEstimate.cpp index ac1508d9c0..223850d4f0 100644 --- a/src/libslic3r/GCode/WipeTowerEstimate.cpp +++ b/src/libslic3r/GCode/WipeTowerEstimate.cpp @@ -1,5 +1,6 @@ #include "WipeTowerEstimate.hpp" +#include "libslic3r/Polygon.hpp" #include "WipeTower.hpp" #include "WipeTower2.hpp" #include "../Config.hpp" @@ -8,7 +9,9 @@ #include #include +#include #include +#include namespace Slic3r { diff --git a/src/libslic3r/GCodeReader.cpp b/src/libslic3r/GCodeReader.cpp index 17510800c5..10c3be600f 100644 --- a/src/libslic3r/GCodeReader.cpp +++ b/src/libslic3r/GCodeReader.cpp @@ -1,18 +1,30 @@ #include "GCodeReader.hpp" +#include #include #include #include #include #include +#include +#include +#include +#include +#include #include #include #include +#include "PrintConfig.hpp" #include "Utils.hpp" #include "LocalesUtils.hpp" +#include "libslic3r.h" #include #include +#include +#include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/GCodeReader.hpp b/src/libslic3r/GCodeReader.hpp index 12b9dc98e2..591fe41e6b 100644 --- a/src/libslic3r/GCodeReader.hpp +++ b/src/libslic3r/GCodeReader.hpp @@ -3,10 +3,14 @@ #include "libslic3r.h" #include +#include #include +#include #include #include #include +#include +#include #include "PrintConfig.hpp" namespace Slic3r { diff --git a/src/libslic3r/GCodeSender.hpp b/src/libslic3r/GCodeSender.hpp index 3a2055e54f..e9f97e2a29 100644 --- a/src/libslic3r/GCodeSender.hpp +++ b/src/libslic3r/GCodeSender.hpp @@ -3,9 +3,17 @@ #include "libslic3r.h" #include +#include +#include +#include +#include +#include +#include +#include #include #include #include +#include #include #include diff --git a/src/libslic3r/GCodeWriter.cpp b/src/libslic3r/GCodeWriter.cpp index 0e80cc1fb7..667271bcd1 100644 --- a/src/libslic3r/GCodeWriter.cpp +++ b/src/libslic3r/GCodeWriter.cpp @@ -1,16 +1,36 @@ #include "GCodeWriter.hpp" +#include "Config.hpp" #include "CustomGCode.hpp" +#include "Extruder.hpp" #include "I18N.hpp" +#include "Point.hpp" +#include "Polygon.hpp" #include "PrintConfig.hpp" #include "ClipperUtils.hpp" #include "Geometry/ArcWelder.hpp" #include "Line.hpp" +#include "libslic3r.h" #include +#include +#include +#include +#include +#include +#include +#include #include #include +#include +#include #include #include #include +#include +#include +#include +#include +#include +#include #ifdef __APPLE__ #include diff --git a/src/libslic3r/GCodeWriter.hpp b/src/libslic3r/GCodeWriter.hpp index 8247ab757a..a07765a873 100644 --- a/src/libslic3r/GCodeWriter.hpp +++ b/src/libslic3r/GCodeWriter.hpp @@ -2,8 +2,14 @@ #define slic3r_GCodeWriter_hpp_ #include "libslic3r.h" +#include +#include +#include +#include +#include #include #include +#include #include "Extruder.hpp" #include "Point.hpp" #include "Polygon.hpp" diff --git a/src/libslic3r/Geometry.cpp b/src/libslic3r/Geometry.cpp index 1c775be3a8..6c097428f4 100644 --- a/src/libslic3r/Geometry.cpp +++ b/src/libslic3r/Geometry.cpp @@ -1,16 +1,29 @@ +#include "Point.hpp" +#include "Polygon.hpp" +#include "MultiPoint.hpp" +#include "BoundingBox.hpp" #include "libslic3r.h" #include "Exception.hpp" #include "Geometry.hpp" #include "ClipperUtils.hpp" #include "ExPolygon.hpp" #include "Line.hpp" +#include +#include +#include #include +#include +#include #include #include +#include +#include +#include #include #include #include #include +#include #include #include #include diff --git a/src/libslic3r/Geometry.hpp b/src/libslic3r/Geometry.hpp index e610a9ed4f..cb148e596a 100644 --- a/src/libslic3r/Geometry.hpp +++ b/src/libslic3r/Geometry.hpp @@ -9,7 +9,18 @@ #include "Polyline.hpp" // Serialization through the Cereal library +#include +#include +#include #include +#include +#include +#include +#include +#include +#include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/Geometry/ArcWelder.hpp b/src/libslic3r/Geometry/ArcWelder.hpp index 184a2d6c7c..aee893fae6 100644 --- a/src/libslic3r/Geometry/ArcWelder.hpp +++ b/src/libslic3r/Geometry/ArcWelder.hpp @@ -1,7 +1,9 @@ #ifndef slic3r_Geometry_ArcWelder_hpp_ #define slic3r_Geometry_ArcWelder_hpp_ +#include #include +#include #include #include #include diff --git a/src/libslic3r/Geometry/Bicubic.hpp b/src/libslic3r/Geometry/Bicubic.hpp index 98c6f8bb29..2121947e94 100644 --- a/src/libslic3r/Geometry/Bicubic.hpp +++ b/src/libslic3r/Geometry/Bicubic.hpp @@ -1,7 +1,9 @@ #ifndef BICUBIC_HPP #define BICUBIC_HPP +#include #include +#include #include #include diff --git a/src/libslic3r/Geometry/Circle.cpp b/src/libslic3r/Geometry/Circle.cpp index 6796671954..f8dc0d273d 100644 --- a/src/libslic3r/Geometry/Circle.cpp +++ b/src/libslic3r/Geometry/Circle.cpp @@ -1,10 +1,19 @@ #include "Circle.hpp" #include "../Polygon.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/libslic3r.h" +#include +#include +#include +#include +#include +#include #include #include #include +#include namespace Slic3r { namespace Geometry { diff --git a/src/libslic3r/Geometry/Circle.hpp b/src/libslic3r/Geometry/Circle.hpp index 653102e2ab..8f8655df65 100644 --- a/src/libslic3r/Geometry/Circle.hpp +++ b/src/libslic3r/Geometry/Circle.hpp @@ -2,8 +2,13 @@ #define slic3r_Geometry_Circle_hpp_ #include "../Point.hpp" +#include "libslic3r/libslic3r.h" +#include #include +#include +#include +#include namespace Slic3r { namespace Geometry { diff --git a/src/libslic3r/Geometry/ConvexHull.cpp b/src/libslic3r/Geometry/ConvexHull.cpp index b8bf5eb696..80617c0caf 100644 --- a/src/libslic3r/Geometry/ConvexHull.cpp +++ b/src/libslic3r/Geometry/ConvexHull.cpp @@ -1,9 +1,19 @@ +#include "libslic3r/Polygon.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/Polyline.hpp" #include "libslic3r.h" #include "ConvexHull.hpp" #include "BoundingBox.hpp" #include "../Geometry.hpp" +#include +#include #include +#include +#include +#include +#include +#include namespace Slic3r { namespace Geometry { diff --git a/src/libslic3r/Geometry/ConvexHull.hpp b/src/libslic3r/Geometry/ConvexHull.hpp index eb0be4fe1f..f8bac380e8 100644 --- a/src/libslic3r/Geometry/ConvexHull.hpp +++ b/src/libslic3r/Geometry/ConvexHull.hpp @@ -1,9 +1,12 @@ #ifndef slic3r_Geometry_ConvexHull_hpp_ #define slic3r_Geometry_ConvexHull_hpp_ +#include #include #include "../Polygon.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/Polyline.hpp" namespace Slic3r { diff --git a/src/libslic3r/Geometry/Curves.hpp b/src/libslic3r/Geometry/Curves.hpp index f4a5a0067e..e9c4bef40c 100644 --- a/src/libslic3r/Geometry/Curves.hpp +++ b/src/libslic3r/Geometry/Curves.hpp @@ -4,7 +4,13 @@ #include "libslic3r/Point.hpp" #include "Bicubic.hpp" +#include +#include +#include +#include #include +#include +#include //#define LSQR_DEBUG diff --git a/src/libslic3r/Geometry/MedialAxis.cpp b/src/libslic3r/Geometry/MedialAxis.cpp index 7fece75e63..9d05ec9867 100644 --- a/src/libslic3r/Geometry/MedialAxis.cpp +++ b/src/libslic3r/Geometry/MedialAxis.cpp @@ -5,7 +5,11 @@ #include #include #include +#include +#include +#include "libslic3r/Line.hpp" +#include "libslic3r/Polyline.hpp" #include "VoronoiOffset.hpp" #include "libslic3r/ClipperUtils.hpp" #include "libslic3r/ExPolygon.hpp" diff --git a/src/libslic3r/Geometry/Voronoi.cpp b/src/libslic3r/Geometry/Voronoi.cpp index 4f7173e5c2..7d59e2d2b8 100644 --- a/src/libslic3r/Geometry/Voronoi.cpp +++ b/src/libslic3r/Geometry/Voronoi.cpp @@ -2,7 +2,12 @@ #include #include +#include +#include +#include +#include "libslic3r/Point.hpp" +#include "libslic3r/libslic3r.h" #include "libslic3r/Arachne/utils/PolygonsSegmentIndex.hpp" #include "libslic3r/Geometry/VoronoiUtils.hpp" #include "libslic3r/Geometry/VoronoiUtilsCgal.hpp" diff --git a/src/libslic3r/Geometry/VoronoiOffset.cpp b/src/libslic3r/Geometry/VoronoiOffset.cpp index 70c45dfb25..aeaf883c72 100644 --- a/src/libslic3r/Geometry/VoronoiOffset.cpp +++ b/src/libslic3r/Geometry/VoronoiOffset.cpp @@ -8,7 +8,11 @@ #include #include #include +#include +#include "libslic3r/Point.hpp" +#include "libslic3r/Line.hpp" +#include "libslic3r/Polygon.hpp" #include "libslic3r/Geometry.hpp" #include "VoronoiOffset.hpp" #include "libslic3r/libslic3r.h" diff --git a/src/libslic3r/Geometry/VoronoiUtils.cpp b/src/libslic3r/Geometry/VoronoiUtils.cpp index f140782891..d0ad07cc7e 100644 --- a/src/libslic3r/Geometry/VoronoiUtils.cpp +++ b/src/libslic3r/Geometry/VoronoiUtils.cpp @@ -1,4 +1,5 @@ #include +#include #include #include #include @@ -10,6 +11,10 @@ #include #include "VoronoiUtils.hpp" +#include "libslic3r/Geometry/Voronoi.hpp" +#include "libslic3r/Arachne/utils/PolygonsPointIndex.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/libslic3r.h" #include "libslic3r/Exception.hpp" #include "libslic3r/Line.hpp" diff --git a/src/libslic3r/Geometry/VoronoiUtilsCgal.cpp b/src/libslic3r/Geometry/VoronoiUtilsCgal.cpp index 28a648851d..e1ae432f36 100644 --- a/src/libslic3r/Geometry/VoronoiUtilsCgal.cpp +++ b/src/libslic3r/Geometry/VoronoiUtilsCgal.cpp @@ -1,9 +1,18 @@ // Needed since the CGAL headers are not self-contained. +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include #include #include +#include #include #include diff --git a/src/libslic3r/Geometry/VoronoiVisualUtils.hpp b/src/libslic3r/Geometry/VoronoiVisualUtils.hpp index c89d59bf9a..a27645c159 100644 --- a/src/libslic3r/Geometry/VoronoiVisualUtils.hpp +++ b/src/libslic3r/Geometry/VoronoiVisualUtils.hpp @@ -1,14 +1,26 @@ #ifndef slic3r_VoronoiVisualUtils_hpp_ #define slic3r_VoronoiVisualUtils_hpp_ +#include +#include +#include +#include +#include #include #include #include #include #include +#include +#include +#include +#include "libslic3r/Geometry/Voronoi.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/BoundingBox.hpp" #include "VoronoiOffset.hpp" +#include "libslic3r/libslic3r.h" namespace boost { namespace polygon { diff --git a/src/libslic3r/InstanceLock.cpp b/src/libslic3r/InstanceLock.cpp index 1fa71b572a..7cacdef0cb 100644 --- a/src/libslic3r/InstanceLock.cpp +++ b/src/libslic3r/InstanceLock.cpp @@ -1,7 +1,11 @@ #include "InstanceLock.hpp" +#include +#include #include #include +#include +#include #include #include diff --git a/src/libslic3r/IntersectionPoints.cpp b/src/libslic3r/IntersectionPoints.cpp index 888285f834..7db77d0787 100644 --- a/src/libslic3r/IntersectionPoints.cpp +++ b/src/libslic3r/IntersectionPoints.cpp @@ -1,5 +1,10 @@ #include "IntersectionPoints.hpp" +#include #include +#include "libslic3r/Line.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/Polygon.hpp" +#include "libslic3r/ExPolygon.hpp" //NOTE: using CGAL SweepLines is slower !!! (example in git history) diff --git a/src/libslic3r/IntersectionPoints.hpp b/src/libslic3r/IntersectionPoints.hpp index 49694c8a8e..89b36224df 100644 --- a/src/libslic3r/IntersectionPoints.hpp +++ b/src/libslic3r/IntersectionPoints.hpp @@ -2,6 +2,11 @@ #define slic3r_IntersectionPoints_hpp_ #include "ExPolygon.hpp" +#include +#include "libslic3r/Point.hpp" +#include +#include "libslic3r/Line.hpp" +#include "libslic3r/Polygon.hpp" namespace Slic3r { diff --git a/src/libslic3r/JumpPointSearch.hpp b/src/libslic3r/JumpPointSearch.hpp index 86eeb9ce6a..b5fbf6aaf0 100644 --- a/src/libslic3r/JumpPointSearch.hpp +++ b/src/libslic3r/JumpPointSearch.hpp @@ -1,4 +1,5 @@ #pragma once +#include "Line.hpp" #ifndef SRC_LIBSLIC3R_JUMPPOINTSEARCH_HPP_ #define SRC_LIBSLIC3R_JUMPPOINTSEARCH_HPP_ diff --git a/src/libslic3r/KDTreeIndirect.hpp b/src/libslic3r/KDTreeIndirect.hpp index 37c10827b1..d334a2ad64 100644 --- a/src/libslic3r/KDTreeIndirect.hpp +++ b/src/libslic3r/KDTreeIndirect.hpp @@ -4,10 +4,15 @@ #define slic3r_KDTreeIndirect_hpp_ #include +#include +#include +#include #include +#include #include #include "Utils.hpp" // for next_highest_power_of_2() +#include "libslic3r.h" namespace Slic3r { diff --git a/src/libslic3r/LayOnFace.cpp b/src/libslic3r/LayOnFace.cpp index 1112f9d2fe..3cc5c2fdce 100644 --- a/src/libslic3r/LayOnFace.cpp +++ b/src/libslic3r/LayOnFace.cpp @@ -3,11 +3,17 @@ #include "Geometry.hpp" #include "Geometry/ConvexHull.hpp" #include "Model.hpp" +#include "Point.hpp" #include "TriangleMesh.hpp" +#include "libslic3r.h" +#include #include #include +#include #include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/LayOnFace.hpp b/src/libslic3r/LayOnFace.hpp index 1a5e92a15e..6a9242e5c6 100644 --- a/src/libslic3r/LayOnFace.hpp +++ b/src/libslic3r/LayOnFace.hpp @@ -2,6 +2,7 @@ #include "Point.hpp" +#include #include namespace Slic3r { diff --git a/src/libslic3r/Layer.cpp b/src/libslic3r/Layer.cpp index 7bdef5a4ff..7f27012dc4 100644 --- a/src/libslic3r/Layer.cpp +++ b/src/libslic3r/Layer.cpp @@ -1,12 +1,28 @@ #include "Layer.hpp" #include "ClipperUtils.hpp" +#include "Polygon.hpp" +#include "Point.hpp" +#include "ExPolygon.hpp" +#include "ExtrusionEntity.hpp" +#include "Exception.hpp" +#include "Flow.hpp" #include "Print.hpp" #include "Fill/Fill.hpp" +#include "PrintConfig.hpp" #include "ShortestPath.hpp" #include "SVG.hpp" #include "BoundingBox.hpp" +#include "Surface.hpp" +#include "libslic3r.h" +#include "Utils.hpp" +#include #include +#include +#include +#include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/Layer.hpp b/src/libslic3r/Layer.hpp index 9be6b86139..600e4c4062 100644 --- a/src/libslic3r/Layer.hpp +++ b/src/libslic3r/Layer.hpp @@ -1,12 +1,21 @@ #ifndef slic3r_Layer_hpp_ #define slic3r_Layer_hpp_ +#include "Polyline.hpp" +#include "Polygon.hpp" +#include "ExtrusionEntity.hpp" +#include "Line.hpp" #include "libslic3r.h" #include "BoundingBox.hpp" #include "Flow.hpp" #include "SurfaceCollection.hpp" #include "ExtrusionEntityCollection.hpp" #include "BoundingBox.hpp" +#include +#include +#include +#include +#include namespace Slic3r { class ExPolygon; diff --git a/src/libslic3r/LayerRegion.cpp b/src/libslic3r/LayerRegion.cpp index ab2096184b..3132dd348d 100644 --- a/src/libslic3r/LayerRegion.cpp +++ b/src/libslic3r/LayerRegion.cpp @@ -1,20 +1,44 @@ +#include "Flow.hpp" +#include "Config.hpp" +#include "ExPolygon.hpp" +#include "ExtrusionEntity.hpp" +#include "Exception.hpp" #include "Layer.hpp" #include "BridgeDetector.hpp" #include "ClipperUtils.hpp" #include "Geometry.hpp" +#include "Line.hpp" #include "PerimeterGenerator.hpp" #include "Point.hpp" +#include "Polygon.hpp" +#include "Polyline.hpp" #include "Print.hpp" +#include "PrintConfig.hpp" #include "Surface.hpp" #include "BoundingBox.hpp" #include "SVG.hpp" #include "Algorithm/RegionExpansion.hpp" +#include "libslic3r.h" +#include "Utils.hpp" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include #include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/Line.cpp b/src/libslic3r/Line.cpp index 94453e18f7..5c40e48e63 100644 --- a/src/libslic3r/Line.cpp +++ b/src/libslic3r/Line.cpp @@ -1,8 +1,13 @@ #include "Geometry.hpp" #include "Line.hpp" +#include "Point.hpp" #include "Polyline.hpp" +#include +#include "libslic3r.h" #include #include +#include +#include #include namespace Slic3r { diff --git a/src/libslic3r/Line.hpp b/src/libslic3r/Line.hpp index d8240702b2..f75ef7fc66 100644 --- a/src/libslic3r/Line.hpp +++ b/src/libslic3r/Line.hpp @@ -4,7 +4,10 @@ #include "libslic3r.h" #include "Point.hpp" +#include #include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/LocalesUtils.cpp b/src/libslic3r/LocalesUtils.cpp index 9c81511dc5..ead94faeb4 100644 --- a/src/libslic3r/LocalesUtils.cpp +++ b/src/libslic3r/LocalesUtils.cpp @@ -1,4 +1,10 @@ #include "LocalesUtils.hpp" +#include +#include +#include +#include +#include +#include #ifdef _WIN32 #include diff --git a/src/libslic3r/LocalesUtils.hpp b/src/libslic3r/LocalesUtils.hpp index d7e59f5ded..c212a72e69 100644 --- a/src/libslic3r/LocalesUtils.hpp +++ b/src/libslic3r/LocalesUtils.hpp @@ -1,6 +1,7 @@ #ifndef slic3r_LocalesUtils_hpp_ #define slic3r_LocalesUtils_hpp_ +#include #include #include #include diff --git a/src/libslic3r/MTUtils.hpp b/src/libslic3r/MTUtils.hpp index ab99ea5f68..b1099e1439 100644 --- a/src/libslic3r/MTUtils.hpp +++ b/src/libslic3r/MTUtils.hpp @@ -1,7 +1,9 @@ #ifndef MTUTILS_HPP #define MTUTILS_HPP +#include #include // for std::atomic_flag and memory orders +#include #include // for std::lock_guard #include // for std::function #include // for std::forward diff --git a/src/libslic3r/MarchingSquares.hpp b/src/libslic3r/MarchingSquares.hpp index 7eb0b25806..e123dd14e0 100644 --- a/src/libslic3r/MarchingSquares.hpp +++ b/src/libslic3r/MarchingSquares.hpp @@ -2,11 +2,17 @@ #define MARCHINGSQUARES_HPP #include "Execution/ExecutionTBB.hpp" +#include +#include "libslic3r/Execution/Execution.hpp" +#include +#include #include #include #include #include #include +#include +#include // Marching squares // diff --git a/src/libslic3r/MaterialType.cpp b/src/libslic3r/MaterialType.cpp index dc65b6d23c..18e27dbe46 100644 --- a/src/libslic3r/MaterialType.cpp +++ b/src/libslic3r/MaterialType.cpp @@ -1,6 +1,8 @@ #include "MaterialType.hpp" #include +#include +#include namespace Slic3r { namespace { diff --git a/src/libslic3r/Measure.cpp b/src/libslic3r/Measure.cpp index ad34752685..e2ef912f37 100644 --- a/src/libslic3r/Measure.cpp +++ b/src/libslic3r/Measure.cpp @@ -1,3 +1,5 @@ +#include "Point.hpp" +#include "TriangleMesh.hpp" #include "libslic3r/libslic3r.h" #include "Measure.hpp" #include "MeasureUtils.hpp" @@ -6,8 +8,28 @@ #include "libslic3r/SurfaceMesh.hpp" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include +#include #include +#include +#include +#include #define DEBUG_EXTRACT_ALL_FEATURES_AT_ONCE 0 diff --git a/src/libslic3r/Measure.hpp b/src/libslic3r/Measure.hpp index 0374c5d4aa..2980afe324 100644 --- a/src/libslic3r/Measure.hpp +++ b/src/libslic3r/Measure.hpp @@ -1,10 +1,17 @@ #ifndef Slic3r_Measure_hpp_ #define Slic3r_Measure_hpp_ +#include +#include +#include #include #include +#include +#include +#include #include "Point.hpp" +#include "libslic3r.h" struct indexed_triangle_set; diff --git a/src/libslic3r/MeasureUtils.hpp b/src/libslic3r/MeasureUtils.hpp index 2fdac52443..5e34c6fdf8 100644 --- a/src/libslic3r/MeasureUtils.hpp +++ b/src/libslic3r/MeasureUtils.hpp @@ -1,7 +1,14 @@ #ifndef Slic3r_MeasureUtils_hpp_ #define Slic3r_MeasureUtils_hpp_ +#include +#include +#include +#include #include +#include + +#include "Point.hpp" namespace Slic3r { namespace Measure { diff --git a/src/libslic3r/MeshBoolean.cpp b/src/libslic3r/MeshBoolean.cpp index 4d9dda0c2e..2a05378f58 100644 --- a/src/libslic3r/MeshBoolean.cpp +++ b/src/libslic3r/MeshBoolean.cpp @@ -3,6 +3,37 @@ #include "libslic3r/TriangleMesh.hpp" #include "libslic3r/TryCatchSignal.hpp" #include "libslic3r/format.hpp" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "libslic3r/Point.hpp" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #undef PI #include diff --git a/src/libslic3r/MeshBoolean.hpp b/src/libslic3r/MeshBoolean.hpp index c307d1528b..6ced9b4646 100644 --- a/src/libslic3r/MeshBoolean.hpp +++ b/src/libslic3r/MeshBoolean.hpp @@ -1,9 +1,13 @@ #ifndef libslic3r_MeshBoolean_hpp_ #define libslic3r_MeshBoolean_hpp_ +#include +#include "libslic3r/Point.hpp" #include #include #include +#include +#include #include #include diff --git a/src/libslic3r/MeshSplitImpl.hpp b/src/libslic3r/MeshSplitImpl.hpp index 9fa87d2a9e..1805dc36ba 100644 --- a/src/libslic3r/MeshSplitImpl.hpp +++ b/src/libslic3r/MeshSplitImpl.hpp @@ -2,6 +2,15 @@ #define MESHSPLITIMPL_HPP // Disable meaningless boost warning on MSVC +#include +#include "Point.hpp" +#include +#include +#include +#include +#include +#include "libslic3r.h" +#include #ifdef _MSC_VER #pragma warning( push ) #pragma warning( disable : 4805 ) diff --git a/src/libslic3r/MinAreaBoundingBox.cpp b/src/libslic3r/MinAreaBoundingBox.cpp index 51fd8a45e7..ccc2eb981b 100644 --- a/src/libslic3r/MinAreaBoundingBox.cpp +++ b/src/libslic3r/MinAreaBoundingBox.cpp @@ -1,5 +1,12 @@ #include "MinAreaBoundingBox.hpp" +#include "Point.hpp" +#include "libslic3r.h" +#include +#include "libnest2d/common.hpp" +#include +#include +#include "libnest2d/geometry_traits.hpp" #include #if defined(_MSC_VER) && defined(__clang__) diff --git a/src/libslic3r/MinimumSpanningTree.cpp b/src/libslic3r/MinimumSpanningTree.cpp index 88555e70ee..0134c6b1a3 100644 --- a/src/libslic3r/MinimumSpanningTree.cpp +++ b/src/libslic3r/MinimumSpanningTree.cpp @@ -1,7 +1,12 @@ #include "MinimumSpanningTree.hpp" +#include #include #include +#include "Point.hpp" +#include +#include +#include #include "libslic3r.h" namespace Slic3r diff --git a/src/libslic3r/Model.cpp b/src/libslic3r/Model.cpp index fbc299cf72..24a77ce716 100644 --- a/src/libslic3r/Model.cpp +++ b/src/libslic3r/Model.cpp @@ -1,4 +1,21 @@ #include "Model.hpp" +#include "calib.hpp" +#include "Format/STEP.hpp" +#include "TriangleMesh.hpp" +#include "Semver.hpp" +#include "Format/OBJ.hpp" +#include "Config.hpp" +#include "Format/STL.hpp" +#include "Format/objparser.hpp" +#include "CustomGCode.hpp" +#include "PrintConfig.hpp" +#include "ObjectID.hpp" +#include "BoundingBox.hpp" +#include "Point.hpp" +#include "Utils.hpp" +#include "Polygon.hpp" +#include "SLA/SupportPoint.hpp" +#include "TextureDisplacement.hpp" #include "libslic3r.h" #include "BuildVolume.hpp" #include "TexturePainting.hpp" @@ -23,7 +40,17 @@ #include "libslic3r/Geometry/ConvexHull.hpp" +#include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include @@ -35,6 +62,21 @@ #include "SVG.hpp" #include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include "GCodeWriter.hpp" // BBS: for segment diff --git a/src/libslic3r/Model.hpp b/src/libslic3r/Model.hpp index 895ea30d09..6ef00c8587 100644 --- a/src/libslic3r/Model.hpp +++ b/src/libslic3r/Model.hpp @@ -1,6 +1,9 @@ #ifndef slic3r_Model_hpp_ #define slic3r_Model_hpp_ +#include "BoundingBox.hpp" +#include "Polygon.hpp" +#include "Semver.hpp" #include "libslic3r.h" #include "enum_bitmask.hpp" #include "Geometry.hpp" @@ -30,6 +33,13 @@ #include "Format/OBJ.hpp" #include +#include +#include +#include +#include +#include +#include +#include #include #include #include diff --git a/src/libslic3r/ModelArrange.cpp b/src/libslic3r/ModelArrange.cpp index 95167565aa..df95b92b99 100644 --- a/src/libslic3r/ModelArrange.cpp +++ b/src/libslic3r/ModelArrange.cpp @@ -1,9 +1,19 @@ #include "ModelArrange.hpp" +#include +#include +#include #include #include #include +#include "Arrange.hpp" +#include +#include "Config.hpp" +#include +#include #include "MTUtils.hpp" +#include "Point.hpp" +#include "PrintConfig.hpp" namespace Slic3r { diff --git a/src/libslic3r/ModelArrange.hpp b/src/libslic3r/ModelArrange.hpp index e389eea5f0..b7a31dea8d 100644 --- a/src/libslic3r/ModelArrange.hpp +++ b/src/libslic3r/ModelArrange.hpp @@ -1,7 +1,13 @@ #ifndef MODELARRANGE_HPP #define MODELARRANGE_HPP +#include +#include #include +#include +#include "Exception.hpp" +#include +#include "Point.hpp" #include "libslic3r/PrintConfig.hpp" #include "libslic3r/Model.hpp" diff --git a/src/libslic3r/MultiMaterialSegmentation.cpp b/src/libslic3r/MultiMaterialSegmentation.cpp index 464740768d..9119498a1e 100644 --- a/src/libslic3r/MultiMaterialSegmentation.cpp +++ b/src/libslic3r/MultiMaterialSegmentation.cpp @@ -1,13 +1,40 @@ +#include "MultiMaterialSegmentation.hpp" #include "BoundingBox.hpp" #include "ClipperUtils.hpp" +#include "Config.hpp" #include "EdgeGrid.hpp" +#include "Geometry/VoronoiOffset.hpp" +#include "Geometry/Voronoi.hpp" +#include "Flow.hpp" +#include "ExPolygon.hpp" #include "Layer.hpp" +#include "Point.hpp" +#include "Polygon.hpp" +#include "Line.hpp" +#include "Model.hpp" #include "Print.hpp" #include "Geometry/VoronoiVisualUtils.hpp" #include "Geometry/VoronoiUtils.hpp" #include "MutablePolygon.hpp" +#include "Utils.hpp" +#include "PrintConfig.hpp" +#include "TriangleSelector.hpp" +#include "TriangleMeshSlicer.hpp" +#include "Surface.hpp" #include "format.hpp" +#include "libslic3r.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include @@ -15,6 +42,8 @@ #include #include #include +#include +#include //#define MM_SEGMENTATION_DEBUG_GRAPH //#define MM_SEGMENTATION_DEBUG_REGIONS diff --git a/src/libslic3r/MultiMaterialSegmentation.hpp b/src/libslic3r/MultiMaterialSegmentation.hpp index ee7b07c0d8..6b230e8cad 100644 --- a/src/libslic3r/MultiMaterialSegmentation.hpp +++ b/src/libslic3r/MultiMaterialSegmentation.hpp @@ -1,9 +1,17 @@ #ifndef slic3r_MultiMaterialSegmentation_hpp_ #define slic3r_MultiMaterialSegmentation_hpp_ +#include +#include #include #include +#include + +#include "Line.hpp" +#include "Point.hpp" +#include "libslic3r.h" + namespace Slic3r { class ExPolygon; diff --git a/src/libslic3r/MultiNozzleUtils.cpp b/src/libslic3r/MultiNozzleUtils.cpp index d5ce550536..5fc3d3de17 100644 --- a/src/libslic3r/MultiNozzleUtils.cpp +++ b/src/libslic3r/MultiNozzleUtils.cpp @@ -1,12 +1,22 @@ #include "MultiNozzleUtils.hpp" +#include "PrintConfig.hpp" +#include "Config.hpp" #include "Utils.hpp" #include "ProjectTask.hpp" // Slic3r::FilamentInfo (StaticNozzleGroupResult / load_nozzle_infos_with_compatibility) #include +#include +#include #include +#include +#include +#include #include +#include #include #include #include +#include +#include // Multi-nozzle support. diff --git a/src/libslic3r/MultiNozzleUtils.hpp b/src/libslic3r/MultiNozzleUtils.hpp index 5ae56e497d..f59dad6761 100644 --- a/src/libslic3r/MultiNozzleUtils.hpp +++ b/src/libslic3r/MultiNozzleUtils.hpp @@ -1,6 +1,8 @@ #ifndef MULTI_NOZZLE_UTILS_HPP #define MULTI_NOZZLE_UTILS_HPP +#include +#include #include #include #include diff --git a/src/libslic3r/MultiPoint.cpp b/src/libslic3r/MultiPoint.cpp index 694d3ea9d0..cda57c6cd8 100644 --- a/src/libslic3r/MultiPoint.cpp +++ b/src/libslic3r/MultiPoint.cpp @@ -1,5 +1,16 @@ #include "MultiPoint.hpp" #include "BoundingBox.hpp" +#include "Point.hpp" +#include "libslic3r.h" +#include +#include "Line.hpp" +#include +#include +#include +#include +#include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/MultiPoint.hpp b/src/libslic3r/MultiPoint.hpp index 096230d22c..82d6d5884b 100644 --- a/src/libslic3r/MultiPoint.hpp +++ b/src/libslic3r/MultiPoint.hpp @@ -3,6 +3,10 @@ #include "libslic3r.h" #include +#include +#include +#include +#include #include #include "Line.hpp" #include "Point.hpp" diff --git a/src/libslic3r/MutablePolygon.cpp b/src/libslic3r/MutablePolygon.cpp index bdc2d91376..60484dc3aa 100644 --- a/src/libslic3r/MutablePolygon.cpp +++ b/src/libslic3r/MutablePolygon.cpp @@ -1,6 +1,11 @@ #include "MutablePolygon.hpp" #include "Line.hpp" +#include "Point.hpp" #include "libslic3r.h" +#include +#include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/MutablePolygon.hpp b/src/libslic3r/MutablePolygon.hpp index e4741186ff..31322583e3 100644 --- a/src/libslic3r/MutablePolygon.hpp +++ b/src/libslic3r/MutablePolygon.hpp @@ -4,6 +4,13 @@ #include "Point.hpp" #include "Polygon.hpp" #include "ExPolygon.hpp" +#include +#include +#include +#include +#include +#include +#include "libslic3r.h" namespace Slic3r { diff --git a/src/libslic3r/MutablePriorityQueue.hpp b/src/libslic3r/MutablePriorityQueue.hpp index 2565f417f8..f06acaa93e 100644 --- a/src/libslic3r/MutablePriorityQueue.hpp +++ b/src/libslic3r/MutablePriorityQueue.hpp @@ -2,7 +2,11 @@ #define slic3r_MutablePriorityQueue_hpp_ #include +#include +#include #include +#include +#include constexpr auto InvalidQueueID = std::numeric_limits::max(); template class MutablePriorityQueue diff --git a/src/libslic3r/NSVGUtils.cpp b/src/libslic3r/NSVGUtils.cpp index d12a866b3d..5274ffad4f 100644 --- a/src/libslic3r/NSVGUtils.cpp +++ b/src/libslic3r/NSVGUtils.cpp @@ -1,11 +1,24 @@ #include "NSVGUtils.hpp" #include +#include #include // to_chars #include #include +#include +#include +#include +#include +#include +#include +#include #include "ClipperUtils.hpp" #include "Emboss.hpp" // heal for shape +#include "Polygon.hpp" +#include "Polyline.hpp" +#include "EmbossShape.hpp" +#include "Point.hpp" +#include "libslic3r.h" namespace { using namespace Slic3r; // Polygon diff --git a/src/libslic3r/NSVGUtils.hpp b/src/libslic3r/NSVGUtils.hpp index 8d6a3bc3ef..846c4adfb8 100644 --- a/src/libslic3r/NSVGUtils.hpp +++ b/src/libslic3r/NSVGUtils.hpp @@ -1,12 +1,16 @@ #ifndef slic3r_NSVGUtils_hpp_ #define slic3r_NSVGUtils_hpp_ +#include +#include #include #include #include +#include "Point.hpp" #include "Polygon.hpp" #include "ExPolygon.hpp" #include "EmbossShape.hpp" // ExPolygonsWithIds +#include "libslic3r.h" #include "nanosvg/nanosvg.h" // load SVG file // Helper function to work with nano svg diff --git a/src/libslic3r/NormalUtils.cpp b/src/libslic3r/NormalUtils.cpp index 8619b749a2..1499d25f22 100644 --- a/src/libslic3r/NormalUtils.cpp +++ b/src/libslic3r/NormalUtils.cpp @@ -1,4 +1,9 @@ #include "NormalUtils.hpp" +#include "Point.hpp" +#include +#include +#include +#include using namespace Slic3r; diff --git a/src/libslic3r/NormalUtils.hpp b/src/libslic3r/NormalUtils.hpp index 8dcd0c0290..1811957381 100644 --- a/src/libslic3r/NormalUtils.hpp +++ b/src/libslic3r/NormalUtils.hpp @@ -3,6 +3,7 @@ #include "Point.hpp" #include "Model.hpp" +#include namespace Slic3r { diff --git a/src/libslic3r/ObjColorUtils.cpp b/src/libslic3r/ObjColorUtils.cpp index 3761267401..536078a083 100644 --- a/src/libslic3r/ObjColorUtils.cpp +++ b/src/libslic3r/ObjColorUtils.cpp @@ -1,4 +1,6 @@ #include "ObjColorUtils.hpp" +#include +#include "Color.hpp" bool obj_color_deal_algo(std::vector & input_colors, std::vector & cluster_colors_from_algo, diff --git a/src/libslic3r/ObjColorUtils.hpp b/src/libslic3r/ObjColorUtils.hpp index b587c80848..46163c8b44 100644 --- a/src/libslic3r/ObjColorUtils.hpp +++ b/src/libslic3r/ObjColorUtils.hpp @@ -1,6 +1,13 @@ #pragma once +#include +#include #include #include +#include +#include +#include +#include +#include #include "opencv2/opencv.hpp" #include "libslic3r/Color.hpp" diff --git a/src/libslic3r/ObjectID.cpp b/src/libslic3r/ObjectID.cpp index 7177c47fec..c8f4f5409f 100644 --- a/src/libslic3r/ObjectID.cpp +++ b/src/libslic3r/ObjectID.cpp @@ -1,4 +1,5 @@ #include "ObjectID.hpp" +#include namespace Slic3r { diff --git a/src/libslic3r/ObjectID.hpp b/src/libslic3r/ObjectID.hpp index 56042bbaa3..6adc1078f0 100644 --- a/src/libslic3r/ObjectID.hpp +++ b/src/libslic3r/ObjectID.hpp @@ -4,6 +4,7 @@ #include #include #include +#include namespace Slic3r { diff --git a/src/libslic3r/OpenVDBUtils.cpp b/src/libslic3r/OpenVDBUtils.cpp index c72607f14f..d4ac09781d 100644 --- a/src/libslic3r/OpenVDBUtils.cpp +++ b/src/libslic3r/OpenVDBUtils.cpp @@ -1,6 +1,19 @@ #ifndef NOMINMAX #define NOMINMAX #endif + +#include +#include +#include +#include "Point.hpp" +#include +#include +#include +#include "TriangleMesh.hpp" +#include +#include "libslic3r.h" +#include +#include #include "OpenVDBUtils.hpp" #ifdef _MSC_VER diff --git a/src/libslic3r/OpenVDBUtils.hpp b/src/libslic3r/OpenVDBUtils.hpp index f4441ba964..badd19d377 100644 --- a/src/libslic3r/OpenVDBUtils.hpp +++ b/src/libslic3r/OpenVDBUtils.hpp @@ -1,7 +1,10 @@ #ifndef OPENVDBUTILS_HPP #define OPENVDBUTILS_HPP +#include "Point.hpp" #include +#include +#include #ifdef _MSC_VER // Suppress warning C4146 in include/gmp.h(2177,31): unary minus operator applied to unsigned type, result still unsigned diff --git a/src/libslic3r/Optimize/BruteforceOptimizer.hpp b/src/libslic3r/Optimize/BruteforceOptimizer.hpp index 2daef538e7..6aa4308f99 100644 --- a/src/libslic3r/Optimize/BruteforceOptimizer.hpp +++ b/src/libslic3r/Optimize/BruteforceOptimizer.hpp @@ -1,7 +1,12 @@ #ifndef BRUTEFORCEOPTIMIZER_HPP #define BRUTEFORCEOPTIMIZER_HPP +#include +#include +#include +#include #include +#include namespace Slic3r { namespace opt { diff --git a/src/libslic3r/Optimize/NLoptOptimizer.hpp b/src/libslic3r/Optimize/NLoptOptimizer.hpp index f5d3140463..6e1649f701 100644 --- a/src/libslic3r/Optimize/NLoptOptimizer.hpp +++ b/src/libslic3r/Optimize/NLoptOptimizer.hpp @@ -1,6 +1,12 @@ #ifndef NLOPTOPTIMIZER_HPP #define NLOPTOPTIMIZER_HPP +#include +#include +#include +#include +#include +#include #ifdef _MSC_VER #pragma warning(push) #pragma warning(disable: 4244) diff --git a/src/libslic3r/Optimize/Optimizer.hpp b/src/libslic3r/Optimize/Optimizer.hpp index 8ae55c61c5..ce5bb5bad6 100644 --- a/src/libslic3r/Optimize/Optimizer.hpp +++ b/src/libslic3r/Optimize/Optimizer.hpp @@ -1,6 +1,7 @@ #ifndef OPTIMIZER_HPP #define OPTIMIZER_HPP +#include #include #include #include diff --git a/src/libslic3r/Orient.cpp b/src/libslic3r/Orient.cpp index 7d54048176..b72401f36b 100644 --- a/src/libslic3r/Orient.cpp +++ b/src/libslic3r/Orient.cpp @@ -1,10 +1,30 @@ #include "Orient.hpp" #include "Geometry.hpp" +#include +#include +#include +#include "TriangleMesh.hpp" +#include "Point.hpp" +#include +#include +#include "libslic3r.h" +#include +#include +#include +#include +#include "Model.hpp" +#include "PrintConfig.hpp" #include #include #include #include +#include +#include +#include #include +#include +#include +#include #if defined(_MSC_VER) && defined(__clang__) #define BOOST_NO_CXX17_HDR_STRING_VIEW diff --git a/src/libslic3r/Orient.hpp b/src/libslic3r/Orient.hpp index 370f23d4fb..6839665e01 100644 --- a/src/libslic3r/Orient.hpp +++ b/src/libslic3r/Orient.hpp @@ -1,7 +1,14 @@ #ifndef ORIENT_HPP #define ORIENT_HPP +#include "TriangleMesh.hpp" +#include "Point.hpp" +#include "PrintConfig.hpp" #include "libslic3r/Model.hpp" +#include +#include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/PNGReadWrite.cpp b/src/libslic3r/PNGReadWrite.cpp index 9f6a8b739d..1f29de646b 100644 --- a/src/libslic3r/PNGReadWrite.cpp +++ b/src/libslic3r/PNGReadWrite.cpp @@ -1,5 +1,9 @@ #include "PNGReadWrite.hpp" +#include +#include +#include +#include #include #include @@ -8,6 +12,8 @@ #include #include #include +#include +#include namespace Slic3r { namespace png { diff --git a/src/libslic3r/PNGReadWrite.hpp b/src/libslic3r/PNGReadWrite.hpp index 9a27fed490..c2d2149e1f 100644 --- a/src/libslic3r/PNGReadWrite.hpp +++ b/src/libslic3r/PNGReadWrite.hpp @@ -1,6 +1,8 @@ #ifndef PNGREAD_HPP #define PNGREAD_HPP +#include +#include #include #include #include diff --git a/src/libslic3r/ParameterUtils.cpp b/src/libslic3r/ParameterUtils.cpp index 2e7b0d1d3c..f2f3669124 100644 --- a/src/libslic3r/ParameterUtils.cpp +++ b/src/libslic3r/ParameterUtils.cpp @@ -1,5 +1,10 @@ #include "ParameterUtils.hpp" +#include "PrintConfig.hpp" #include +#include +#include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/ParameterUtils.hpp b/src/libslic3r/ParameterUtils.hpp index 795e7ff619..bf475c16bd 100644 --- a/src/libslic3r/ParameterUtils.hpp +++ b/src/libslic3r/ParameterUtils.hpp @@ -1,6 +1,8 @@ #ifndef slic3r_Parameter_Utils_hpp_ #define slic3r_Parameter_Utils_hpp_ +#include +#include #include #include #include "PrintConfig.hpp" diff --git a/src/libslic3r/PerimeterGenerator.cpp b/src/libslic3r/PerimeterGenerator.cpp index 2f8e29c237..5b775f7e25 100644 --- a/src/libslic3r/PerimeterGenerator.cpp +++ b/src/libslic3r/PerimeterGenerator.cpp @@ -1,23 +1,41 @@ #include "PerimeterGenerator.hpp" #include "AABBTreeLines.hpp" +#include "Arachne/utils/ExtrusionLine.hpp" +#include "Arachne/utils/ExtrusionJunction.hpp" #include "BridgeDetector.hpp" #include "ClipperUtils.hpp" #include "ClipperZUtils.hpp" +#include "ExPolygon.hpp" #include "ExtrusionEntity.hpp" #include "ExtrusionEntityCollection.hpp" #include "Feature/FuzzySkin/FuzzySkin.hpp" +#include "Polygon.hpp" +#include "Polyline.hpp" +#include "Point.hpp" +#include "Flow.hpp" #include "PrintConfig.hpp" #include "ShortestPath.hpp" +#include "Surface.hpp" #include "VariableWidth.hpp" #include "Arachne/WallToolPaths.hpp" #include "Geometry/ConvexHull.hpp" #include "ExPolygonCollection.hpp" #include "Geometry.hpp" #include "Line.hpp" +#include #include #include +#include +#include +#include +#include +#include +#include #include #include +#include +#include "libslic3r.h" +#include #include "libslic3r/AABBTreeLines.hpp" #include "Print.hpp" static const int overhang_sampling_number = 6; diff --git a/src/libslic3r/PerimeterGenerator.hpp b/src/libslic3r/PerimeterGenerator.hpp index cd49b4acdd..c4d5b06095 100644 --- a/src/libslic3r/PerimeterGenerator.hpp +++ b/src/libslic3r/PerimeterGenerator.hpp @@ -1,8 +1,15 @@ #ifndef slic3r_PerimeterGenerator_hpp_ #define slic3r_PerimeterGenerator_hpp_ +#include "ExtrusionEntityCollection.hpp" +#include "Point.hpp" +#include "Surface.hpp" #include "libslic3r.h" +#include +#include +#include #include +#include #include #include "Layer.hpp" #include "Flow.hpp" diff --git a/src/libslic3r/PlaceholderParser.cpp b/src/libslic3r/PlaceholderParser.cpp index 1d7abcd5de..8bddfc1f10 100644 --- a/src/libslic3r/PlaceholderParser.cpp +++ b/src/libslic3r/PlaceholderParser.cpp @@ -1,12 +1,52 @@ #include "PlaceholderParser.hpp" +#include "Config.hpp" #include "Exception.hpp" #include "Flow.hpp" +#include "PrintConfig.hpp" +#include "Point.hpp" #include "Utils.hpp" +#include "libslic3r_version.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "libslic3r.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include +#include +#include +#include +#include #include #include +#include +#include #ifdef _MSC_VER #include // provides **_environ #else diff --git a/src/libslic3r/PlaceholderParser.hpp b/src/libslic3r/PlaceholderParser.hpp index e32a4de9dc..962517a252 100644 --- a/src/libslic3r/PlaceholderParser.hpp +++ b/src/libslic3r/PlaceholderParser.hpp @@ -1,8 +1,10 @@ #ifndef slic3r_PlaceholderParser_hpp_ #define slic3r_PlaceholderParser_hpp_ +#include "Config.hpp" #include "libslic3r.h" #include +#include #include #include #include diff --git a/src/libslic3r/Platform.cpp b/src/libslic3r/Platform.cpp index d2ca27fa96..35a30712d9 100644 --- a/src/libslic3r/Platform.cpp +++ b/src/libslic3r/Platform.cpp @@ -2,6 +2,11 @@ #include #include +#include +#include +#include +#include +#include #if defined(__APPLE__) #include diff --git a/src/libslic3r/Point.cpp b/src/libslic3r/Point.cpp index 9a2c2b14cd..e3ac888ede 100644 --- a/src/libslic3r/Point.cpp +++ b/src/libslic3r/Point.cpp @@ -5,7 +5,14 @@ #include "Polyline.hpp" #include "Int128.hpp" #include "BoundingBox.hpp" +#include +#include "libslic3r.h" #include +#include +#include +#include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/Point.hpp b/src/libslic3r/Point.hpp index 21e5355fc5..6b8c1a81d7 100644 --- a/src/libslic3r/Point.hpp +++ b/src/libslic3r/Point.hpp @@ -2,7 +2,18 @@ #define slic3r_Point_hpp_ #include "libslic3r.h" +#include +#include +#include #include +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include diff --git a/src/libslic3r/Polygon.cpp b/src/libslic3r/Polygon.cpp index b2e2888111..d7591ae27c 100644 --- a/src/libslic3r/Polygon.cpp +++ b/src/libslic3r/Polygon.cpp @@ -2,9 +2,22 @@ #include "ClipperUtils.hpp" #include "Exception.hpp" #include "Polygon.hpp" +#include "Line.hpp" +#include "Point.hpp" +#include "MultiPoint.hpp" #include "Polyline.hpp" +#include "libslic3r.h" +#include +#include +#include #include +#include +#include +#include +#include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/Polygon.hpp b/src/libslic3r/Polygon.hpp index 146491e281..ae312fd830 100644 --- a/src/libslic3r/Polygon.hpp +++ b/src/libslic3r/Polygon.hpp @@ -2,6 +2,13 @@ #define slic3r_Polygon_hpp_ #include "libslic3r.h" +#include +#include +#include +#include +#include +#include +#include #include #include #include "Line.hpp" diff --git a/src/libslic3r/PolygonTrimmer.cpp b/src/libslic3r/PolygonTrimmer.cpp index 2c4e06fc58..a9cdafc73b 100644 --- a/src/libslic3r/PolygonTrimmer.cpp +++ b/src/libslic3r/PolygonTrimmer.cpp @@ -1,6 +1,11 @@ #include "PolygonTrimmer.hpp" #include "EdgeGrid.hpp" #include "Geometry.hpp" +#include "Polygon.hpp" +#include +#include "Point.hpp" +#include "libslic3r.h" +#include namespace Slic3r { diff --git a/src/libslic3r/PolygonTrimmer.hpp b/src/libslic3r/PolygonTrimmer.hpp index 93e94e303f..4f0608169b 100644 --- a/src/libslic3r/PolygonTrimmer.hpp +++ b/src/libslic3r/PolygonTrimmer.hpp @@ -1,6 +1,7 @@ #ifndef slic3r_PolygonTrimmer_hpp_ #define slic3r_PolygonTrimmer_hpp_ +#include "Point.hpp" #include "libslic3r.h" #include #include diff --git a/src/libslic3r/Polyline.cpp b/src/libslic3r/Polyline.cpp index 98a5366ecf..278522bfd9 100644 --- a/src/libslic3r/Polyline.cpp +++ b/src/libslic3r/Polyline.cpp @@ -1,11 +1,21 @@ +#include "ArcFitter.hpp" #include "BoundingBox.hpp" #include "Polyline.hpp" #include "Exception.hpp" #include "ExPolygon.hpp" #include "Line.hpp" +#include "Point.hpp" +#include "MultiPoint.hpp" #include "Polygon.hpp" +#include +#include +#include +#include "libslic3r.h" +#include #include +#include #include +#include namespace Slic3r { diff --git a/src/libslic3r/Polyline.hpp b/src/libslic3r/Polyline.hpp index f52c3c9bbd..29c795db33 100644 --- a/src/libslic3r/Polyline.hpp +++ b/src/libslic3r/Polyline.hpp @@ -1,10 +1,16 @@ #ifndef slic3r_Polyline_hpp_ #define slic3r_Polyline_hpp_ +#include "Point.hpp" #include "libslic3r.h" #include "Line.hpp" #include "MultiPoint.hpp" +#include +#include +#include +#include #include +#include #include //BBS: new necessary header file #include "ArcFitter.hpp" diff --git a/src/libslic3r/Preset.cpp b/src/libslic3r/Preset.cpp index 9ba142dd21..5c87b6b03e 100644 --- a/src/libslic3r/Preset.cpp +++ b/src/libslic3r/Preset.cpp @@ -1,4 +1,30 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include "Config.hpp" #include "Exception.hpp" @@ -7,6 +33,9 @@ #include "AppConfig.hpp" #include "LocalesUtils.hpp" #include "ParallelResolve.hpp" +#include "Semver.hpp" +#include "PrintConfig.hpp" +#include "libslic3r_version.h" #ifdef _MSC_VER #define WIN32_LEAN_AND_MEAN diff --git a/src/libslic3r/Preset.hpp b/src/libslic3r/Preset.hpp index 0134681f9f..2b1fb372af 100644 --- a/src/libslic3r/Preset.hpp +++ b/src/libslic3r/Preset.hpp @@ -1,7 +1,13 @@ #ifndef slic3r_Preset_hpp_ #define slic3r_Preset_hpp_ +#include +#include +#include +#include #include +#include +#include #include #include #include @@ -12,10 +18,14 @@ #include #include #include +#include +#include +#include "Config.hpp" #include "PrintConfig.hpp" #include "Semver.hpp" #include "ProjectTask.hpp" +#include "libslic3r.h" //BBS: change system directories #define PRESET_SYSTEM_DIR "system" diff --git a/src/libslic3r/PresetBundle.cpp b/src/libslic3r/PresetBundle.cpp index c7c31918a5..87ffa1a822 100644 --- a/src/libslic3r/PresetBundle.cpp +++ b/src/libslic3r/PresetBundle.cpp @@ -1,16 +1,45 @@ #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include #include +#include +#include +#include #include +#include +#include +#include +#include +#include +#include +#include +#include #include #include "PresetBundle.hpp" +#include "Config.hpp" +#include "Exception.hpp" +#include "AppConfig.hpp" #include "ParallelResolve.hpp" +#include "Preset.hpp" #include "PresetCacheFormat.hpp" #include "PrintConfig.hpp" #include "PublishSettings.hpp" #include "FilamentMixer.hpp" +#include "Semver.hpp" #include "libslic3r.h" #include "I18N.hpp" #include "Utils.hpp" @@ -25,6 +54,11 @@ #include #include #include +#include +#include +#include +#include +#include #include #include #include @@ -43,6 +77,8 @@ #include #include #include +#include +#include // Mark string for localization and translate. #define L(s) Slic3r::I18N::translate(s) diff --git a/src/libslic3r/PresetBundle.hpp b/src/libslic3r/PresetBundle.hpp index e09ce9dcb5..46d81a9052 100644 --- a/src/libslic3r/PresetBundle.hpp +++ b/src/libslic3r/PresetBundle.hpp @@ -1,16 +1,23 @@ #ifndef slic3r_PresetBundle_hpp_ #define slic3r_PresetBundle_hpp_ +#include "Config.hpp" #include "Preset.hpp" #include "PresetCacheFormat.hpp" #include "AppConfig.hpp" +#include "PrintConfig.hpp" #include "PublishSettings.hpp" +#include "Semver.hpp" #include "enum_bitmask.hpp" +#include +#include +#include #include #include #include #include +#include #include #include #include @@ -18,6 +25,8 @@ #include #include #include +#include +#include #define DEFAULT_USER_FOLDER_NAME "default" #define BUNDLE_STRUCTURE_JSON_NAME "bundle_structure.json" diff --git a/src/libslic3r/PresetCacheFormat.cpp b/src/libslic3r/PresetCacheFormat.cpp index a45bcb77ac..01e634a581 100644 --- a/src/libslic3r/PresetCacheFormat.cpp +++ b/src/libslic3r/PresetCacheFormat.cpp @@ -1,9 +1,20 @@ #include "libslic3r/PresetCacheFormat.hpp" #include +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include +#include +#include +#include #include #include @@ -14,7 +25,12 @@ #include #include #include +#include +#include "Config.hpp" +#include "PrintConfig.hpp" +#include "Semver.hpp" +#include "Preset.hpp" #include "libslic3r/Utils.hpp" namespace Slic3r { diff --git a/src/libslic3r/PresetCacheFormat.hpp b/src/libslic3r/PresetCacheFormat.hpp index 52c40bea21..8ad1c5bde5 100644 --- a/src/libslic3r/PresetCacheFormat.hpp +++ b/src/libslic3r/PresetCacheFormat.hpp @@ -1,6 +1,7 @@ #ifndef slic3r_PresetCacheFormat_hpp_ #define slic3r_PresetCacheFormat_hpp_ +#include #include #include #include diff --git a/src/libslic3r/PrincipalComponents2D.cpp b/src/libslic3r/PrincipalComponents2D.cpp index 7bdf793157..6d88320286 100644 --- a/src/libslic3r/PrincipalComponents2D.cpp +++ b/src/libslic3r/PrincipalComponents2D.cpp @@ -1,5 +1,11 @@ #include "PrincipalComponents2D.hpp" #include "Point.hpp" +#include +#include +#include "Polygon.hpp" +#include +#include "libslic3r.h" +#include namespace Slic3r { diff --git a/src/libslic3r/PrincipalComponents2D.hpp b/src/libslic3r/PrincipalComponents2D.hpp index dc8897a7a7..adf8e77a20 100644 --- a/src/libslic3r/PrincipalComponents2D.hpp +++ b/src/libslic3r/PrincipalComponents2D.hpp @@ -3,7 +3,9 @@ #include "AABBTreeLines.hpp" #include "BoundingBox.hpp" +#include "Point.hpp" #include "libslic3r.h" +#include #include #include "Polygon.hpp" diff --git a/src/libslic3r/Print.cpp b/src/libslic3r/Print.cpp index c3d157e1e6..bb91441c79 100644 --- a/src/libslic3r/Print.cpp +++ b/src/libslic3r/Print.cpp @@ -3,6 +3,56 @@ // needs the Win32 types declared already. #include #endif + +#include "PrintBase.hpp" +#include +#include +#include +#include +#include "libslic3r.h" +#include "calib.hpp" +#include +#include "CustomGCode.hpp" +#include "ObjectID.hpp" +#include +#include "Point.hpp" +#include "Polygon.hpp" +#include "Geometry.hpp" +#include +#include +#include +#include +#include "Slicing.hpp" +#include +#include "TriangleSelector.hpp" +#include "GCode/AdaptivePAProcessor.hpp" +#include +#include +#include "ExPolygon.hpp" +#include "Layer.hpp" +#include "FilamentGroup.hpp" +#include +#include "FilamentGroupUtils.hpp" +#include "MultiNozzleUtils.hpp" +#include +#include +#include "GCode/GCodeProcessor.hpp" +#include "GCode/ThumbnailData.hpp" +#include "ExtrusionEntity.hpp" +#include +#include "CommonDefs.hpp" +#include +#include +#include +#include "Surface.hpp" +#include "Circle.hpp" +#include "Polyline.hpp" +#include "ArcFitter.hpp" +#include +#include +#include +#include +#include "TriangleMesh.hpp" #include "Config.hpp" #include "Exception.hpp" #include "Print.hpp" diff --git a/src/libslic3r/Print.hpp b/src/libslic3r/Print.hpp index 13562b4355..2fe135a24c 100644 --- a/src/libslic3r/Print.hpp +++ b/src/libslic3r/Print.hpp @@ -1,6 +1,14 @@ #ifndef slic3r_Print_hpp_ #define slic3r_Print_hpp_ +#include "Config.hpp" +#include "Model.hpp" +#include "Polygon.hpp" +#include "Fill/FillBase.hpp" +#include "Polyline.hpp" +#include "ExtrusionEntity.hpp" +#include "Geometry.hpp" +#include "CommonDefs.hpp" #include "PrintBase.hpp" #include "Fill/FillAdaptive.hpp" #include "Fill/FillLightning.hpp" @@ -9,7 +17,9 @@ #include "ExtrusionEntityCollection.hpp" #include "Flow.hpp" #include "Point.hpp" +#include "PrintConfig.hpp" #include "Slicing.hpp" +#include "TriangleMesh.hpp" #include "TriangleMeshSlicer.hpp" #include "GCode/ToolOrdering.hpp" #include "GCode/WipeTower.hpp" @@ -18,13 +28,25 @@ #include "GCode/GCodeProcessor.hpp" #include "MultiMaterialSegmentation.hpp" #include "ObjectID.hpp" +#include "TriangleSelector.hpp" #include "libslic3r.h" #include +#include +#include +#include #include +#include +#include +#include +#include #include +#include +#include #include +#include +#include #include "calib.hpp" diff --git a/src/libslic3r/PrintApply.cpp b/src/libslic3r/PrintApply.cpp index 9b794d2787..6b9a559f03 100644 --- a/src/libslic3r/PrintApply.cpp +++ b/src/libslic3r/PrintApply.cpp @@ -1,10 +1,35 @@ #include "ClipperUtils.hpp" +#include "Geometry.hpp" +#include "CustomGCode.hpp" +#include "Config.hpp" #include "Model.hpp" +#include "Point.hpp" +#include "Polygon.hpp" #include "Print.hpp" #include "FilamentMixer.hpp" +#include "Slicing.hpp" +#include "libslic3r.h" +#include "PrintConfig.hpp" +#include "PrintBase.hpp" +#include "libslic3r_version.h" +#include "TriangleSelector.hpp" +#include +#include #include +#include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/PrintBase.cpp b/src/libslic3r/PrintBase.cpp index 4448c12c76..7b022c8c84 100644 --- a/src/libslic3r/PrintBase.cpp +++ b/src/libslic3r/PrintBase.cpp @@ -1,11 +1,23 @@ +#include "Config.hpp" #include "Exception.hpp" #include "PrintBase.hpp" #include +#include #include #include +#include +#include +#include +#include +#include +#include #include "I18N.hpp" +#include "Model.hpp" +#include "libslic3r.h" +#include "libslic3r_version.h" +#include "PlaceholderParser.hpp" //! macro used to mark string used at localization, //! return same string diff --git a/src/libslic3r/PrintBase.hpp b/src/libslic3r/PrintBase.hpp index f1b158e51f..7e2b17e48f 100644 --- a/src/libslic3r/PrintBase.hpp +++ b/src/libslic3r/PrintBase.hpp @@ -1,8 +1,15 @@ #ifndef slic3r_PrintBase_hpp_ #define slic3r_PrintBase_hpp_ +#include "Config.hpp" +#include "Polygon.hpp" #include "libslic3r.h" +#include +#include +#include +#include #include +#include #include #include #include diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index fbd72117cd..76073b4981 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -1,14 +1,35 @@ #include "PrintConfig.hpp" +#include "CommonDefs.hpp" +#include "Point.hpp" +#include "Polygon.hpp" #include "PrintConfigConstants.hpp" #include "ClipperUtils.hpp" #include "Config.hpp" #include "FilamentMixer.hpp" #include "MaterialType.hpp" #include "I18N.hpp" +#include "enum_bitmask.hpp" #include "format.hpp" #include "GCode/Thumbnails.hpp" #include +#include +#include +#include +#include +#include +#include +#include +#include "libslic3r.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include @@ -19,6 +40,11 @@ #include #include #include +#include +#include +#include +#include +#include namespace { std::set SplitStringAndRemoveDuplicateElement(const std::string &str, const std::string &separator) diff --git a/src/libslic3r/PrintConfig.hpp b/src/libslic3r/PrintConfig.hpp index f2c7b2810a..0a478d66dc 100644 --- a/src/libslic3r/PrintConfig.hpp +++ b/src/libslic3r/PrintConfig.hpp @@ -16,10 +16,13 @@ #ifndef slic3r_PrintConfig_hpp_ #define slic3r_PrintConfig_hpp_ +#include "Point.hpp" #include "libslic3r.h" #include "CommonDefs.hpp" #include "Config.hpp" #include "Polygon.hpp" +#include +#include #include #include #include @@ -27,6 +30,19 @@ #include #include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/PrintObject.cpp b/src/libslic3r/PrintObject.cpp index 699bbb99b2..d4201cf696 100644 --- a/src/libslic3r/PrintObject.cpp +++ b/src/libslic3r/PrintObject.cpp @@ -1,6 +1,12 @@ +#include "ExPolygon.hpp" +#include "Config.hpp" #include "Exception.hpp" +#include "Line.hpp" +#include "Flow.hpp" #include "Model.hpp" #include "Point.hpp" +#include "Polygon.hpp" +#include "Polyline.hpp" #include "Print.hpp" #include "BoundingBox.hpp" #include "ClipperUtils.hpp" @@ -9,6 +15,7 @@ #include "I18N.hpp" #include "Layer.hpp" #include "MutablePolygon.hpp" +#include "PrintBase.hpp" #include "PrintConfig.hpp" #include "SLA/IndexedMesh.hpp" #include "Support/SupportMaterial.hpp" @@ -18,6 +25,7 @@ #include "Slicing.hpp" #include "Tesselate.hpp" #include "TriangleMeshSlicer.hpp" +#include "TriangleSelector.hpp" #include "Utils.hpp" #include "Fill/FillAdaptive.hpp" #include "Fill/Fill.hpp" @@ -26,16 +34,39 @@ #include "format.hpp" #include "AABBTreeIndirect.hpp" #include "AABBTreeLines.hpp" +#include "libslic3r.h" +#include +#include +#include +#include +#include +#include +#include #include +#include +#include #include +#include +#include +#include +#include #include +#include +#include +#include +#include #include +#include +#include +#include #include #include #include #include #include +#include +#include #include #include @@ -45,6 +76,7 @@ #include #include +#include using namespace std::literals; diff --git a/src/libslic3r/PrintObjectSlice.cpp b/src/libslic3r/PrintObjectSlice.cpp index 14bd65c9cf..43a9b703a0 100644 --- a/src/libslic3r/PrintObjectSlice.cpp +++ b/src/libslic3r/PrintObjectSlice.cpp @@ -1,16 +1,42 @@ +#include #include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include +#include +#include "BoundingBox.hpp" #include "ClipperUtils.hpp" #include "ElephantFootCompensation.hpp" +#include "ExPolygon.hpp" #include "Exception.hpp" +#include "Flow.hpp" #include "I18N.hpp" #include "Layer.hpp" +#include "Model.hpp" #include "MultiMaterialSegmentation.hpp" +#include "ObjectID.hpp" +#include "Point.hpp" +#include "Polygon.hpp" #include "Print.hpp" //BBS +#include "PrintConfig.hpp" +#include "PrintBase.hpp" #include "ShortestPath.hpp" +#include "libslic3r.h" +#include "TriangleMeshSlicer.hpp" +#include "TriangleMesh.hpp" +#include "Slicing.hpp" +#include "Surface.hpp" +#include "Utils.hpp" #include "libslic3r/Feature/Interlocking/InterlockingGenerator.hpp" //! macro used to mark string used at localization, return same string diff --git a/src/libslic3r/PrintRegion.cpp b/src/libslic3r/PrintRegion.cpp index 5c08de8b36..52018223ca 100644 --- a/src/libslic3r/PrintRegion.cpp +++ b/src/libslic3r/PrintRegion.cpp @@ -1,5 +1,13 @@ +#include "Config.hpp" #include "Exception.hpp" +#include "Flow.hpp" #include "Print.hpp" +#include +#include "PrintConfig.hpp" +#include "libslic3r.h" +#include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/ProjectTask.cpp b/src/libslic3r/ProjectTask.cpp index fe5fd36a45..33be040999 100644 --- a/src/libslic3r/ProjectTask.cpp +++ b/src/libslic3r/ProjectTask.cpp @@ -4,6 +4,11 @@ #include "ProjectTask.hpp" +#include +#include +#include +#include +#include #include #include #include diff --git a/src/libslic3r/ProjectTask.hpp b/src/libslic3r/ProjectTask.hpp index fd9dd2db3b..47eaa37dcc 100644 --- a/src/libslic3r/ProjectTask.hpp +++ b/src/libslic3r/ProjectTask.hpp @@ -1,6 +1,7 @@ #ifndef slic3r_ProjectTask_hpp_ #define slic3r_ProjectTask_hpp_ +#include #include #include #include diff --git a/src/libslic3r/PublishSettings.cpp b/src/libslic3r/PublishSettings.cpp index 6d28cc0af3..435c8e44eb 100644 --- a/src/libslic3r/PublishSettings.cpp +++ b/src/libslic3r/PublishSettings.cpp @@ -1,5 +1,6 @@ #include "PublishSettings.hpp" +#include "Config.hpp" #include "PresetBundle.hpp" #include "Preset.hpp" #include "PrintConfig.hpp" @@ -8,8 +9,11 @@ #include #include +#include #include #include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/QuadricEdgeCollapse.cpp b/src/libslic3r/QuadricEdgeCollapse.cpp index 5d0e3c17e8..27f820e453 100644 --- a/src/libslic3r/QuadricEdgeCollapse.cpp +++ b/src/libslic3r/QuadricEdgeCollapse.cpp @@ -1,8 +1,22 @@ #include "QuadricEdgeCollapse.hpp" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include "MutablePriorityQueue.hpp" +#include "libslic3r.h" +#include "Point.hpp" #include +#include +#include using namespace Slic3r; diff --git a/src/libslic3r/SLA/AGGRaster.hpp b/src/libslic3r/SLA/AGGRaster.hpp index 7c8e71c2ae..52c95eae5b 100644 --- a/src/libslic3r/SLA/AGGRaster.hpp +++ b/src/libslic3r/SLA/AGGRaster.hpp @@ -1,7 +1,14 @@ #ifndef AGGRASTER_HPP #define AGGRASTER_HPP +#include +#include +#include +#include #include +#include "libslic3r/Polygon.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/libslic3r.h" #include "libslic3r/ExPolygon.hpp" // For rasterizing @@ -15,6 +22,8 @@ #include #include #include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/SLA/BoostAdapter.hpp b/src/libslic3r/SLA/BoostAdapter.hpp index 13e0465b14..d5487808a7 100644 --- a/src/libslic3r/SLA/BoostAdapter.hpp +++ b/src/libslic3r/SLA/BoostAdapter.hpp @@ -1,10 +1,22 @@ #ifndef SLA_BOOSTADAPTER_HPP #define SLA_BOOSTADAPTER_HPP +#include +#include +#include +#include "libslic3r/libslic3r.h" +#include +#include +#include +#include +#include +#include +#include #include #include #include +#include namespace boost { namespace geometry { diff --git a/src/libslic3r/SLA/Clustering.cpp b/src/libslic3r/SLA/Clustering.cpp index 41ff1d4f09..010ce5d6e1 100644 --- a/src/libslic3r/SLA/Clustering.cpp +++ b/src/libslic3r/SLA/Clustering.cpp @@ -1,8 +1,16 @@ #include "Clustering.hpp" #include "boost/geometry/index/rtree.hpp" +#include +#include +#include +#include +#include +#include #include #include +#include +#include namespace Slic3r { namespace sla { diff --git a/src/libslic3r/SLA/Clustering.hpp b/src/libslic3r/SLA/Clustering.hpp index 269ec28822..0f1e113b22 100644 --- a/src/libslic3r/SLA/Clustering.hpp +++ b/src/libslic3r/SLA/Clustering.hpp @@ -1,6 +1,11 @@ #ifndef SLA_CLUSTERING_HPP #define SLA_CLUSTERING_HPP +#include +#include +#include +#include +#include #include #include diff --git a/src/libslic3r/SLA/ConcaveHull.cpp b/src/libslic3r/SLA/ConcaveHull.cpp index 2484fda2ff..8d361fc5b5 100644 --- a/src/libslic3r/SLA/ConcaveHull.cpp +++ b/src/libslic3r/SLA/ConcaveHull.cpp @@ -1,3 +1,10 @@ +#include "libslic3r/Point.hpp" +#include "libslic3r/libslic3r.h" +#include +#include +#include "libslic3r/Polygon.hpp" +#include +#include "libslic3r/ExPolygon.hpp" #include #include @@ -5,6 +12,8 @@ #include #include +#include +#include namespace Slic3r { namespace sla { diff --git a/src/libslic3r/SLA/ConcaveHull.hpp b/src/libslic3r/SLA/ConcaveHull.hpp index dccdafd18c..5c697c2595 100644 --- a/src/libslic3r/SLA/ConcaveHull.hpp +++ b/src/libslic3r/SLA/ConcaveHull.hpp @@ -1,6 +1,10 @@ #ifndef SLA_CONCAVEHULL_HPP #define SLA_CONCAVEHULL_HPP +#include "libslic3r/Polygon.hpp" +#include +#include "libslic3r/Point.hpp" +#include "libslic3r/libslic3r.h" #include namespace Slic3r { diff --git a/src/libslic3r/SLA/Concurrency.hpp b/src/libslic3r/SLA/Concurrency.hpp index 7299101b31..35e30d88d7 100644 --- a/src/libslic3r/SLA/Concurrency.hpp +++ b/src/libslic3r/SLA/Concurrency.hpp @@ -3,6 +3,8 @@ // FIXME: Deprecated +#include "libslic3r/Execution/Execution.hpp" +#include #include #include diff --git a/src/libslic3r/SLA/Hollowing.cpp b/src/libslic3r/SLA/Hollowing.cpp index f50cdbced2..d21744a026 100644 --- a/src/libslic3r/SLA/Hollowing.cpp +++ b/src/libslic3r/SLA/Hollowing.cpp @@ -1,5 +1,20 @@ +#include "libslic3r/SLA/JobController.hpp" +#include +#include +#include "libslic3r/libslic3r.h" +#include +#include +#include "libslic3r/Point.hpp" +#include +#include +#include "libslic3r/ExPolygon.hpp" +#include +#include "libslic3r/SLA/Concurrency.hpp" #include +#include +#include #include +#include #include #include @@ -15,6 +30,8 @@ #include #include +#include +#include //! macro used to mark string used at localization, //! return same string diff --git a/src/libslic3r/SLA/Hollowing.hpp b/src/libslic3r/SLA/Hollowing.hpp index f6beaadb24..fd06f93a34 100644 --- a/src/libslic3r/SLA/Hollowing.hpp +++ b/src/libslic3r/SLA/Hollowing.hpp @@ -1,9 +1,17 @@ #ifndef SLA_HOLLOWING_HPP #define SLA_HOLLOWING_HPP +#include "libslic3r/Point.hpp" +#include +#include +#include "libslic3r/libslic3r.h" +#include "libslic3r/ExPolygon.hpp" +#include #include #include #include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/SLA/IndexedMesh.cpp b/src/libslic3r/SLA/IndexedMesh.cpp index 65d9d90b34..d17f9497fc 100644 --- a/src/libslic3r/SLA/IndexedMesh.cpp +++ b/src/libslic3r/SLA/IndexedMesh.cpp @@ -1,10 +1,24 @@ #include "IndexedMesh.hpp" +#include "libslic3r/BoundingBox.hpp" #include "Concurrency.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/libslic3r.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include +#include #include +#include #ifdef SLIC3R_HOLE_RAYCASTER #include diff --git a/src/libslic3r/SLA/IndexedMesh.hpp b/src/libslic3r/SLA/IndexedMesh.hpp index bb2dee034c..b377064115 100644 --- a/src/libslic3r/SLA/IndexedMesh.hpp +++ b/src/libslic3r/SLA/IndexedMesh.hpp @@ -1,6 +1,12 @@ #ifndef SLA_INDEXEDMESH_H #define SLA_INDEXEDMESH_H +#include +#include +#include +#include +#include +#include #include #include diff --git a/src/libslic3r/SLA/Pad.cpp b/src/libslic3r/SLA/Pad.cpp index 8726dfa55b..887676174d 100644 --- a/src/libslic3r/SLA/Pad.cpp +++ b/src/libslic3r/SLA/Pad.cpp @@ -1,3 +1,5 @@ +#include +#include #include #include #include @@ -6,6 +8,9 @@ #include "ConcaveHull.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/ExPolygon.hpp" +#include "libslic3r/TriangleMesh.hpp" #include "boost/log/trivial.hpp" #include "ClipperUtils.hpp" #include "Tesselate.hpp" @@ -19,7 +24,11 @@ #include "SVG.hpp" #include "I18N.hpp" +#include "libslic3r/libslic3r.h" #include +#include +#include +#include //! macro used to mark string used at localization, //! return same string diff --git a/src/libslic3r/SLA/RasterBase.cpp b/src/libslic3r/SLA/RasterBase.cpp index 7240b198da..dadfa23e96 100644 --- a/src/libslic3r/SLA/RasterBase.cpp +++ b/src/libslic3r/SLA/RasterBase.cpp @@ -1,13 +1,25 @@ #ifndef SLARASTER_CPP #define SLARASTER_CPP +#include +#include +#include +#include +#include #include +#include +#include #include #include // minz image write: +#include #include +#include +#include +#include +#include namespace Slic3r { namespace sla { diff --git a/src/libslic3r/SLA/RasterBase.hpp b/src/libslic3r/SLA/RasterBase.hpp index 33d39eafbd..44b7c0dccd 100644 --- a/src/libslic3r/SLA/RasterBase.hpp +++ b/src/libslic3r/SLA/RasterBase.hpp @@ -1,8 +1,13 @@ #ifndef SLA_RASTERBASE_HPP #define SLA_RASTERBASE_HPP +#include +#include +#include "libslic3r/libslic3r.h" +#include "libslic3r/Point.hpp" #include #include +#include #include #include #include diff --git a/src/libslic3r/SLA/RasterToPolygons.cpp b/src/libslic3r/SLA/RasterToPolygons.cpp index e05a721cd8..88620831d8 100644 --- a/src/libslic3r/SLA/RasterToPolygons.cpp +++ b/src/libslic3r/SLA/RasterToPolygons.cpp @@ -1,9 +1,18 @@ #include "RasterToPolygons.hpp" #include "AGGRaster.hpp" +#include "libslic3r/ExPolygon.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/Polygon.hpp" +#include "libslic3r/libslic3r.h" #include "libslic3r/MarchingSquares.hpp" #include "MTUtils.hpp" #include "ClipperUtils.hpp" +#include +#include +#include +#include +#include namespace marchsq { diff --git a/src/libslic3r/SLA/RasterToPolygons.hpp b/src/libslic3r/SLA/RasterToPolygons.hpp index 5320887c8f..1f78865603 100644 --- a/src/libslic3r/SLA/RasterToPolygons.hpp +++ b/src/libslic3r/SLA/RasterToPolygons.hpp @@ -1,6 +1,7 @@ #ifndef RASTERTOPOLYGONS_HPP #define RASTERTOPOLYGONS_HPP +#include "libslic3r/Point.hpp" #include "libslic3r/ExPolygon.hpp" namespace Slic3r { diff --git a/src/libslic3r/SLA/ReprojectPointsOnMesh.hpp b/src/libslic3r/SLA/ReprojectPointsOnMesh.hpp index 3ad7d62b1e..881a0a0e22 100644 --- a/src/libslic3r/SLA/ReprojectPointsOnMesh.hpp +++ b/src/libslic3r/SLA/ReprojectPointsOnMesh.hpp @@ -7,7 +7,9 @@ #include "IndexedMesh.hpp" #include "libslic3r/Model.hpp" +#include #include +#include namespace Slic3r { namespace sla { diff --git a/src/libslic3r/SLA/Rotfinder.cpp b/src/libslic3r/SLA/Rotfinder.cpp index 196646dc9e..8134fb1d6c 100644 --- a/src/libslic3r/SLA/Rotfinder.cpp +++ b/src/libslic3r/SLA/Rotfinder.cpp @@ -1,3 +1,10 @@ +#include +#include +#include +#include +#include +#include +#include #include #include @@ -8,12 +15,19 @@ #include #include +#include "libslic3r/Point.hpp" +#include "libslic3r/libslic3r.h" +#include "libslic3r/Execution/Execution.hpp" +#include "libslic3r/Model.hpp" +#include "libslic3r/Optimize/Optimizer.hpp" +#include "libslic3r/BoundingBox.hpp" #include "libslic3r/SLAPrint.hpp" #include "libslic3r/PrintConfig.hpp" #include #include +#include namespace Slic3r { namespace sla { diff --git a/src/libslic3r/SLA/Rotfinder.hpp b/src/libslic3r/SLA/Rotfinder.hpp index d632419fb3..ba0f23b310 100644 --- a/src/libslic3r/SLA/Rotfinder.hpp +++ b/src/libslic3r/SLA/Rotfinder.hpp @@ -5,6 +5,7 @@ #include #include +#include namespace Slic3r { diff --git a/src/libslic3r/SLA/SpatIndex.cpp b/src/libslic3r/SLA/SpatIndex.cpp index d95ba55bee..3e36b4943e 100644 --- a/src/libslic3r/SLA/SpatIndex.cpp +++ b/src/libslic3r/SLA/SpatIndex.cpp @@ -1,7 +1,15 @@ #include "SpatIndex.hpp" +#include "libslic3r/BoundingBox.hpp" // for concave hull merging decisions +#include +#include +#include +#include +#include #include +#include +#include #ifdef _MSC_VER #pragma warning(push) diff --git a/src/libslic3r/SLA/SpatIndex.hpp b/src/libslic3r/SLA/SpatIndex.hpp index ef059d3ae6..a35806800c 100644 --- a/src/libslic3r/SLA/SpatIndex.hpp +++ b/src/libslic3r/SLA/SpatIndex.hpp @@ -1,6 +1,9 @@ #ifndef SLA_SPATINDEX_HPP #define SLA_SPATINDEX_HPP +#include +#include +#include #include #include #include diff --git a/src/libslic3r/SLA/SupportPoint.hpp b/src/libslic3r/SLA/SupportPoint.hpp index 71849a3643..6c2cf88075 100644 --- a/src/libslic3r/SLA/SupportPoint.hpp +++ b/src/libslic3r/SLA/SupportPoint.hpp @@ -1,7 +1,11 @@ #ifndef SLA_SUPPORTPOINT_HPP #define SLA_SUPPORTPOINT_HPP +#include +#include +#include "libslic3r/libslic3r.h" #include +#include namespace Slic3r { namespace sla { diff --git a/src/libslic3r/SLA/SupportPointGenerator.cpp b/src/libslic3r/SLA/SupportPointGenerator.cpp index e3cca1324f..f63430bede 100644 --- a/src/libslic3r/SLA/SupportPointGenerator.cpp +++ b/src/libslic3r/SLA/SupportPointGenerator.cpp @@ -1,6 +1,15 @@ //#include "igl/random_points_on_mesh.h" //#include "igl/AABB.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include "SupportPointGenerator.hpp" @@ -8,6 +17,9 @@ #include "Concurrency.hpp" #include "Model.hpp" #include "ExPolygon.hpp" +#include "libslic3r/SLA/IndexedMesh.hpp" +#include "libslic3r/SLA/SupportPoint.hpp" +#include "libslic3r/Polygon.hpp" #include "SVG.hpp" #include "Point.hpp" #include "ClipperUtils.hpp" @@ -17,6 +29,9 @@ #include #include +#include +#include +#include namespace Slic3r { namespace sla { diff --git a/src/libslic3r/SLA/SupportPointGenerator.hpp b/src/libslic3r/SLA/SupportPointGenerator.hpp index 17daed9f30..e48fa05335 100644 --- a/src/libslic3r/SLA/SupportPointGenerator.hpp +++ b/src/libslic3r/SLA/SupportPointGenerator.hpp @@ -1,6 +1,13 @@ #ifndef SLA_SUPPORTPOINTGENERATOR_HPP #define SLA_SUPPORTPOINTGENERATOR_HPP +#include "libslic3r/ExPolygon.hpp" +#include +#include "libslic3r/Polygon.hpp" +#include +#include "libslic3r/libslic3r.h" +#include +#include #include #include @@ -11,6 +18,9 @@ #include #include +#include +#include +#include // #define SLA_SUPPORTPOINTGEN_DEBUG diff --git a/src/libslic3r/SLA/SupportTree.cpp b/src/libslic3r/SLA/SupportTree.cpp index a0f88ed608..4de28ca45b 100644 --- a/src/libslic3r/SLA/SupportTree.cpp +++ b/src/libslic3r/SLA/SupportTree.cpp @@ -3,6 +3,12 @@ * */ +#include "libslic3r/TriangleMesh.hpp" +#include "libslic3r/ExPolygon.hpp" +#include "libslic3r/libslic3r.h" +#include +#include +#include #include #include #include @@ -18,6 +24,8 @@ #include #include #include +#include +#include //! macro used to mark string used at localization, //! return same string diff --git a/src/libslic3r/SLA/SupportTree.hpp b/src/libslic3r/SLA/SupportTree.hpp index a5e283b0dd..7511b0aaa5 100644 --- a/src/libslic3r/SLA/SupportTree.hpp +++ b/src/libslic3r/SLA/SupportTree.hpp @@ -1,6 +1,7 @@ #ifndef SLA_SUPPORTTREE_HPP #define SLA_SUPPORTTREE_HPP +#include #include #include #include diff --git a/src/libslic3r/SLA/SupportTreeBuilder.cpp b/src/libslic3r/SLA/SupportTreeBuilder.cpp index 4080c4fc3f..635b5452d1 100644 --- a/src/libslic3r/SLA/SupportTreeBuilder.cpp +++ b/src/libslic3r/SLA/SupportTreeBuilder.cpp @@ -2,6 +2,21 @@ #define NOMINMAX #endif +#include "libslic3r/SLA/SpatIndex.hpp" +#include "libslic3r/ExPolygon.hpp" +#include "libslic3r/SLA/Pad.hpp" +#include "libslic3r/libslic3r.h" +#include "libslic3r/MTUtils.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/TriangleMesh.hpp" +#include +#include +#include +#include +#include +#include "libslic3r/BoundingBox.hpp" +#include "libslic3r/SLA/SupportTree.hpp" + #include #include #include diff --git a/src/libslic3r/SLA/SupportTreeBuilder.hpp b/src/libslic3r/SLA/SupportTreeBuilder.hpp index df5484e3dd..de0170d854 100644 --- a/src/libslic3r/SLA/SupportTreeBuilder.hpp +++ b/src/libslic3r/SLA/SupportTreeBuilder.hpp @@ -1,12 +1,18 @@ #ifndef SLA_SUPPORTTREEBUILDER_HPP #define SLA_SUPPORTTREEBUILDER_HPP +#include "libslic3r/Point.hpp" +#include +#include +#include "libslic3r/libslic3r.h" #include #include //#include #include #include #include +#include +#include namespace Slic3r { namespace sla { diff --git a/src/libslic3r/SLA/SupportTreeBuildsteps.cpp b/src/libslic3r/SLA/SupportTreeBuildsteps.cpp index cff92b5b89..923d0f924f 100644 --- a/src/libslic3r/SLA/SupportTreeBuildsteps.cpp +++ b/src/libslic3r/SLA/SupportTreeBuildsteps.cpp @@ -1,8 +1,31 @@ +#include "libslic3r/Optimize/Optimizer.hpp" +#include "libslic3r/SLA/SupportTree.hpp" +#include "libslic3r/SLA/IndexedMesh.hpp" +#include "libslic3r/SLA/SupportTreeBuilder.hpp" +#include "libslic3r/SLA/SupportPoint.hpp" +#include +#include +#include +#include "libslic3r/SLA/Concurrency.hpp" +#include "libslic3r/libslic3r.h" +#include +#include +#include +#include "libslic3r/Point.hpp" +#include "libslic3r/SLA/Clustering.hpp" +#include +#include +#include #include #include #include #include +#include +#include +#include +#include +#include namespace Slic3r { namespace sla { diff --git a/src/libslic3r/SLA/SupportTreeBuildsteps.hpp b/src/libslic3r/SLA/SupportTreeBuildsteps.hpp index 478e2df1fe..850f35bdeb 100644 --- a/src/libslic3r/SLA/SupportTreeBuildsteps.hpp +++ b/src/libslic3r/SLA/SupportTreeBuildsteps.hpp @@ -1,12 +1,30 @@ #ifndef SLASUPPORTTREEALGORITHM_H #define SLASUPPORTTREEALGORITHM_H +#include "libslic3r/Point.hpp" +#include +#include +#include +#include "libslic3r/libslic3r.h" +#include "libslic3r/SLA/Concurrency.hpp" +#include +#include +#include "libslic3r/SLA/SupportTree.hpp" +#include "libslic3r/SLA/IndexedMesh.hpp" +#include "libslic3r/SLA/SupportPoint.hpp" +#include "libslic3r/SLA/Pad.hpp" #include +#include +#include +#include #include #include #include #include +#include +#include +#include namespace Slic3r { namespace sla { diff --git a/src/libslic3r/SLA/SupportTreeMesher.cpp b/src/libslic3r/SLA/SupportTreeMesher.cpp index 17f57f4578..0732a7ab23 100644 --- a/src/libslic3r/SLA/SupportTreeMesher.cpp +++ b/src/libslic3r/SLA/SupportTreeMesher.cpp @@ -1,4 +1,13 @@ #include "SupportTreeMesher.hpp" +#include "libslic3r/libslic3r.h" +#include +#include +#include +#include +#include "libslic3r/Point.hpp" +#include +#include +#include "libslic3r/TriangleMesh.hpp" namespace Slic3r { namespace sla { diff --git a/src/libslic3r/SLA/SupportTreeMesher.hpp b/src/libslic3r/SLA/SupportTreeMesher.hpp index 63ccc5fce3..e914bcea36 100644 --- a/src/libslic3r/SLA/SupportTreeMesher.hpp +++ b/src/libslic3r/SLA/SupportTreeMesher.hpp @@ -1,10 +1,14 @@ #ifndef SUPPORTTREEMESHER_HPP #define SUPPORTTREEMESHER_HPP +#include "libslic3r/libslic3r.h" #include "libslic3r/Point.hpp" #include "libslic3r/SLA/SupportTreeBuilder.hpp" #include "libslic3r/TriangleMesh.hpp" +#include +#include +#include //#include "libslic3r/SLA/Contour3D.hpp" namespace Slic3r { namespace sla { diff --git a/src/libslic3r/SLAPrint.cpp b/src/libslic3r/SLAPrint.cpp index eb37ca578c..336143c764 100644 --- a/src/libslic3r/SLAPrint.cpp +++ b/src/libslic3r/SLAPrint.cpp @@ -1,17 +1,42 @@ #include "SLAPrint.hpp" +#include "PrintConfig.hpp" +#include "SLA/SupportTree.hpp" +#include "SLA/Pad.hpp" +#include "Point.hpp" +#include "Model.hpp" +#include "ObjectID.hpp" +#include "Config.hpp" +#include "PrintBase.hpp" +#include "SLA/SupportPoint.hpp" +#include "Polygon.hpp" +#include "ExPolygon.hpp" +#include "SLA/Hollowing.hpp" #include "SLAPrintSteps.hpp" #include "ClipperUtils.hpp" #include "Geometry.hpp" #include "MTUtils.hpp" #include "Thread.hpp" +#include "libslic3r.h" +#include "Utils.hpp" +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include #include #include +#include +#include // #define SLAPRINT_DO_BENCHMARK diff --git a/src/libslic3r/SLAPrint.hpp b/src/libslic3r/SLAPrint.hpp index 0eaa44a754..7b863f7380 100644 --- a/src/libslic3r/SLAPrint.hpp +++ b/src/libslic3r/SLAPrint.hpp @@ -1,15 +1,35 @@ #ifndef slic3r_SLAPrint_hpp_ #define slic3r_SLAPrint_hpp_ +#include +#include +#include #include +#include +#include +#include #include +#include "ObjectID.hpp" +#include +#include "ExPolygon.hpp" +#include +#include "Config.hpp" +#include +#include "Polygon.hpp" +#include #include "PrintBase.hpp" +#include "PrintConfig.hpp" +#include "SLA/Hollowing.hpp" +#include "SLA/JobController.hpp" +#include "SLA/Pad.hpp" #include "SLA/RasterBase.hpp" +#include "SLA/SupportPoint.hpp" #include "SLA/SupportTree.hpp" #include "Execution/ExecutionTBB.hpp" #include "Point.hpp" #include "MTUtils.hpp" #include "Zipper.hpp" +#include "libslic3r.h" namespace Slic3r { diff --git a/src/libslic3r/SLAPrintSteps.cpp b/src/libslic3r/SLAPrintSteps.cpp index 04c65644d0..51c2e6ef9f 100644 --- a/src/libslic3r/SLAPrintSteps.cpp +++ b/src/libslic3r/SLAPrintSteps.cpp @@ -1,3 +1,13 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include @@ -18,8 +28,23 @@ #include #include +#include +#include +#include "ExPolygon.hpp" +#include "Execution/ExecutionTBB.hpp" #include "I18N.hpp" +#include "SLAPrint.hpp" +#include "Point.hpp" +#include "libslic3r.h" +#include "SLA/Hollowing.hpp" +#include "TriangleMesh.hpp" +#include "Line.hpp" +#include "Model.hpp" +#include "SLA/SupportPoint.hpp" +#include "SLA/JobController.hpp" +#include "SLA/SupportTree.hpp" +#include "SLA/RasterBase.hpp" //! macro used to mark string used at localization, //! return same string diff --git a/src/libslic3r/SLAPrintSteps.hpp b/src/libslic3r/SLAPrintSteps.hpp index 19b64d4a98..8d1ca12179 100644 --- a/src/libslic3r/SLAPrintSteps.hpp +++ b/src/libslic3r/SLAPrintSteps.hpp @@ -1,12 +1,15 @@ #ifndef SLAPRINTSTEPS_HPP #define SLAPRINTSTEPS_HPP +#include +#include "libslic3r.h" #include #include #include #include +#include namespace Slic3r { diff --git a/src/libslic3r/SVG.cpp b/src/libslic3r/SVG.cpp index 206158edd7..ebd4343425 100644 --- a/src/libslic3r/SVG.cpp +++ b/src/libslic3r/SVG.cpp @@ -1,8 +1,28 @@ #include "SVG.hpp" +#include +#include +#include +#include +#include "BoundingBox.hpp" +#include "libslic3r.h" +#include "Line.hpp" +#include "Point.hpp" +#include +#include "ExPolygon.hpp" +#include "Polygon.hpp" +#include "Surface.hpp" +#include "Polyline.hpp" +#include "MultiPoint.hpp" +#include +#include #include #include #include +#include +#include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/SVG.hpp b/src/libslic3r/SVG.hpp index d677f48375..838c1cdc73 100644 --- a/src/libslic3r/SVG.hpp +++ b/src/libslic3r/SVG.hpp @@ -1,11 +1,20 @@ #ifndef slic3r_SVG_hpp_ #define slic3r_SVG_hpp_ +#include "Point.hpp" +#include "Polygon.hpp" +#include "Polyline.hpp" +#include "MultiPoint.hpp" #include "libslic3r.h" #include "ExPolygon.hpp" #include "Line.hpp" #include "TriangleMesh.hpp" #include "Surface.hpp" +#include +#include +#include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/Semver.cpp b/src/libslic3r/Semver.cpp index 5d36b39f72..f052ba6bdb 100644 --- a/src/libslic3r/Semver.cpp +++ b/src/libslic3r/Semver.cpp @@ -1,4 +1,6 @@ +#include "Semver.hpp" #include "libslic3r.h" +#include "libslic3r_version.h" namespace Slic3r { diff --git a/src/libslic3r/Semver.hpp b/src/libslic3r/Semver.hpp index d3683b4eb8..7c79f404ce 100644 --- a/src/libslic3r/Semver.hpp +++ b/src/libslic3r/Semver.hpp @@ -1,12 +1,17 @@ #ifndef slic3r_Semver_hpp_ #define slic3r_Semver_hpp_ +#include +#include +#include +#include #include #include #include #include #include #include +#include #include "semver/semver.h" diff --git a/src/libslic3r/Shape/TextShape.cpp b/src/libslic3r/Shape/TextShape.cpp index 4f32b9d857..cc7a7d555d 100644 --- a/src/libslic3r/Shape/TextShape.cpp +++ b/src/libslic3r/Shape/TextShape.cpp @@ -4,13 +4,36 @@ #include "TextShape.hpp" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include #include +#include "libslic3r/Point.hpp" #include "Standard_TypeDef.hxx" #include "STEPCAFControl_Reader.hxx" #include "BRepMesh_IncrementalMesh.hxx" #include "Interface_Static.hxx" +#include "libslic3r/Utils.hpp" #include "XCAFDoc_DocumentTool.hxx" #include "XCAFDoc_ShapeTool.hxx" #include "XCAFApp_Application.hxx" diff --git a/src/libslic3r/Shape/TextShape.hpp b/src/libslic3r/Shape/TextShape.hpp index d093c2da42..28abf4d7ea 100644 --- a/src/libslic3r/Shape/TextShape.hpp +++ b/src/libslic3r/Shape/TextShape.hpp @@ -2,6 +2,9 @@ #define slic3r_Text_Shape_hpp_ #include "libslic3r/TriangleMesh.hpp" +#include +#include +#include namespace Slic3r { class TriangleMesh; diff --git a/src/libslic3r/ShortEdgeCollapse.cpp b/src/libslic3r/ShortEdgeCollapse.cpp index 3397daf55c..59637b4dae 100644 --- a/src/libslic3r/ShortEdgeCollapse.cpp +++ b/src/libslic3r/ShortEdgeCollapse.cpp @@ -1,10 +1,14 @@ #include "ShortEdgeCollapse.hpp" +#include "Point.hpp" +#include "TriangleMesh.hpp" #include "libslic3r/NormalUtils.hpp" +#include #include #include #include #include +#include namespace Slic3r { diff --git a/src/libslic3r/ShortEdgeCollapse.hpp b/src/libslic3r/ShortEdgeCollapse.hpp index e6f1822c89..f62a082828 100644 --- a/src/libslic3r/ShortEdgeCollapse.hpp +++ b/src/libslic3r/ShortEdgeCollapse.hpp @@ -2,6 +2,7 @@ #define SRC_LIBSLIC3R_SHORTEDGECOLLAPSE_HPP_ #include "libslic3r/TriangleMesh.hpp" +#include namespace Slic3r{ diff --git a/src/libslic3r/ShortestPath.cpp b/src/libslic3r/ShortestPath.cpp index 301a804753..0b31a66919 100644 --- a/src/libslic3r/ShortestPath.cpp +++ b/src/libslic3r/ShortestPath.cpp @@ -1,3 +1,18 @@ +#include "ExtrusionEntity.hpp" +#include +#include +#include +#include "Point.hpp" +#include +#include +#include +#include "ExPolygon.hpp" +#include "BoundingBox.hpp" +#include +#include "Polyline.hpp" +#include +#include "Line.hpp" +#include "libslic3r.h" #if 0 #pragma optimize("", off) #undef NDEBUG diff --git a/src/libslic3r/ShortestPath.hpp b/src/libslic3r/ShortestPath.hpp index f4ce89a16b..d8cd7a025f 100644 --- a/src/libslic3r/ShortestPath.hpp +++ b/src/libslic3r/ShortestPath.hpp @@ -1,10 +1,12 @@ #ifndef slic3r_ShortestPath_hpp_ #define slic3r_ShortestPath_hpp_ +#include "Polyline.hpp" #include "libslic3r.h" #include "ExtrusionEntity.hpp" #include "Point.hpp" +#include #include #include #include diff --git a/src/libslic3r/SlicesToTriangleMesh.cpp b/src/libslic3r/SlicesToTriangleMesh.cpp index 3b55cf066b..a536bc0d5e 100644 --- a/src/libslic3r/SlicesToTriangleMesh.cpp +++ b/src/libslic3r/SlicesToTriangleMesh.cpp @@ -1,14 +1,21 @@ +#include +#include #include #include "SlicesToTriangleMesh.hpp" //#include "libslic3r/MTUtils.hpp" +#include "Polygon.hpp" +#include "Point.hpp" +#include "TriangleMesh.hpp" +#include "Execution/Execution.hpp" #include "libslic3r/Execution/ExecutionTBB.hpp" #include "libslic3r/ClipperUtils.hpp" #include "libslic3r/Tesselate.hpp" #include #include +#include namespace Slic3r { diff --git a/src/libslic3r/SlicesToTriangleMesh.hpp b/src/libslic3r/SlicesToTriangleMesh.hpp index 57b540d9fb..f3177a7622 100644 --- a/src/libslic3r/SlicesToTriangleMesh.hpp +++ b/src/libslic3r/SlicesToTriangleMesh.hpp @@ -3,6 +3,7 @@ #include "libslic3r/TriangleMesh.hpp" #include "libslic3r/ExPolygon.hpp" +#include namespace Slic3r { diff --git a/src/libslic3r/Slicing.cpp b/src/libslic3r/Slicing.cpp index c8c37a5a79..92bdac10e3 100644 --- a/src/libslic3r/Slicing.cpp +++ b/src/libslic3r/Slicing.cpp @@ -1,5 +1,13 @@ +#include +#include +#include +#include #include +#include +#include +#include +#include "Point.hpp" #include "libslic3r.h" #include "Slicing.hpp" #include "SlicingAdaptive.hpp" diff --git a/src/libslic3r/Slicing.hpp b/src/libslic3r/Slicing.hpp index f735ec5518..59ae27c8dd 100644 --- a/src/libslic3r/Slicing.hpp +++ b/src/libslic3r/Slicing.hpp @@ -3,10 +3,12 @@ #ifndef slic3r_Slicing_hpp_ #define slic3r_Slicing_hpp_ +#include #include #include #include #include +#include #include #include "libslic3r.h" diff --git a/src/libslic3r/SlicingAdaptive.cpp b/src/libslic3r/SlicingAdaptive.cpp index 30ff67bba5..65600b4005 100644 --- a/src/libslic3r/SlicingAdaptive.cpp +++ b/src/libslic3r/SlicingAdaptive.cpp @@ -3,8 +3,14 @@ #include "TriangleMesh.hpp" #include "SlicingAdaptive.hpp" +#include #include +#include #include +#include +#include +#include +#include // Based on the work of Florens Waserfall (@platch on github) // and his paper diff --git a/src/libslic3r/SlicingAdaptive.hpp b/src/libslic3r/SlicingAdaptive.hpp index a296553d62..99479bb8b6 100644 --- a/src/libslic3r/SlicingAdaptive.hpp +++ b/src/libslic3r/SlicingAdaptive.hpp @@ -5,6 +5,9 @@ #include "Slicing.hpp" #include "admesh/stl.h" +#include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/StreamUtils.hpp b/src/libslic3r/StreamUtils.hpp index 78a9ac7335..d3c6823a8f 100644 --- a/src/libslic3r/StreamUtils.hpp +++ b/src/libslic3r/StreamUtils.hpp @@ -6,6 +6,7 @@ #include "Polygon.hpp" #include "Polyline.hpp" #include "ExPolygon.hpp" +#include #include #include diff --git a/src/libslic3r/Support/SupportCommon.cpp b/src/libslic3r/Support/SupportCommon.cpp index d4495cf4a2..46ed7e968c 100644 --- a/src/libslic3r/Support/SupportCommon.cpp +++ b/src/libslic3r/Support/SupportCommon.cpp @@ -13,11 +13,27 @@ #include #include +#include +#include +#include +#include +#include #include +#include +#include +#include #include "SupportCommon.hpp" +#include "libslic3r/PrintConfig.hpp" +#include "libslic3r/Polygon.hpp" +#include "libslic3r/Slicing.hpp" +#include "libslic3r/ExtrusionEntity.hpp" +#include "libslic3r/Polyline.hpp" #include "SupportLayer.hpp" #include "SupportParameters.hpp" +#include "libslic3r/libslic3r.h" +#include "libslic3r/Surface.hpp" +#include "libslic3r/Utils.hpp" // #define SLIC3R_DEBUG diff --git a/src/libslic3r/Support/SupportCommon.hpp b/src/libslic3r/Support/SupportCommon.hpp index 531daaa0a8..e6f5b3e1ef 100644 --- a/src/libslic3r/Support/SupportCommon.hpp +++ b/src/libslic3r/Support/SupportCommon.hpp @@ -4,8 +4,16 @@ #include "../Layer.hpp" #include "../Polygon.hpp" #include "../Print.hpp" +#include "libslic3r/PrintConfig.hpp" +#include "libslic3r/Slicing.hpp" +#include "libslic3r/ExtrusionEntity.hpp" +#include "libslic3r/Flow.hpp" +#include "libslic3r/Fill/FillBase.hpp" #include "SupportLayer.hpp" #include "SupportParameters.hpp" +#include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/Support/SupportLayer.hpp b/src/libslic3r/Support/SupportLayer.hpp index 64e3be99e7..46b41df35a 100644 --- a/src/libslic3r/Support/SupportLayer.hpp +++ b/src/libslic3r/Support/SupportLayer.hpp @@ -1,8 +1,12 @@ #ifndef slic3r_SupportLayer_hpp_ #define slic3r_SupportLayer_hpp_ +#include +#include #include #include +#include +#include // for Slic3r::deque #include "../libslic3r.h" #include "../ClipperUtils.hpp" diff --git a/src/libslic3r/Support/SupportMaterial.cpp b/src/libslic3r/Support/SupportMaterial.cpp index 2850160d91..ab40c155af 100644 --- a/src/libslic3r/Support/SupportMaterial.cpp +++ b/src/libslic3r/Support/SupportMaterial.cpp @@ -1,22 +1,48 @@ #include "ClipperUtils.hpp" +#include "libslic3r/ExPolygon.hpp" #include "ExtrusionEntity.hpp" #include "ExtrusionEntityCollection.hpp" +#include "libslic3r/Flow.hpp" #include "Layer.hpp" +#include "libslic3r/Polygon.hpp" +#include "libslic3r/Polyline.hpp" #include "Print.hpp" #include "SupportMaterial.hpp" +#include "libslic3r/Slicing.hpp" +#include "libslic3r/Support/SupportLayer.hpp" +#include "libslic3r/PrintConfig.hpp" #include "SupportCommon.hpp" #include "Geometry.hpp" #include "Point.hpp" #include "MutablePolygon.hpp" +#include "libslic3r/libslic3r.h" +#include "libslic3r/Surface.hpp" +#include "libslic3r/TriangleSelector.hpp" +#include +#include +#include +#include #include +#include +#include +#include +#include +#include +#include +#include #include #include #include +#include +#include #include #include #include +#include +#include +#include #define SUPPORT_USE_AGG_RASTERIZER diff --git a/src/libslic3r/Support/SupportMaterial.hpp b/src/libslic3r/Support/SupportMaterial.hpp index 6d5355dab1..1d5bec31b5 100644 --- a/src/libslic3r/Support/SupportMaterial.hpp +++ b/src/libslic3r/Support/SupportMaterial.hpp @@ -2,11 +2,14 @@ #define slic3r_SupportMaterial_hpp_ #include "Flow.hpp" +#include "libslic3r/Polygon.hpp" #include "PrintConfig.hpp" #include "Slicing.hpp" #include "Fill/FillBase.hpp" #include "SupportLayer.hpp" #include "SupportParameters.hpp" +#include +#include "libslic3r/libslic3r.h" namespace Slic3r { class PrintObject; diff --git a/src/libslic3r/Support/SupportParameters.hpp b/src/libslic3r/Support/SupportParameters.hpp index e9151c0c95..ebf2cc2f4e 100644 --- a/src/libslic3r/Support/SupportParameters.hpp +++ b/src/libslic3r/Support/SupportParameters.hpp @@ -1,9 +1,20 @@ #ifndef slic3r_SupportParameters_hpp_ #define slic3r_SupportParameters_hpp_ +#include #include +#include +#include +#include +#include #include "../libslic3r.h" #include "../Flow.hpp" +#include "../Layer.hpp" +#include "../Print.hpp" +#include "libslic3r/PrintConfig.hpp" +#include "libslic3r/Slicing.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/Geometry.hpp" namespace Slic3r { diff --git a/src/libslic3r/Support/SupportSpotsGenerator.cpp b/src/libslic3r/Support/SupportSpotsGenerator.cpp index 6fb4908e67..a3c312ee15 100644 --- a/src/libslic3r/Support/SupportSpotsGenerator.cpp +++ b/src/libslic3r/Support/SupportSpotsGenerator.cpp @@ -4,6 +4,7 @@ #include "ExPolygon.hpp" #include "ExtrusionEntity.hpp" #include "ExtrusionEntityCollection.hpp" +#include "libslic3r/Flow.hpp" #include "GCode/ExtrusionProcessor.hpp" #include "Line.hpp" #include "Point.hpp" @@ -20,6 +21,7 @@ #include "tbb/parallel_reduce.h" #include #include +#include #include #include #include diff --git a/src/libslic3r/Support/SupportSpotsGenerator.hpp b/src/libslic3r/Support/SupportSpotsGenerator.hpp index 615158dabb..e3c3245d47 100644 --- a/src/libslic3r/Support/SupportSpotsGenerator.hpp +++ b/src/libslic3r/Support/SupportSpotsGenerator.hpp @@ -8,6 +8,8 @@ #include "MaterialType.hpp" #include #include +#include +#include #include diff --git a/src/libslic3r/Support/TreeModelVolumes.cpp b/src/libslic3r/Support/TreeModelVolumes.cpp index e933ac3c1b..5d1a3bdb20 100644 --- a/src/libslic3r/Support/TreeModelVolumes.cpp +++ b/src/libslic3r/Support/TreeModelVolumes.cpp @@ -7,6 +7,8 @@ // CuraEngine is released under the terms of the AGPLv3 or higher. #include "TreeModelVolumes.hpp" +#include "libslic3r/Polygon.hpp" +#include "libslic3r/ExPolygon.hpp" #include "TreeSupportCommon.hpp" #include "../BuildVolume.hpp" @@ -18,13 +20,26 @@ #include "../PrintConfig.hpp" #include "../Utils.hpp" #include "../format.hpp" +#include "libslic3r/libslic3r.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include #include +#include +#include +#include namespace Slic3r::TreeSupport3D { diff --git a/src/libslic3r/Support/TreeModelVolumes.hpp b/src/libslic3r/Support/TreeModelVolumes.hpp index eff4cadcaf..b2c1226dfe 100644 --- a/src/libslic3r/Support/TreeModelVolumes.hpp +++ b/src/libslic3r/Support/TreeModelVolumes.hpp @@ -9,16 +9,25 @@ #ifndef slic3r_TreeModelVolumes_hpp #define slic3r_TreeModelVolumes_hpp +#include +#include +#include +#include +#include #include +#include #include #include +#include +#include #include "TreeSupportCommon.hpp" #include "../Point.hpp" #include "../Polygon.hpp" #include "../PrintConfig.hpp" +#include "libslic3r/libslic3r.h" namespace Slic3r { diff --git a/src/libslic3r/Support/TreeSupport.cpp b/src/libslic3r/Support/TreeSupport.cpp index a50b328dbe..10467012ff 100644 --- a/src/libslic3r/Support/TreeSupport.cpp +++ b/src/libslic3r/Support/TreeSupport.cpp @@ -1,6 +1,31 @@ +#include +#include +#include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include "libslic3r/Point.hpp" +#include "libslic3r/Polygon.hpp" +#include "libslic3r/Surface.hpp" +#include "libslic3r/ExPolygon.hpp" +#include "libslic3r/Line.hpp" +#include "libslic3r/PrintConfig.hpp" +#include "libslic3r/Geometry.hpp" +#include "libslic3r/TriangleSelector.hpp" +#include "libslic3r/ExtrusionEntity.hpp" +#include "libslic3r/Flow.hpp" +#include "libslic3r/Polyline.hpp" +#include "libslic3r/Support/SupportParameters.hpp" +#include "libslic3r/Utils.hpp" #include "format.hpp" #include "ClipperUtils.hpp" #include "Fill/FillBase.hpp" @@ -14,10 +39,17 @@ #include "TreeSupportCommon.hpp" #include "TreeSupport.hpp" #include "TreeSupport3D.hpp" +#include "libslic3r/libslic3r.h" #include #include +#include +#include +#include +#include +#include +#include #include #include #include @@ -26,6 +58,11 @@ #include #include +#include +#include +#include +#include +#include #ifndef M_PI #define M_PI 3.1415926535897932384626433832795 diff --git a/src/libslic3r/Support/TreeSupport.hpp b/src/libslic3r/Support/TreeSupport.hpp index bd5a154e26..e0da1f40c7 100644 --- a/src/libslic3r/Support/TreeSupport.hpp +++ b/src/libslic3r/Support/TreeSupport.hpp @@ -1,12 +1,26 @@ #ifndef TREESUPPORT_H #define TREESUPPORT_H +#include +#include #include +#include +#include +#include +#include +#include +#include #include +#include +#include #include "ExPolygon.hpp" #include "Point.hpp" +#include "libslic3r/Polygon.hpp" #include "Slicing.hpp" #include "MinimumSpanningTree.hpp" +#include "libslic3r/libslic3r.h" +#include "libslic3r/Support/TreeSupportCommon.hpp" +#include "libslic3r/Support/SupportParameters.hpp" #include "tbb/concurrent_unordered_map.h" #include "Flow.hpp" #include "PrintConfig.hpp" diff --git a/src/libslic3r/Support/TreeSupport3D.cpp b/src/libslic3r/Support/TreeSupport3D.cpp index c9fceabaea..09f741ec25 100644 --- a/src/libslic3r/Support/TreeSupport3D.cpp +++ b/src/libslic3r/Support/TreeSupport3D.cpp @@ -12,20 +12,47 @@ #include "BuildVolume.hpp" #include "ClipperUtils.hpp" #include "EdgeGrid.hpp" +#include "libslic3r/Exception.hpp" +#include "libslic3r/ExPolygon.hpp" #include "Fill/Fill.hpp" +#include "libslic3r/Flow.hpp" +#include "libslic3r/Fill/FillBase.hpp" #include "Layer.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/Line.hpp" #include "Print.hpp" #include "MultiPoint.hpp" #include "Polygon.hpp" #include "Polyline.hpp" #include "MutablePolygon.hpp" +#include "libslic3r/Support/TreeSupportCommon.hpp" +#include "libslic3r/PrintConfig.hpp" +#include "libslic3r/Support/TreeModelVolumes.hpp" +#include "libslic3r/Support/SupportParameters.hpp" +#include "libslic3r/Support/SupportLayer.hpp" #include "SupportCommon.hpp" +#include "libslic3r/Surface.hpp" #include "TriangleMeshSlicer.hpp" #include "TreeSupport.hpp" #include "I18N.hpp" +#include "libslic3r/libslic3r.h" +#include "libslic3r/Utils.hpp" +#include +#include +#include #include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include @@ -36,6 +63,10 @@ #include #include #include +#include +#include +#include +#include #if defined(TREE_SUPPORT_SHOW_ERRORS) && defined(_WIN32) #define TREE_SUPPORT_SHOW_ERRORS_WIN32 diff --git a/src/libslic3r/Support/TreeSupport3D.hpp b/src/libslic3r/Support/TreeSupport3D.hpp index a333edb962..65a5e22975 100644 --- a/src/libslic3r/Support/TreeSupport3D.hpp +++ b/src/libslic3r/Support/TreeSupport3D.hpp @@ -9,6 +9,8 @@ #ifndef slic3r_TreeSupport_hpp #define slic3r_TreeSupport_hpp +#include "libslic3r/Polygon.hpp" +#include "libslic3r/Layer.hpp" #include "SupportLayer.hpp" #include "TreeModelVolumes.hpp" #include "TreeSupportCommon.hpp" @@ -16,8 +18,16 @@ #include "../BoundingBox.hpp" #include "../Point.hpp" #include "../Utils.hpp" +#include "libslic3r/libslic3r.h" #include +#include +#include +#include +#include +#include +#include +#include // #define TREE_SUPPORT_SHOW_ERRORS diff --git a/src/libslic3r/Support/TreeSupportCommon.hpp b/src/libslic3r/Support/TreeSupportCommon.hpp index fb08a1a928..97a0e31eb3 100644 --- a/src/libslic3r/Support/TreeSupportCommon.hpp +++ b/src/libslic3r/Support/TreeSupportCommon.hpp @@ -11,10 +11,28 @@ #include "../libslic3r.h" #include "../Polygon.hpp" +#include "libslic3r/PrintConfig.hpp" +#include "libslic3r/Slicing.hpp" +#include "libslic3r/Print.hpp" +#include "libslic3r/Flow.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/Support/SupportParameters.hpp" +#include "libslic3r/Support/SupportLayer.hpp" #include "SupportCommon.hpp" +#include "libslic3r/Utils.hpp" #include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/Surface.cpp b/src/libslic3r/Surface.cpp index 58ac7294cc..cb7d0d4674 100644 --- a/src/libslic3r/Surface.cpp +++ b/src/libslic3r/Surface.cpp @@ -1,6 +1,11 @@ #include "BoundingBox.hpp" #include "Surface.hpp" +#include "Polygon.hpp" +#include "Point.hpp" +#include "ExPolygon.hpp" #include "SVG.hpp" +#include +#include "libslic3r.h" namespace Slic3r { diff --git a/src/libslic3r/Surface.hpp b/src/libslic3r/Surface.hpp index b63c283251..1849e3462a 100644 --- a/src/libslic3r/Surface.hpp +++ b/src/libslic3r/Surface.hpp @@ -1,8 +1,16 @@ #ifndef slic3r_Surface_hpp_ #define slic3r_Surface_hpp_ +#include "Polygon.hpp" +#include "Line.hpp" +#include "Point.hpp" #include "libslic3r.h" #include "ExPolygon.hpp" +#include +#include +#include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/SurfaceCollection.cpp b/src/libslic3r/SurfaceCollection.cpp index 83015c3e6a..47109b9965 100644 --- a/src/libslic3r/SurfaceCollection.cpp +++ b/src/libslic3r/SurfaceCollection.cpp @@ -1,8 +1,18 @@ #include "SurfaceCollection.hpp" #include "BoundingBox.hpp" +#include "ExPolygon.hpp" +#include "Polygon.hpp" +#include "Point.hpp" #include "SVG.hpp" +#include "Surface.hpp" +#include +#include +#include +#include #include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/SurfaceCollection.hpp b/src/libslic3r/SurfaceCollection.hpp index 1895516aa2..3b6316e0a4 100644 --- a/src/libslic3r/SurfaceCollection.hpp +++ b/src/libslic3r/SurfaceCollection.hpp @@ -1,9 +1,13 @@ #ifndef slic3r_SurfaceCollection_hpp_ #define slic3r_SurfaceCollection_hpp_ +#include "Polygon.hpp" +#include "ExPolygon.hpp" #include "libslic3r.h" #include "Surface.hpp" +#include #include +#include #include namespace Slic3r { diff --git a/src/libslic3r/SurfaceMesh.hpp b/src/libslic3r/SurfaceMesh.hpp index 82dff2e22d..221c584697 100644 --- a/src/libslic3r/SurfaceMesh.hpp +++ b/src/libslic3r/SurfaceMesh.hpp @@ -2,8 +2,13 @@ #define slic3r_SurfaceMesh_hpp_ #include +#include +#include +#include #include +#include +#include "Point.hpp" #include "boost/container/small_vector.hpp" namespace Slic3r { diff --git a/src/libslic3r/Tesselate.cpp b/src/libslic3r/Tesselate.cpp index febb3d0e74..be7087a311 100644 --- a/src/libslic3r/Tesselate.cpp +++ b/src/libslic3r/Tesselate.cpp @@ -1,8 +1,17 @@ #include "Tesselate.hpp" #include "ExPolygon.hpp" +#include "Point.hpp" +#include "libslic3r.h" +#include +#include +#include +#include +#include #include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/Tesselate.hpp b/src/libslic3r/Tesselate.hpp index 2dbe6caa10..f9effa242d 100644 --- a/src/libslic3r/Tesselate.hpp +++ b/src/libslic3r/Tesselate.hpp @@ -4,6 +4,7 @@ #include #include "Point.hpp" +#include "libslic3r.h" namespace Slic3r { diff --git a/src/libslic3r/TextConfiguration.hpp b/src/libslic3r/TextConfiguration.hpp index 40c8c836ac..753cec71ba 100644 --- a/src/libslic3r/TextConfiguration.hpp +++ b/src/libslic3r/TextConfiguration.hpp @@ -1,6 +1,7 @@ #ifndef slic3r_TextConfiguration_hpp_ #define slic3r_TextConfiguration_hpp_ +#include #include #include #include @@ -9,6 +10,7 @@ #include #include #include "Point.hpp" // Transform3d +#include "libslic3r.h" namespace Slic3r { diff --git a/src/libslic3r/TextureBake/TextureBakeDebug.cpp b/src/libslic3r/TextureBake/TextureBakeDebug.cpp index 9465080e21..7b3538da72 100644 --- a/src/libslic3r/TextureBake/TextureBakeDebug.cpp +++ b/src/libslic3r/TextureBake/TextureBakeDebug.cpp @@ -1,11 +1,19 @@ #include "TextureBakeDebug.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/TextureBake/TextureBakeIndex.hpp" #include +#include +#include #include +#include #include #include #include +#include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/TextureBake/TextureBakeDebug.hpp b/src/libslic3r/TextureBake/TextureBakeDebug.hpp index 5c6d987e44..b0cf0c1952 100644 --- a/src/libslic3r/TextureBake/TextureBakeDebug.hpp +++ b/src/libslic3r/TextureBake/TextureBakeDebug.hpp @@ -18,8 +18,10 @@ #include #include #include +#include #include +#include "libslic3r/Point.hpp" #include "TextureBakeIndex.hpp" namespace Slic3r { diff --git a/src/libslic3r/TextureBake/TextureBakeDecimate.cpp b/src/libslic3r/TextureBake/TextureBakeDecimate.cpp index ee335cff3c..c03607e99c 100644 --- a/src/libslic3r/TextureBake/TextureBakeDecimate.cpp +++ b/src/libslic3r/TextureBake/TextureBakeDecimate.cpp @@ -1,8 +1,13 @@ #include "TextureBakeDecimate.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/TextureBake/TextureBakeIndex.hpp" #include #include #include +#include +#include +#include #include #include @@ -10,6 +15,7 @@ #include #include +#include namespace Slic3r { namespace TextureBake { diff --git a/src/libslic3r/TextureBake/TextureBakeDecimate.hpp b/src/libslic3r/TextureBake/TextureBakeDecimate.hpp index 5579778050..8b31dbb642 100644 --- a/src/libslic3r/TextureBake/TextureBakeDecimate.hpp +++ b/src/libslic3r/TextureBake/TextureBakeDecimate.hpp @@ -10,6 +10,7 @@ // Flat-face harvesting: the loop keeps going past the triangle target while each collapse's error // stays under an absolute bound, so flat faces that cost nothing to remove are not left behind. +#include #include #include #include diff --git a/src/libslic3r/TextureBake/TextureBakeDisplace.cpp b/src/libslic3r/TextureBake/TextureBakeDisplace.cpp index 6e306b1c43..7dee94de99 100644 --- a/src/libslic3r/TextureBake/TextureBakeDisplace.cpp +++ b/src/libslic3r/TextureBake/TextureBakeDisplace.cpp @@ -1,11 +1,18 @@ #include "TextureBakeDisplace.hpp" +#include "libslic3r/TextureBake/TextureBakeIndex.hpp" +#include "libslic3r/Point.hpp" #include #include +#include +#include #include +#include #include #include +#include +#include namespace Slic3r { namespace TextureBake { diff --git a/src/libslic3r/TextureBake/TextureBakeDisplace.hpp b/src/libslic3r/TextureBake/TextureBakeDisplace.hpp index eee6ca0626..76e70d3bc5 100644 --- a/src/libslic3r/TextureBake/TextureBakeDisplace.hpp +++ b/src/libslic3r/TextureBake/TextureBakeDisplace.hpp @@ -13,6 +13,7 @@ #include #include +#include "libslic3r/Point.hpp" #include "TextureBakeIndex.hpp" namespace Slic3r { diff --git a/src/libslic3r/TextureBake/TextureBakeFlip.cpp b/src/libslic3r/TextureBake/TextureBakeFlip.cpp index f4d9997f71..8f7000a878 100644 --- a/src/libslic3r/TextureBake/TextureBakeFlip.cpp +++ b/src/libslic3r/TextureBake/TextureBakeFlip.cpp @@ -1,13 +1,20 @@ #include "TextureBakeFlip.hpp" +#include "libslic3r/TextureBake/TextureBakeIndex.hpp" +#include "libslic3r/TextureBake/TextureBakeDisplace.hpp" +#include "libslic3r/Point.hpp" #include #include #include +#include +#include #include #include #include #include +#include +#include namespace Slic3r { namespace TextureBake { diff --git a/src/libslic3r/TextureBake/TextureBakeFlip.hpp b/src/libslic3r/TextureBake/TextureBakeFlip.hpp index 02701bbced..a1057a344a 100644 --- a/src/libslic3r/TextureBake/TextureBakeFlip.hpp +++ b/src/libslic3r/TextureBake/TextureBakeFlip.hpp @@ -16,6 +16,7 @@ // flat regions cost nothing; a non-planar quad (a model crease) is never touched, nor is one whose // triangles belong to different source faces or straddle the painted boundary. +#include #include #include diff --git a/src/libslic3r/TextureBake/TextureBakeIndex.cpp b/src/libslic3r/TextureBake/TextureBakeIndex.cpp index ac7234774b..75839c746b 100644 --- a/src/libslic3r/TextureBake/TextureBakeIndex.cpp +++ b/src/libslic3r/TextureBake/TextureBakeIndex.cpp @@ -1,6 +1,9 @@ #include "TextureBakeIndex.hpp" +#include "libslic3r/Point.hpp" #include +#include +#include namespace Slic3r { namespace TextureBake { diff --git a/src/libslic3r/TextureBake/TextureBakeIndex.hpp b/src/libslic3r/TextureBake/TextureBakeIndex.hpp index 2b1dd72395..6fbfa4f831 100644 --- a/src/libslic3r/TextureBake/TextureBakeIndex.hpp +++ b/src/libslic3r/TextureBake/TextureBakeIndex.hpp @@ -11,7 +11,9 @@ #include #include +#include #include +#include #include #include "../Point.hpp" diff --git a/src/libslic3r/TextureBake/TextureBakeMesh.cpp b/src/libslic3r/TextureBake/TextureBakeMesh.cpp index 6f6d72218d..caf6e22d36 100644 --- a/src/libslic3r/TextureBake/TextureBakeMesh.cpp +++ b/src/libslic3r/TextureBake/TextureBakeMesh.cpp @@ -1,6 +1,11 @@ #include "TextureBakeMesh.hpp" +#include "libslic3r/TextureBake/TextureBakeIndex.hpp" +#include "libslic3r/Point.hpp" #include +#include +#include +#include namespace Slic3r { namespace TextureBake { diff --git a/src/libslic3r/TextureBake/TextureBakeMesh.hpp b/src/libslic3r/TextureBake/TextureBakeMesh.hpp index b4e3ced5fe..860aa1445d 100644 --- a/src/libslic3r/TextureBake/TextureBakeMesh.hpp +++ b/src/libslic3r/TextureBake/TextureBakeMesh.hpp @@ -5,6 +5,8 @@ #include "TextureBakeIndex.hpp" #include "../TriangleMesh.hpp" +#include +#include namespace Slic3r { namespace TextureBake { diff --git a/src/libslic3r/TextureBake/TextureBakePipeline.cpp b/src/libslic3r/TextureBake/TextureBakePipeline.cpp index 2b678905b1..b44ae837bc 100644 --- a/src/libslic3r/TextureBake/TextureBakePipeline.cpp +++ b/src/libslic3r/TextureBake/TextureBakePipeline.cpp @@ -1,8 +1,21 @@ #include "TextureBakePipeline.hpp" +#include +#include +#include +#include #include #include +#include "libslic3r/TextureBake/TextureBakeIndex.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/TextureBake/TextureBakeDisplace.hpp" +#include "libslic3r/TextureBake/TextureBakeSubdivide.hpp" +#include "libslic3r/TextureBake/TextureBakeRegularize.hpp" +#include "libslic3r/TextureBake/TextureBakeRelocate.hpp" +#include "libslic3r/TextureBake/TextureBakeFlip.hpp" +#include "libslic3r/TextureBake/TextureBakeDecimate.hpp" +#include "libslic3r/TextureBake/TextureBakeRepair.hpp" #include "TextureBakeDebug.hpp" #include @@ -11,6 +24,8 @@ #include #include +#include +#include namespace Slic3r { namespace TextureBake { diff --git a/src/libslic3r/TextureBake/TextureBakePipeline.hpp b/src/libslic3r/TextureBake/TextureBakePipeline.hpp index e230cf0d49..43429ce22f 100644 --- a/src/libslic3r/TextureBake/TextureBakePipeline.hpp +++ b/src/libslic3r/TextureBake/TextureBakePipeline.hpp @@ -13,10 +13,12 @@ // Decimation and repair are export-only - decimation drops the output-to-input face mapping a bake // needs to carry per-face data forward. +#include #include #include #include +#include "libslic3r/Point.hpp" #include "TextureBakeDecimate.hpp" #include "TextureBakeDisplace.hpp" #include "TextureBakeIndex.hpp" diff --git a/src/libslic3r/TextureBake/TextureBakeRegularize.cpp b/src/libslic3r/TextureBake/TextureBakeRegularize.cpp index 3028d8bee9..fb32eb7712 100644 --- a/src/libslic3r/TextureBake/TextureBakeRegularize.cpp +++ b/src/libslic3r/TextureBake/TextureBakeRegularize.cpp @@ -1,11 +1,18 @@ #include "TextureBakeRegularize.hpp" +#include "libslic3r/TextureBake/TextureBakeIndex.hpp" +#include "libslic3r/Point.hpp" #include #include +#include +#include +#include #include #include #include +#include +#include namespace Slic3r { namespace TextureBake { diff --git a/src/libslic3r/TextureBake/TextureBakeRegularize.hpp b/src/libslic3r/TextureBake/TextureBakeRegularize.hpp index 350666783a..b6cd5eedc3 100644 --- a/src/libslic3r/TextureBake/TextureBakeRegularize.hpp +++ b/src/libslic3r/TextureBake/TextureBakeRegularize.hpp @@ -12,6 +12,7 @@ // flattened); and the link condition must hold, or the result would be non-manifold. Boundary and // non-manifold edges are skipped outright. Rounds repeat until one achieves nothing. +#include #include #include diff --git a/src/libslic3r/TextureBake/TextureBakeRelocate.cpp b/src/libslic3r/TextureBake/TextureBakeRelocate.cpp index 5ea33b353b..405ea8e286 100644 --- a/src/libslic3r/TextureBake/TextureBakeRelocate.cpp +++ b/src/libslic3r/TextureBake/TextureBakeRelocate.cpp @@ -1,11 +1,17 @@ #include "TextureBakeRelocate.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/TextureBake/TextureBakeIndex.hpp" +#include "libslic3r/TextureBake/TextureBakeDisplace.hpp" #include #include +#include +#include #include #include #include +#include namespace Slic3r { namespace TextureBake { diff --git a/src/libslic3r/TextureBake/TextureBakeRelocate.hpp b/src/libslic3r/TextureBake/TextureBakeRelocate.hpp index cd674d03ae..36ca059dde 100644 --- a/src/libslic3r/TextureBake/TextureBakeRelocate.hpp +++ b/src/libslic3r/TextureBake/TextureBakeRelocate.hpp @@ -21,6 +21,7 @@ // Vertices in flat regions have no gradient to speak of and are left alone, so the pass costs nothing // where there is nothing to align. +#include #include #include #include diff --git a/src/libslic3r/TextureBake/TextureBakeRepair.cpp b/src/libslic3r/TextureBake/TextureBakeRepair.cpp index 438e0ea25d..49f427d461 100644 --- a/src/libslic3r/TextureBake/TextureBakeRepair.cpp +++ b/src/libslic3r/TextureBake/TextureBakeRepair.cpp @@ -1,10 +1,16 @@ #include "TextureBakeRepair.hpp" +#include "libslic3r/TextureBake/TextureBakeIndex.hpp" +#include "libslic3r/Point.hpp" #include #include #include +#include +#include #include #include +#include +#include namespace Slic3r { namespace TextureBake { diff --git a/src/libslic3r/TextureBake/TextureBakeRepair.hpp b/src/libslic3r/TextureBake/TextureBakeRepair.hpp index 35e9f50b06..07d5323059 100644 --- a/src/libslic3r/TextureBake/TextureBakeRepair.hpp +++ b/src/libslic3r/TextureBake/TextureBakeRepair.hpp @@ -7,6 +7,7 @@ // one incident face on one side, which a slicer reads as an open boundary. This splits the offending // face into a fan so every on-edge vertex becomes a real corner. +#include #include #include diff --git a/src/libslic3r/TextureBake/TextureBakeSubdivide.cpp b/src/libslic3r/TextureBake/TextureBakeSubdivide.cpp index 6b882b1fc8..967f88381a 100644 --- a/src/libslic3r/TextureBake/TextureBakeSubdivide.cpp +++ b/src/libslic3r/TextureBake/TextureBakeSubdivide.cpp @@ -1,12 +1,20 @@ #include "TextureBakeSubdivide.hpp" +#include "libslic3r/Point.hpp" +#include "libslic3r/TextureBake/TextureBakeIndex.hpp" #include #include +#include +#include +#include +#include #include #include #include #include +#include +#include namespace Slic3r { namespace TextureBake { diff --git a/src/libslic3r/TextureBake/TextureBakeSubdivide.hpp b/src/libslic3r/TextureBake/TextureBakeSubdivide.hpp index 743c74eb49..0120160345 100644 --- a/src/libslic3r/TextureBake/TextureBakeSubdivide.hpp +++ b/src/libslic3r/TextureBake/TextureBakeSubdivide.hpp @@ -8,9 +8,12 @@ // The 1->4 case is what keeps the tessellation regular - its children are similar to the parent. An // irregular one shows up after displacement as adjacent triangles tilting alternately, i.e. noise. +#include +#include #include #include +#include "libslic3r/Point.hpp" #include "TextureBakeIndex.hpp" namespace Slic3r { diff --git a/src/libslic3r/TextureDisplacement.cpp b/src/libslic3r/TextureDisplacement.cpp index 862c6c9044..46a7cb18b4 100644 --- a/src/libslic3r/TextureDisplacement.cpp +++ b/src/libslic3r/TextureDisplacement.cpp @@ -1,7 +1,10 @@ #include "TextureDisplacement.hpp" +#include +#include #include #include +#include #include #include #include @@ -11,10 +14,13 @@ #include #include #include +#include +#include #include #include #include #include +#include #include #include #include @@ -27,11 +33,16 @@ #include #include +#include +#include #include "AABBTreeIndirect.hpp" #include "MeshBoolean.hpp" #include "Model.hpp" #include "PNGReadWrite.hpp" +#include "Point.hpp" +#include "TriangleMesh.hpp" +#include "TextureBake/TextureBakeDisplace.hpp" #include "TriangleSelector.hpp" #include "TextureBake/TextureBakeDebug.hpp" #include "TextureBake/TextureBakeMesh.hpp" diff --git a/src/libslic3r/TextureDisplacement.hpp b/src/libslic3r/TextureDisplacement.hpp index e97178abca..afe6a42911 100644 --- a/src/libslic3r/TextureDisplacement.hpp +++ b/src/libslic3r/TextureDisplacement.hpp @@ -1,10 +1,13 @@ #ifndef slic3r_TextureDisplacement_hpp_ #define slic3r_TextureDisplacement_hpp_ +#include +#include #include #include #include #include +#include #include #include diff --git a/src/libslic3r/TexturePainting.cpp b/src/libslic3r/TexturePainting.cpp index 9f83f282cd..e44f870b5d 100644 --- a/src/libslic3r/TexturePainting.cpp +++ b/src/libslic3r/TexturePainting.cpp @@ -1,9 +1,15 @@ #include "TexturePainting.hpp" #include +#include #include +#include +#include #include +#include +#include #include +#include #include #include @@ -11,11 +17,15 @@ #include #include +#include +#include "Point.hpp" +#include "TextureToColor/Callbacks.hpp" #include "TextureToColor/TextureToColor.hpp" #include "TextureToColor/ColorUtils.hpp" #include "Model.hpp" +#include "TextureToColor/TriMesh.hpp" #include "TriangleMesh.hpp" #include "TriangleSelector.hpp" diff --git a/src/libslic3r/TextureToColor/CgalUtils.hpp b/src/libslic3r/TextureToColor/CgalUtils.hpp index 109d454827..1782530bcb 100644 --- a/src/libslic3r/TextureToColor/CgalUtils.hpp +++ b/src/libslic3r/TextureToColor/CgalUtils.hpp @@ -1,8 +1,10 @@ #pragma once +#include "libslic3r/Point.hpp" #include "TriMesh.hpp" #include #include #include +#include #include #include #include diff --git a/src/libslic3r/TextureToColor/ColorUtils.cpp b/src/libslic3r/TextureToColor/ColorUtils.cpp index 7127a5d364..a32b4848b2 100644 --- a/src/libslic3r/TextureToColor/ColorUtils.cpp +++ b/src/libslic3r/TextureToColor/ColorUtils.cpp @@ -1,12 +1,26 @@ #include "ColorUtils.hpp" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include #include #include #include +#include +#include #include +#include +#include #include #include @@ -23,11 +37,19 @@ #include #include #include +#include #include #include "CgalUtils.hpp" +#include "TriMesh.hpp" +#include "libslic3r/Point.hpp" #include "libslic3r/AABBTreeIndirect.hpp" #include +#include +#include +#include +#include +#include namespace Slic3r { namespace tex2color { namespace color_utils { diff --git a/src/libslic3r/TextureToColor/ColorUtils.hpp b/src/libslic3r/TextureToColor/ColorUtils.hpp index 05849109f4..89e6095923 100644 --- a/src/libslic3r/TextureToColor/ColorUtils.hpp +++ b/src/libslic3r/TextureToColor/ColorUtils.hpp @@ -1,7 +1,12 @@ #pragma once #include "Callbacks.hpp" +#include "libslic3r/Point.hpp" #include "TriMesh.hpp" +#include +#include +#include +#include namespace Slic3r { namespace tex2color { diff --git a/src/libslic3r/TextureToColor/Repair.hpp b/src/libslic3r/TextureToColor/Repair.hpp index 44dc30c144..092c0623fb 100644 --- a/src/libslic3r/TextureToColor/Repair.hpp +++ b/src/libslic3r/TextureToColor/Repair.hpp @@ -4,18 +4,22 @@ #include "Callbacks.hpp" #include #include +#include #include #include #include #include #include #include +#include #include #include #include #include +#include #include #include +#include namespace Slic3r { namespace tex2color { diff --git a/src/libslic3r/TextureToColor/TextureToColor.cpp b/src/libslic3r/TextureToColor/TextureToColor.cpp index e5dde36714..15a2a641af 100644 --- a/src/libslic3r/TextureToColor/TextureToColor.cpp +++ b/src/libslic3r/TextureToColor/TextureToColor.cpp @@ -1,5 +1,12 @@ #include "TextureToColor.hpp" +#include +#include +#include +#include +#include +#include +#include #include #include #include @@ -9,14 +16,20 @@ #include #include +#include "Callbacks.hpp" #include "CgalUtils.hpp" #include "ColorUtils.hpp" +#include "TriMesh.hpp" +#include "libslic3r/Point.hpp" #include "libslic3r/TriangleMesh.hpp" #include #include #include "Repair.hpp" #include "libslic3r/AABBTreeIndirect.hpp" #include +#include +#include +#include namespace Slic3r { namespace tex2color { diff --git a/src/libslic3r/TextureToColor/TextureToColor.hpp b/src/libslic3r/TextureToColor/TextureToColor.hpp index 019a113fc4..a88fe2086e 100644 --- a/src/libslic3r/TextureToColor/TextureToColor.hpp +++ b/src/libslic3r/TextureToColor/TextureToColor.hpp @@ -1,10 +1,15 @@ #pragma once #include "Callbacks.hpp" +#include "libslic3r/Point.hpp" #include "TriMesh.hpp" #include "opencv2/core.hpp" +#include +#include #include +#include #include +#include namespace Slic3r { namespace tex2color { diff --git a/src/libslic3r/TextureToColor/TriMesh.hpp b/src/libslic3r/TextureToColor/TriMesh.hpp index d557ae1d2e..63d5286ab7 100644 --- a/src/libslic3r/TextureToColor/TriMesh.hpp +++ b/src/libslic3r/TextureToColor/TriMesh.hpp @@ -1,5 +1,8 @@ #pragma once #include +#include +#include +#include #include "Point.hpp" namespace Slic3r { namespace tex2color { diff --git a/src/libslic3r/Thread.cpp b/src/libslic3r/Thread.cpp index edd7c2a3d0..066656c9ed 100644 --- a/src/libslic3r/Thread.cpp +++ b/src/libslic3r/Thread.cpp @@ -6,6 +6,14 @@ #include #endif +#include +#include +#include +#include +#include +#include +#include + #include #include #include diff --git a/src/libslic3r/Thread.hpp b/src/libslic3r/Thread.hpp index c407159072..e40cae5f26 100644 --- a/src/libslic3r/Thread.hpp +++ b/src/libslic3r/Thread.hpp @@ -1,6 +1,7 @@ #ifndef GUI_THREAD_HPP #define GUI_THREAD_HPP +#include #include #include #include diff --git a/src/libslic3r/Time.cpp b/src/libslic3r/Time.cpp index 81b9af49e2..a9f3f07352 100644 --- a/src/libslic3r/Time.cpp +++ b/src/libslic3r/Time.cpp @@ -1,6 +1,10 @@ #include "Time.hpp" #include +#include +#include +#include +#include #include #include #include @@ -8,6 +12,8 @@ #include #include #include +#include +#include #ifdef _MSC_VER #include diff --git a/src/libslic3r/Timer.cpp b/src/libslic3r/Timer.cpp index 91f3b0f09e..1a81210c58 100644 --- a/src/libslic3r/Timer.cpp +++ b/src/libslic3r/Timer.cpp @@ -1,5 +1,7 @@ #include "Timer.hpp" #include +#include +#include using namespace std::chrono; diff --git a/src/libslic3r/Timer.hpp b/src/libslic3r/Timer.hpp index 01f73a9b3e..e122c6cb1d 100644 --- a/src/libslic3r/Timer.hpp +++ b/src/libslic3r/Timer.hpp @@ -1,8 +1,10 @@ #ifndef libslic3r_Timer_hpp_ #define libslic3r_Timer_hpp_ +#include #include #include +#include namespace Slic3r { diff --git a/src/libslic3r/TriangleMesh.cpp b/src/libslic3r/TriangleMesh.cpp index 9e08e6f1e0..2f047e4e7f 100644 --- a/src/libslic3r/TriangleMesh.cpp +++ b/src/libslic3r/TriangleMesh.cpp @@ -1,5 +1,7 @@ +#include "BoundingBox.hpp" #include "Exception.hpp" #include "TriangleMesh.hpp" +#include "Polygon.hpp" #include "TriangleMeshSlicer.hpp" #include "MeshSplitImpl.hpp" #include "ClipperUtils.hpp" @@ -11,13 +13,26 @@ #include "CutUtils.hpp" #include "Utils.hpp" #include "Format/STL.hpp" +#include "libslic3r.h" +#include +#include +#include +#include +#include +#include +#include +#include #include #include +#include +#include #include #include #include #include +#include +#include #include #include #include diff --git a/src/libslic3r/TriangleMesh.hpp b/src/libslic3r/TriangleMesh.hpp index b963671ce9..8c82bac52f 100644 --- a/src/libslic3r/TriangleMesh.hpp +++ b/src/libslic3r/TriangleMesh.hpp @@ -3,6 +3,11 @@ #include "libslic3r.h" #include +#include +#include +#include +#include +#include #include #include #include "BoundingBox.hpp" diff --git a/src/libslic3r/TriangleMeshDeal.cpp b/src/libslic3r/TriangleMeshDeal.cpp index 4ea3030e51..7ecfc362d1 100644 --- a/src/libslic3r/TriangleMeshDeal.cpp +++ b/src/libslic3r/TriangleMeshDeal.cpp @@ -1,5 +1,7 @@ #include "TriangleMeshDeal.hpp" +#include "TriangleMesh.hpp" +#include #include #undef NDEBUG #include diff --git a/src/libslic3r/TriangleMeshSlicer.cpp b/src/libslic3r/TriangleMeshSlicer.cpp index 444f33c296..2bd5e94622 100644 --- a/src/libslic3r/TriangleMeshSlicer.cpp +++ b/src/libslic3r/TriangleMeshSlicer.cpp @@ -1,16 +1,29 @@ #include "ClipperUtils.hpp" +#include "ExPolygon.hpp" #include "Geometry.hpp" +#include "Point.hpp" +#include "Line.hpp" +#include "MultiPoint.hpp" +#include "Polygon.hpp" #include "Tesselate.hpp" #include "TriangleMesh.hpp" #include "TriangleMeshSlicer.hpp" #include "Utils.hpp" // BBS #include "MeshBoolean.hpp" +#include "libslic3r.h" #include +#include #include +#include +#include #include #include +#include +#include +#include +#include #include #include #include @@ -18,6 +31,7 @@ #include #include +#include #ifndef NDEBUG // #define EXPENSIVE_DEBUG_CHECKS diff --git a/src/libslic3r/TriangleMeshSlicer.hpp b/src/libslic3r/TriangleMeshSlicer.hpp index 1a78e5b7d0..aa1b020716 100644 --- a/src/libslic3r/TriangleMeshSlicer.hpp +++ b/src/libslic3r/TriangleMeshSlicer.hpp @@ -1,8 +1,14 @@ #ifndef slic3r_TriangleMeshSlicer_hpp_ #define slic3r_TriangleMeshSlicer_hpp_ +#include +#include #include +#include #include +#include + +#include "Point.hpp" #include "Polygon.hpp" #include "ExPolygon.hpp" diff --git a/src/libslic3r/TriangleSelector.cpp b/src/libslic3r/TriangleSelector.cpp index 4d6007530f..7314b00082 100644 --- a/src/libslic3r/TriangleSelector.cpp +++ b/src/libslic3r/TriangleSelector.cpp @@ -1,12 +1,31 @@ #include "TriangleSelector.hpp" +#include "Geometry.hpp" #include "Model.hpp" #include "AABBTreeIndirect.hpp" +#include "Point.hpp" +#include "libslic3r.h" +#include "Utils.hpp" +#include "TriangleMesh.hpp" +#include +#include +#include +#include #include #include +#include +#include #include +#include +#include +#include #include +#include +#include #include +#include +#include +#include #ifndef NDEBUG // #define EXPENSIVE_DEBUG_CHECKS diff --git a/src/libslic3r/TriangleSelector.hpp b/src/libslic3r/TriangleSelector.hpp index 344e88cb99..3dd2efdaf0 100644 --- a/src/libslic3r/TriangleSelector.hpp +++ b/src/libslic3r/TriangleSelector.hpp @@ -4,7 +4,18 @@ // #define PRUSASLICER_TRIANGLE_SELECTOR_DEBUG +#include +#include +#include +#include #include +#include +#include +#include +#include +#include +#include +#include #include "Point.hpp" #include "TriangleMesh.hpp" diff --git a/src/libslic3r/TriangleSetSampling.cpp b/src/libslic3r/TriangleSetSampling.cpp index bb03ff6d75..6ab4290ee6 100644 --- a/src/libslic3r/TriangleSetSampling.cpp +++ b/src/libslic3r/TriangleSetSampling.cpp @@ -1,8 +1,13 @@ #include "TriangleSetSampling.hpp" +#include +#include "Point.hpp" +#include +#include #include #include #include #include +#include namespace Slic3r { diff --git a/src/libslic3r/TriangleSetSampling.hpp b/src/libslic3r/TriangleSetSampling.hpp index 28a661d76f..ba20a932eb 100644 --- a/src/libslic3r/TriangleSetSampling.hpp +++ b/src/libslic3r/TriangleSetSampling.hpp @@ -2,6 +2,8 @@ #define SRC_LIBSLIC3R_TRIANGLESETSAMPLING_HPP_ #include +#include +#include #include "libslic3r/Point.hpp" namespace Slic3r { diff --git a/src/libslic3r/TriangulateWall.hpp b/src/libslic3r/TriangulateWall.hpp index fcdb842f9b..fcc67e29b2 100644 --- a/src/libslic3r/TriangulateWall.hpp +++ b/src/libslic3r/TriangulateWall.hpp @@ -1,7 +1,11 @@ #ifndef TRIANGULATEWALL_HPP #define TRIANGULATEWALL_HPP +#include "Point.hpp" #include "libslic3r/Polygon.hpp" +#include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/Triangulation.cpp b/src/libslic3r/Triangulation.cpp index f290442bf1..63a5b30fe5 100644 --- a/src/libslic3r/Triangulation.cpp +++ b/src/libslic3r/Triangulation.cpp @@ -1,10 +1,27 @@ #include "Triangulation.hpp" #include "IntersectionPoints.hpp" +#include +#include +#include +#include +#include +#include #include #include #include #include #include +#include +#include "libslic3r/Polygon.hpp" +#include "libslic3r/Point.hpp" +#include +#include "libslic3r/Line.hpp" +#include +#include +#include +#include "libslic3r/libslic3r.h" +#include "libslic3r/ExPolygon.hpp" +#include using namespace Slic3r; namespace priv{ diff --git a/src/libslic3r/Triangulation.hpp b/src/libslic3r/Triangulation.hpp index 6a168d1d20..261f76bba5 100644 --- a/src/libslic3r/Triangulation.hpp +++ b/src/libslic3r/Triangulation.hpp @@ -1,6 +1,8 @@ #ifndef libslic3r_Triangulation_hpp_ #define libslic3r_Triangulation_hpp_ +#include +#include #include #include #include diff --git a/src/libslic3r/Utils.hpp b/src/libslic3r/Utils.hpp index d142afae92..cc84b93939 100644 --- a/src/libslic3r/Utils.hpp +++ b/src/libslic3r/Utils.hpp @@ -1,9 +1,23 @@ #ifndef slic3r_Utils_hpp_ #define slic3r_Utils_hpp_ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include #include #include +#include +#include +#include #include #include #include @@ -19,6 +33,7 @@ #include "boost/date_time/posix_time/ptime.hpp" #include +#include #include "libslic3r.h" #include "Semver.hpp" diff --git a/src/libslic3r/VariableWidth.cpp b/src/libslic3r/VariableWidth.cpp index c00fc13bdf..db8f0bc373 100644 --- a/src/libslic3r/VariableWidth.cpp +++ b/src/libslic3r/VariableWidth.cpp @@ -1,4 +1,16 @@ #include "VariableWidth.hpp" +#include "ExtrusionEntity.hpp" +#include "Polyline.hpp" +#include "Flow.hpp" +#include "Line.hpp" +#include +#include "libslic3r.h" +#include "Point.hpp" +#include +#include +#include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/VariableWidth.hpp b/src/libslic3r/VariableWidth.hpp index f6eca97089..7b8f1f4b0a 100644 --- a/src/libslic3r/VariableWidth.hpp +++ b/src/libslic3r/VariableWidth.hpp @@ -4,6 +4,8 @@ #include "Polygon.hpp" #include "ExtrusionEntity.hpp" #include "Flow.hpp" +#include "Polyline.hpp" +#include namespace Slic3r { ExtrusionMultiPath thick_polyline_to_multi_path(const ThickPolyline& thick_polyline, ExtrusionRole role, const Flow& flow, const float tolerance, const float merge_tolerance); diff --git a/src/libslic3r/Zipper.cpp b/src/libslic3r/Zipper.cpp index aa0c6409e7..4e7e53a1b5 100644 --- a/src/libslic3r/Zipper.cpp +++ b/src/libslic3r/Zipper.cpp @@ -1,9 +1,14 @@ +#include +#include #include #include "Exception.hpp" #include "Zipper.hpp" #include "miniz_extension.hpp" #include +#include +#include +#include #include "I18N.hpp" //! macro used to mark string used at localization, diff --git a/src/libslic3r/Zipper.hpp b/src/libslic3r/Zipper.hpp index bbaf2f05e7..dbd1fb9cc0 100644 --- a/src/libslic3r/Zipper.hpp +++ b/src/libslic3r/Zipper.hpp @@ -1,9 +1,11 @@ #ifndef ZIPPER_HPP #define ZIPPER_HPP +#include #include #include #include +#include namespace Slic3r { diff --git a/src/libslic3r/calib.cpp b/src/libslic3r/calib.cpp index 99625ca196..dd6d8592b7 100644 --- a/src/libslic3r/calib.cpp +++ b/src/libslic3r/calib.cpp @@ -1,9 +1,23 @@ #include "calib.hpp" #include "BoundingBox.hpp" #include "Config.hpp" +#include "Flow.hpp" +#include "GCodeWriter.hpp" +#include "GCode/GCodeProcessor.hpp" +#include "CustomGCode.hpp" #include "Model.hpp" #include "GCode.hpp" +#include "PrintConfig.hpp" +#include +#include "Point.hpp" +#include "libslic3r.h" #include +#include +#include +#include +#include +#include +#include namespace Slic3r { diff --git a/src/libslic3r/calib.hpp b/src/libslic3r/calib.hpp index abca5e79dc..fd22d4a08f 100644 --- a/src/libslic3r/calib.hpp +++ b/src/libslic3r/calib.hpp @@ -1,5 +1,11 @@ #pragma once +#include "Point.hpp" +#include +#include +#include #include +#include +#include #define calib_pressure_advance_dd #include "GCodeWriter.hpp" diff --git a/src/libslic3r/format.hpp b/src/libslic3r/format.hpp index c3747677b0..7f3385c3d7 100644 --- a/src/libslic3r/format.hpp +++ b/src/libslic3r/format.hpp @@ -14,6 +14,7 @@ // boost::format may convert to string, see slic3r/GUI/I18N.hpp for a "cook" function to convert wxString to UTF8. #include +#include namespace Slic3r { diff --git a/src/libslic3r/libslic3r.h b/src/libslic3r/libslic3r.h index c339da566a..bc32a8c60f 100644 --- a/src/libslic3r/libslic3r.h +++ b/src/libslic3r/libslic3r.h @@ -2,6 +2,12 @@ #define _libslic3r_h_ #include "libslic3r_version.h" +#include +#include +#include +#include +#include +#include #define SLIC3R_APP_FULL_NAME "Orca Slicer" #define GCODEVIEWER_APP_NAME "OrcaSlicer G-code Viewer" #define GCODEVIEWER_APP_KEY "OrcaSlicerGcodeViewer" diff --git a/src/libslic3r/miniz_extension.cpp b/src/libslic3r/miniz_extension.cpp index 4d9b528267..33f24a9a55 100644 --- a/src/libslic3r/miniz_extension.cpp +++ b/src/libslic3r/miniz_extension.cpp @@ -1,3 +1,8 @@ +#include +#include +#include +#include +#include #include #include @@ -6,6 +11,9 @@ #include #include +#include +#include +#include #if defined(_MSC_VER) || defined(__MINGW64__) #include "boost/nowide/cstdio.hpp" diff --git a/src/libslic3r/utils.cpp b/src/libslic3r/utils.cpp index 849d309563..6205f11219 100644 --- a/src/libslic3r/utils.cpp +++ b/src/libslic3r/utils.cpp @@ -1,11 +1,43 @@ #include "Utils.hpp" +#include "Exception.hpp" #include "I18N.hpp" #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include #include +#include +#include +#include #include #include #include @@ -14,7 +46,12 @@ #include #include #include +#include +#include +#include +#include +#include "Semver.hpp" #include "format.hpp" #include "Platform.hpp" #include "Time.hpp" @@ -23,6 +60,7 @@ // (get_version_from_json) and the preset cache stamp (VendorCacheFile). #include "Preset.hpp" #include "PresetCacheFormat.hpp" +#include "libslic3r_version.h" #ifdef __APPLE__ #include "MacUtils.hpp" From a6dbf2502d0e0d6d6fcd7aa7b9089c397f3493a0 Mon Sep 17 00:00:00 2001 From: ExPikaPaka <112851715+ExPikaPaka@users.noreply.github.com> Date: Sat, 3 Oct 2026 14:06:50 +0200 Subject: [PATCH 4/8] Device tab blank for webui printers after switching language (#14547) * Save device url in all cases and load printer url after hot-reload finishes * Recreate web view from scratch as only URL fix seems not robust enough * Add the same robust browser recreation for WebViewDialog It should eliminate possible issue with blank Home and other pages in the same way as Printer page * Remove redundant fallback leftover * Fix webview reset state and replay Project info on page reload The first-show webview reset now runs only on Windows, reloads the last printer URL and resets the Project page's ready state. The Project tab replays its 3MF info whenever the page reloads, so it no longer goes blank after a theme switch or a slow first load. The Device tab no longer loads an extra time on first open, and the Home tab no longer navigates twice. NeedsRecreateOnShow() logs is_recreating_gui so one language switch shows whether the reset ever fires. * Build plugin pages on first show A language switch rebuilt every plugin page's browser while the main window was being recreated, which left plugin tabs blank on Windows. Plugin pages are now lazy pages, never prebuilt, and are removed left to right so removing pages never builds one only to destroy it. A plugin page's script now starts when its tab is first opened; messages posted before that are dropped. --------- Co-authored-by: SoftFever Co-authored-by: Noisyfox Co-authored-by: SoftFever <103989404+SoftFever@users.noreply.github.com> --- .../references/controls-dataview.md | 4 ++ .../references/orca-architecture.md | 30 ++++++++- src/slic3r/GUI/MainFrame.hpp | 3 +- src/slic3r/GUI/PrinterWebView.cpp | 62 ++++++++++++------- src/slic3r/GUI/PrinterWebView.hpp | 5 ++ src/slic3r/GUI/Project.cpp | 47 ++++++++++---- src/slic3r/GUI/Project.hpp | 5 ++ src/slic3r/GUI/WebViewDialog.cpp | 33 +++++++--- src/slic3r/GUI/WebViewDialog.hpp | 6 ++ src/slic3r/GUI/Widgets/WebView.cpp | 11 ++++ src/slic3r/GUI/Widgets/WebView.hpp | 4 ++ src/slic3r/plugin/host/PluginPages.cpp | 57 +++++++++-------- src/slic3r/plugin/host/PluginPages.hpp | 12 ++-- 13 files changed, 203 insertions(+), 76 deletions(-) diff --git a/.claude/skills/orca-wxwidgets/references/controls-dataview.md b/.claude/skills/orca-wxwidgets/references/controls-dataview.md index 0789f47d79..3671e05991 100644 --- a/.claude/skills/orca-wxwidgets/references/controls-dataview.md +++ b/.claude/skills/orca-wxwidgets/references/controls-dataview.md @@ -331,6 +331,10 @@ OrcaSlicer: integer spinners are `::SpinInput` ([below](#spininput)); progress b Contract: - A page must be created with the book as its parent and added once; the book owns and deletes it (`interface/wx/bookctrl.h:253-254, 273`). `RemovePage` detaches without deleting, and you then own it (`:324-330`). +- Removing the selected page selects the page before it (the new first page if it was first) through `SetSelection`, + so that page is shown and PAGE_CHANGING/CHANGED are sent; removing a page before the selection only shifts the + index. This is `wxBookCtrlBase::DoSetSelectionAfterRemoval` (`src/common/bookctrl.cpp:477-495` **[source]**), + called from `DoRemovePage` by `wxSimplebook`, `wxChoicebook`, `wxListbook`, `wxToolbook` and Orca's `Notebook`. - `GetSelection()` inside a `PAGE_CHANGED` handler may return the old or the new page depending on the platform; use `event.GetSelection()` (`interface/wx/bookctrl.h:160-166`). - `wxSimplebook` has no UI; switch with `ChangeSelection()`. `SetSelection()` sends PAGE_CHANGING/CHANGED diff --git a/.claude/skills/orca-wxwidgets/references/orca-architecture.md b/.claude/skills/orca-wxwidgets/references/orca-architecture.md index 801494d802..6c23122910 100644 --- a/.claude/skills/orca-wxwidgets/references/orca-architecture.md +++ b/.claude/skills/orca-wxwidgets/references/orca-architecture.md @@ -332,7 +332,9 @@ indices: pages come and go per printer and per feature flag. pages depending on the printer and on `use_printer_agents`; a removed page stays registered but is not prebuilt (its `LazyPage::in_book()` is false). - Plugin pages are appended by `PluginPages::initialize` (`plugin/host/PluginPages.hpp`) with - namespaced ids (`plugin..`) that cannot collide with `TAB_ID_*`. + namespaced ids (`plugin..`) that cannot collide with `TAB_ID_*`. Each is a + `LazyPage` with order −1, destroyed when its capability goes away. + → [Deferred construction](#deferred-construction-lazy-lazypage-stagedbuild-idlescheduler) ### Preset tabs @@ -529,6 +531,32 @@ the main frame does nothing to a panel after creating it. m_idle.add(m_diff_dialog); ``` Cite: `IdleScheduler::tick`, `docs/HLSD/deferred-page-construction.md`. +- **Rule:** A lazy page that can be destroyed while the main frame lives takes a negative order and + stays out of `m_lazy_pages`. + **Why:** `m_lazy_pages` and `PrebuildQueue` hold raw `LazyBase*` and nothing removes one + (`PrebuildQueue` has only `add` and `clear`). The queue calls `pending()` on every task each slice, + and `prebuild_pages_when_idle` reads every entry of `m_lazy_pages`, so a page destroyed while still + listed can be read after it is freed. A page only taken out of the book is fine: it stays registered + and its `pending()` is false (`MainFrame::show_device`). + ```cpp + // Right (PluginPages::create_page): order -1, and no m_lazy_pages.push_back + auto* page = new GUI::LazyPage(m_parent, name, -1, [capability](wxWindow* parent) { + return new PluginPage(parent, capability); + }); + ``` + Cite: `PluginPages::create_page`, `PluginPages::remove_page`. +- **Rule:** Remove several lazy pages from a book left to right. + **Why:** removing the selected page selects and shows the page before it + (`references/controls-dataview.md` §Book controls), and showing an unbuilt `LazyPage` while the frame + is shown builds it. In any other order the page before the selected one can be one removed next, + built only to be destroyed; left to right it is one that stays (unless the selected page is the + book's first). + ```cpp + // Right (PluginPages::shutdown): m_order is the tabs' left-to-right order + for (const PluginCapabilityId& id : std::vector(m_order)) + remove_page(id); + ``` + Cite: `PluginPages::shutdown`, `PluginPages::relayout`, `PluginPages::on_plugin_deregister`. ## Plater and Sidebar diff --git a/src/slic3r/GUI/MainFrame.hpp b/src/slic3r/GUI/MainFrame.hpp index 8c4fc58d03..8c25b31770 100644 --- a/src/slic3r/GUI/MainFrame.hpp +++ b/src/slic3r/GUI/MainFrame.hpp @@ -184,7 +184,8 @@ class MainFrame : public DPIFrame std::string m_name{ "prepare_layout" }; wxSize m_laid_out_size; } m_prepare_layout_prebuild{ *this }; - // Every LazyPage, in and out of the book; prebuild_pages_when_idle() registers them. + // Every built-in LazyPage, in and out of the book; prebuild_pages_when_idle() registers them. + // Plugin pages stay out: PluginPages destroys them at runtime. std::vector m_lazy_pages; // The latest EVT_LOAD_PRINTER_URL, applied when the web Device view is built. wxString m_printer_url; diff --git a/src/slic3r/GUI/PrinterWebView.cpp b/src/slic3r/GUI/PrinterWebView.cpp index 4ea2ba0a72..1993748cc6 100644 --- a/src/slic3r/GUI/PrinterWebView.cpp +++ b/src/slic3r/GUI/PrinterWebView.cpp @@ -119,33 +119,13 @@ PrinterWebView::PrinterWebView(wxWindow *parent) wxBoxSizer* topsizer = new wxBoxSizer(wxVERTICAL); // Create the webview - m_browser = WebView::CreateWebView(this, ""); - if (m_browser == nullptr) { - wxLogError("Could not init m_browser"); - return; - } - -#ifdef __linux__ - inject_vue_resize_workaround(m_browser); - - auto cookiesPath = boost::filesystem::path(data_dir() + "/cache/cookies.db"); - auto wv = static_cast(m_browser->GetNativeBackend()); - auto wv_ctx = webkit_web_view_get_context(wv); - auto cookieManager = webkit_web_context_get_cookie_manager(wv_ctx); - webkit_cookie_manager_set_persistent_storage(cookieManager, cookiesPath.c_str(), WEBKIT_COOKIE_PERSISTENT_STORAGE_SQLITE); -#endif - - m_browser->Bind(wxEVT_WEBVIEW_ERROR, &PrinterWebView::OnError, this); - m_browser->Bind(wxEVT_WEBVIEW_LOADED, &PrinterWebView::OnLoaded, this); - m_browser->Bind(wxEVT_WEBVIEW_NEWWINDOW, &PrinterWebView::OnNewWindow, this); - m_browser->Bind(wxEVT_WEBVIEW_SCRIPT_MESSAGE_RECEIVED, &PrinterWebView::OnScriptMessage, this); + create_browser(); + m_reset_on_show = WebView::NeedsRecreateOnShow(); SetSizer(topsizer); topsizer->Add(m_browser, wxSizerFlags().Expand().Proportion(1)); - update_mode(); - // Log backend information /* m_browser->GetUserAgent() may lead crash if (wxGetApp().get_mode() == comDevelop) { @@ -177,12 +157,44 @@ PrinterWebView::~PrinterWebView() BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << " End"; } +void PrinterWebView::create_browser() +{ + m_browser = WebView::CreateWebView(this, ""); + +#ifdef __linux__ + inject_vue_resize_workaround(m_browser); + + auto cookiesPath = boost::filesystem::path(data_dir() + "/cache/cookies.db"); + auto wv = static_cast(m_browser->GetNativeBackend()); + auto wv_ctx = webkit_web_view_get_context(wv); + auto cookieManager = webkit_web_context_get_cookie_manager(wv_ctx); + webkit_cookie_manager_set_persistent_storage(cookieManager, cookiesPath.c_str(), WEBKIT_COOKIE_PERSISTENT_STORAGE_SQLITE); +#endif + + m_browser->Bind(wxEVT_WEBVIEW_ERROR, &PrinterWebView::OnError, this); + m_browser->Bind(wxEVT_WEBVIEW_LOADED, &PrinterWebView::OnLoaded, this); + m_browser->Bind(wxEVT_WEBVIEW_NEWWINDOW, &PrinterWebView::OnNewWindow, this); + m_browser->Bind(wxEVT_WEBVIEW_SCRIPT_MESSAGE_RECEIVED, &PrinterWebView::OnScriptMessage, this); + update_mode(); +} + +void PrinterWebView::reset_browser() +{ + m_browser->Destroy(); // also removes it from the sizer + create_browser(); + GetSizer()->Add(m_browser, wxSizerFlags().Expand().Proportion(1)); + Layout(); + + // OnLoaded may have cleared m_url_deferred already, so requeue the last url for Show(). + m_apikey_sent = false; + m_url_deferred = m_url; +} + void PrinterWebView::load_url(wxString& url, wxString apikey) { // this->Show(); // this->Raise(); - if (m_browser == nullptr) - return; + m_url = url; m_apikey = apikey; m_apikey_sent = false; m_handler = create_printer_webview_handler(*this); @@ -200,6 +212,8 @@ void PrinterWebView::load_url(wxString& url, wxString apikey) bool PrinterWebView::Show(bool show) { + if (show && std::exchange(m_reset_on_show, false)) + reset_browser(); if (show && !m_url_deferred.empty()) { m_browser->LoadURL(m_url_deferred); //ORCA: m_url_deferred will be cleared on load success diff --git a/src/slic3r/GUI/PrinterWebView.hpp b/src/slic3r/GUI/PrinterWebView.hpp index 9bd8ff51a8..53c4f30557 100644 --- a/src/slic3r/GUI/PrinterWebView.hpp +++ b/src/slic3r/GUI/PrinterWebView.hpp @@ -58,13 +58,18 @@ private: friend class PrinterWebViewHandler; void SendAPIKey(); + void create_browser(); + void reset_browser(); wxWebView* m_browser; long m_zoomFactor; wxString m_apikey; bool m_apikey_sent; + // Last url passed to load_url(), reloaded after reset_browser(). + wxString m_url; wxString m_url_deferred; std::unique_ptr m_handler; + bool m_reset_on_show{false}; // DECLARE_EVENT_TABLE() }; diff --git a/src/slic3r/GUI/Project.cpp b/src/slic3r/GUI/Project.cpp index 47945e1179..d8e7d6b806 100644 --- a/src/slic3r/GUI/Project.cpp +++ b/src/slic3r/GUI/Project.cpp @@ -80,16 +80,10 @@ ProjectPanel::ProjectPanel(wxWindow *parent, wxWindowID id, const wxPoint &pos, wxBoxSizer* main_sizer = new wxBoxSizer(wxVERTICAL); - m_browser = WebView::CreateWebView(this, m_project_home_url); - if (m_browser == nullptr) { - BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format("load web view of project page failed"); - return; - } + create_browser(); + m_reset_on_show = WebView::NeedsRecreateOnShow(); //m_browser->Hide(); main_sizer->Add(m_browser, wxSizerFlags().Expand().Proportion(1)); - m_browser->Bind(wxEVT_WEBVIEW_NAVIGATED, &ProjectPanel::on_navigated, this); - m_browser->Bind(wxEVT_WEBVIEW_SCRIPT_MESSAGE_RECEIVED, &ProjectPanel::OnScriptMessage, this, m_browser->GetId()); - Bind(wxEVT_WEBVIEW_NAVIGATING, &ProjectPanel::onWebNavigating, this, m_browser->GetId()); Bind(EVT_PROJECT_RELOAD, &ProjectPanel::on_reload, this); @@ -117,6 +111,23 @@ void ProjectPanel::shutdown() m_reload_task.reset(); } +void ProjectPanel::create_browser() +{ + m_browser = WebView::CreateWebView(this, m_project_home_url); + m_browser->Bind(wxEVT_WEBVIEW_NAVIGATED, &ProjectPanel::on_navigated, this); + m_browser->Bind(wxEVT_WEBVIEW_SCRIPT_MESSAGE_RECEIVED, &ProjectPanel::OnScriptMessage, this, m_browser->GetId()); + m_browser->Bind(wxEVT_WEBVIEW_NAVIGATING, &ProjectPanel::onWebNavigating, this); +} + +void ProjectPanel::reset_browser() +{ + m_browser->Destroy(); // also removes it from the sizer + create_browser(); + GetSizer()->Insert(0, m_browser, wxSizerFlags().Expand().Proportion(1)); + Layout(); + m_web_init_completed.store(false, std::memory_order_release); +} + // Helper to convert newlines to
static std::string convert_newlines_to_br(const std::string& text) { std::string result = text; @@ -281,12 +292,13 @@ void ProjectPanel::on_reload(wxCommandEvent& evt) wxString strJS = wxString::Format("HandleStudio(%s)", m_Res.dump(-1, ' ', false, json::error_handler_t::ignore)); - if (m_web_init_completed.load(std::memory_order_acquire) && - !cancel_token->load(std::memory_order_acquire) && wxTheApp != nullptr && !wxGetApp().is_closing()) { + if (!cancel_token->load(std::memory_order_acquire) && wxTheApp != nullptr && !wxGetApp().is_closing()) { wxGetApp().CallAfter([this, cancel_token, strJS] { if (cancel_token->load(std::memory_order_acquire) || wxTheApp == nullptr || wxGetApp().is_closing()) return; - RunScript(strJS.ToStdString()); + m_info_script = strJS.ToStdString(); + if (m_web_init_completed.load(std::memory_order_acquire)) + RunScript(m_info_script); }); } }); @@ -327,6 +339,11 @@ void ProjectPanel::OnScriptMessage(wxWebViewEvent& evt) } else if (strCmd == "request_3mf_info") { m_web_init_completed.store(true, std::memory_order_release); + // Replay the stored info after each page load. + CallAfter([this] { + if (!m_info_script.empty()) + RunScript(m_info_script); + }); } else if (strCmd == "edit_project_info") { show_info_editor(true); @@ -383,6 +400,8 @@ void ProjectPanel::clear_model_info() wxGetApp().CallAfter([this, cancel_token, strJS] { if (cancel_token->load(std::memory_order_acquire) || wxTheApp == nullptr || wxGetApp().is_closing()) return; + // Runs after any store queued by an earlier reload pass, so stale info is never replayed. + m_info_script.clear(); RunScript(strJS.ToStdString()); }); } @@ -523,10 +542,12 @@ void ProjectPanel::RunScript(std::string content) WebView::RunScript(m_browser, content); } -bool ProjectPanel::Show(bool show) +bool ProjectPanel::Show(bool show) { + if (show && std::exchange(m_reset_on_show, false)) + reset_browser(); if (show) update_model_data(); - return wxPanel::Show(show); + return wxPanel::Show(show); } }} // namespace Slic3r::GUI diff --git a/src/slic3r/GUI/Project.hpp b/src/slic3r/GUI/Project.hpp index c7a85bce74..90e6eda1f1 100644 --- a/src/slic3r/GUI/Project.hpp +++ b/src/slic3r/GUI/Project.hpp @@ -80,9 +80,14 @@ private: AuxiliaryPanel* m_auxiliary{nullptr}; wxString m_project_home_url; wxString m_root_dir; + // Last show_3mf_info script, also sent whenever the page asks for it. + std::string m_info_script; + bool m_reset_on_show{false}; static inline std::atomic m_sequence_id{8000}; void show_info_editor(bool show); + void create_browser(); + void reset_browser(); public: diff --git a/src/slic3r/GUI/WebViewDialog.cpp b/src/slic3r/GUI/WebViewDialog.cpp index 02fc7b0877..0101c83534 100644 --- a/src/slic3r/GUI/WebViewDialog.cpp +++ b/src/slic3r/GUI/WebViewDialog.cpp @@ -62,10 +62,10 @@ namespace GUI { WebViewPanel::WebViewPanel(wxWindow *parent) : wxPanel(parent, wxID_ANY, wxDefaultPosition, wxDefaultSize) { - wxString url = file_url_from_path(boost::filesystem::path(resources_dir()) / "web/homepage/index.html"); + m_home_url = file_url_from_path(boost::filesystem::path(resources_dir()) / "web/homepage/index.html"); wxString strlang = wxGetApp().current_language_code_safe(); if (strlang != "") - url += "?lang=" + strlang; + m_home_url += "?lang=" + strlang; wxBoxSizer* topsizer = new wxBoxSizer(wxVERTICAL); @@ -109,12 +109,8 @@ WebViewPanel::WebViewPanel(wxWindow *parent) m_info = new wxInfoBar(this); topsizer->Add(m_info, wxSizerFlags().Expand()); // Create the webview - m_browser = WebView::CreateWebView(this, url); - if (m_browser == nullptr) { - wxLogError("Could not init m_browser"); - return; - } - m_browser->Hide(); + create_browser(); + m_reset_on_show = WebView::NeedsRecreateOnShow(); SetSizer(topsizer); topsizer->Add(m_browser, wxSizerFlags().Expand().Proportion(1)); @@ -264,6 +260,27 @@ WebViewPanel::~WebViewPanel() } +void WebViewPanel::create_browser() +{ + m_browser = WebView::CreateWebView(this, m_home_url); + m_browser->Hide(); +} + +void WebViewPanel::reset_browser() +{ + m_browser->Destroy(); // also removes it from the sizer + create_browser(); + GetSizer()->Add(m_browser, wxSizerFlags().Expand().Proportion(1)); + Layout(); +} + +bool WebViewPanel::Show(bool show) +{ + if (show && std::exchange(m_reset_on_show, false)) + reset_browser(); + return wxPanel::Show(show); +} + void WebViewPanel::load_url(wxString& url) { this->Show(); diff --git a/src/slic3r/GUI/WebViewDialog.hpp b/src/slic3r/GUI/WebViewDialog.hpp index 96d18f23c0..8a4ecbf35d 100644 --- a/src/slic3r/GUI/WebViewDialog.hpp +++ b/src/slic3r/GUI/WebViewDialog.hpp @@ -113,9 +113,15 @@ public: int get_model_mall_detail_url(std::string *url, std::string id); void update_mode(); + + bool Show(bool show = true) override; private: + void create_browser(); + void reset_browser(); wxWebView* m_browser; + wxString m_home_url; + bool m_reset_on_show{false}; wxButton * m_button_stop; wxTextCtrl *m_url; #if !BBL_RELEASE_TO_PUBLIC diff --git a/src/slic3r/GUI/Widgets/WebView.cpp b/src/slic3r/GUI/Widgets/WebView.cpp index 9a4d5f90b0..c446875d1f 100644 --- a/src/slic3r/GUI/Widgets/WebView.cpp +++ b/src/slic3r/GUI/Widgets/WebView.cpp @@ -381,6 +381,17 @@ void WebView::MarkScriptMessageHandlerAdded(wxWebView * webView) if (WebViewRef *ref = webview_ref(webView)) ref->m_script_handler_added = true; } + +bool WebView::NeedsRecreateOnShow() +{ + const bool recreating = Slic3r::GUI::wxGetApp().is_recreating_gui(); + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ": is_recreating_gui = " << recreating; +#ifdef __WIN32__ + return recreating; +#else + return false; +#endif +} #if wxUSE_WEBVIEW_EDGE bool WebView::CheckWebViewRuntime() { diff --git a/src/slic3r/GUI/Widgets/WebView.hpp b/src/slic3r/GUI/Widgets/WebView.hpp index 2dc126643d..0172f3f8ac 100644 --- a/src/slic3r/GUI/Widgets/WebView.hpp +++ b/src/slic3r/GUI/Widgets/WebView.hpp @@ -23,6 +23,10 @@ public: // Marks "wx" as registered so CreateWebView's deferred add skips the duplicate. static void MarkScriptMessageHandlerAdded(wxWebView * webView); + // On Windows, a WebView2 backend created during a GUI rebuild (language switch) can come up + // ignoring every navigation. A panel that gets true here recreates its view on first Show(). + static bool NeedsRecreateOnShow(); + static void RecreateAll(); }; diff --git a/src/slic3r/plugin/host/PluginPages.cpp b/src/slic3r/plugin/host/PluginPages.cpp index 680b573bd7..36b4cd10b4 100644 --- a/src/slic3r/plugin/host/PluginPages.cpp +++ b/src/slic3r/plugin/host/PluginPages.cpp @@ -1,6 +1,7 @@ #include "PluginPages.hpp" #include "libslic3r/AppConfig.hpp" +#include "slic3r/GUI/GUI.hpp" #include "slic3r/GUI/Notebook.hpp" #include "slic3r/GUI/GUI_App.hpp" #include "slic3r/GUI/Widgets/Button.hpp" @@ -183,8 +184,10 @@ void PluginPages::initialize(Notebook* parent) void PluginPages::shutdown() { - while (!m_pages.empty()) - remove_page(m_pages.begin()->first); + // Removing the selected tab selects the tab to its left. In tab order that is a built-in tab, + // never an unbuilt plugin page that is removed next and would be built only to be destroyed. + for (const PluginCapabilityId& id : std::vector(m_order)) + remove_page(id); m_parent = nullptr; } @@ -225,8 +228,7 @@ bool PluginPages::create_page(const PluginCapabilityId& id) BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << " Failed to get icon for plugin " << id.plugin_key; } - auto* page = new PluginPage(m_parent, std::move(capability)); - + wxBitmap bitmap; if (!icon.empty()) { try { boost::filesystem::path icon_path(icon); @@ -234,7 +236,7 @@ bool PluginPages::create_page(const PluginCapabilityId& id) if (extension == ".svg" || extension == ".png") icon_path.replace_extension(); - page->set_icon(create_scaled_bitmap(icon_path.string(), m_parent, 20)); + bitmap = create_scaled_bitmap(icon_path.string(), m_parent, 20); } catch (const std::exception& error) { BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << " Failed to load icon for plugin " << id.plugin_key << ": " << error.what(); } catch (...) { @@ -242,7 +244,15 @@ bool PluginPages::create_page(const PluginCapabilityId& id) } } - m_pages.emplace(id, page); + // Built the first time its tab is shown, so a language switch never creates the page's browser + // while the main window is being rebuilt. Never prebuilt: the idle queue cannot drop a page + // that remove_page() destroys. + auto* page = new GUI::LazyPage(m_parent, GUI::into_u8(page_tab_id(id)), -1, + [capability = std::move(capability)](wxWindow* parent) { + return new PluginPage(parent, capability); + }); + + m_pages.emplace(id, Page{page, bitmap}); m_order.push_back(id); return true; } @@ -271,16 +281,10 @@ void PluginPages::on_plugin_register(const std::string& plugin_key) void PluginPages::on_plugin_deregister(const std::string& plugin_key) { - for (auto it = m_pages.begin(); it != m_pages.end();) { - if (it->first.plugin_key != plugin_key) { - ++it; - continue; - } - - const PluginCapabilityId id = it->first; - ++it; - remove_page(id); - } + // In tab order, as in shutdown(). + for (const PluginCapabilityId& id : std::vector(m_order)) + if (id.plugin_key == plugin_key) + remove_page(id); } void PluginPages::remove_page(const PluginCapabilityId& id) @@ -289,8 +293,10 @@ void PluginPages::remove_page(const PluginCapabilityId& id) if (it == m_pages.end()) return; - PluginPage* page = it->second; - page->detach_capability(); + GUI::LazyPage* page = it->second.page; + // Only a built page has installed a message sender on the capability. + if (PluginPage* built = page->get()) + built->detach_capability(); m_pages.erase(it); m_order.erase(std::remove(m_order.begin(), m_order.end(), id), m_order.end()); @@ -348,26 +354,27 @@ void PluginPages::relayout() bool up_to_date = page_count >= tab_ids.size(); for (size_t i = 0; up_to_date && i < tab_ids.size(); ++i) up_to_date = m_parent->GetPageName(page_count - tab_ids.size() + i) == page_tab_id(tab_ids[i]); - for (const auto& [id, page] : m_pages) { + for (const auto& [id, entry] : m_pages) { if (!up_to_date) break; const bool wanted = std::find(tab_ids.begin(), tab_ids.end(), id) != tab_ids.end(); - up_to_date = (m_parent->FindPage(page) != wxNOT_FOUND) == wanted; + up_to_date = entry.page->in_book() == wanted; } if (!up_to_date) { const wxString id_to_reselect = m_parent->GetSelectedPageName(); - for (const auto& [id, page] : m_pages) { - const int idx = m_parent->FindPage(page); + // In tab order, as in shutdown(). + for (const auto& id : m_order) { + const int idx = m_parent->FindPage(m_pages.at(id).page); if (idx != wxNOT_FOUND) m_parent->RemovePage(idx); } for (const auto& id : tab_ids) { - PluginPage* page = m_pages.at(id); - m_parent->InsertPage(m_parent->GetPageCount(), page_tab_id(id), page, wxString::FromUTF8(id.name), "", - false, page->icon()); + const Page& entry = m_pages.at(id); + m_parent->InsertPage(m_parent->GetPageCount(), page_tab_id(id), entry.page, wxString::FromUTF8(id.name), "", + false, entry.icon); } if (!id_to_reselect.empty()) diff --git a/src/slic3r/plugin/host/PluginPages.hpp b/src/slic3r/plugin/host/PluginPages.hpp index c0dd74b94d..90d8c28a03 100644 --- a/src/slic3r/plugin/host/PluginPages.hpp +++ b/src/slic3r/plugin/host/PluginPages.hpp @@ -1,5 +1,6 @@ #pragma once +#include #include #include #include @@ -29,8 +30,6 @@ public: void detach_capability(); void push_message(const std::string& message); - void set_icon(const wxBitmap& icon) { m_icon = icon; } - const wxBitmap& icon() const { return m_icon; } protected: std::optional page_html() override; @@ -41,7 +40,6 @@ private: std::shared_ptr m_cap; std::shared_ptr> m_lifetime; - wxBitmap m_icon; }; class PluginPages @@ -73,7 +71,13 @@ private: void show_overflow_menu(); static wxString page_tab_id(const PluginCapabilityId& id); - std::map m_pages; + struct Page + { + GUI::LazyPage* page{nullptr}; + wxBitmap icon; + }; + + std::map m_pages; std::vector m_order; Notebook* m_parent{nullptr}; From c67b54b39db106a9f5652a522a65b0d61ed0bba0 Mon Sep 17 00:00:00 2001 From: Kris Austin Date: Sat, 3 Oct 2026 09:50:36 -0500 Subject: [PATCH 5/8] perf: speed up G-code export by 4-17% via parallel overhang precompute (#16050) Co-authored-by: Rodrigo Faselli <162915171+RF47@users.noreply.github.com> --- src/libslic3r/AABBTreeLines.hpp | 2 +- src/libslic3r/ExtrusionEntityCollection.hpp | 17 ++ src/libslic3r/GCode.cpp | 189 ++++++++++++------- src/libslic3r/GCode.hpp | 4 + src/libslic3r/GCode/ExtrusionProcessor.hpp | 150 ++++++++++++--- tests/fff_print/test_extrusion_processor.cpp | 184 ++++++++++++++++++ 6 files changed, 453 insertions(+), 93 deletions(-) diff --git a/src/libslic3r/AABBTreeLines.hpp b/src/libslic3r/AABBTreeLines.hpp index de0c88aeb1..957627ab9b 100644 --- a/src/libslic3r/AABBTreeLines.hpp +++ b/src/libslic3r/AABBTreeLines.hpp @@ -358,7 +358,7 @@ namespace AABBTreeLines { return dist; } - std::vector all_lines_in_radius(const Vec& point, Floating radius) + std::vector all_lines_in_radius(const Vec& point, Floating radius) const { return AABBTreeLines::all_lines_in_radius(this->lines, this->tree, point.template cast(), radius * radius); } diff --git a/src/libslic3r/ExtrusionEntityCollection.hpp b/src/libslic3r/ExtrusionEntityCollection.hpp index 664ad1ddcd..f79ae22aba 100644 --- a/src/libslic3r/ExtrusionEntityCollection.hpp +++ b/src/libslic3r/ExtrusionEntityCollection.hpp @@ -175,6 +175,23 @@ private: bool is_reverse{true}; }; +// Calls `f` for every ExtrusionPath in `entity`, descending into collections, loops and multi-paths. +template void for_each_extrusion_path(const ExtrusionEntity &entity, F &&f) +{ + if (auto *collection = dynamic_cast(&entity)) { + for (const ExtrusionEntity *child : collection->entities) + for_each_extrusion_path(*child, f); + } else if (auto *loop = dynamic_cast(&entity)) { + for (const ExtrusionPath &path : loop->paths) + f(path); + } else if (auto *multi_path = dynamic_cast(&entity)) { + for (const ExtrusionPath &path : multi_path->paths) + f(path); + } else if (auto *path = dynamic_cast(&entity)) { + f(*path); + } +} + } // namespace Slic3r #endif diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index 2b0f254b43..7aed4b808b 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -4404,6 +4404,75 @@ size_t GCode::get_nozzle_config_index(int filament_id) const return get_extruder_id(filament_id); } +namespace { +struct PrecomputedLayer +{ + size_t index{size_t(-1)}; // size_t(-1) for the empty layer after the last + std::vector overhang_layers; +}; +} // namespace + +template static bool any_enabled(const BoolsOption &option) +{ + return std::any_of(option.values.begin(), option.values.end(), [](unsigned char enabled) { return enabled != 0; }); +} + +// Whether process_layer() prepares the overhang estimator for `layer`. +template +static bool prepares_overhang_estimator(const Layer &layer, bool overhang_fan, OverhangSpeed overhang_speed) +{ + const LayerRegionPtrs ®ions = layer.regions(); + return std::any_of(regions.begin(), regions.end(), [overhang_fan, &overhang_speed](const LayerRegion *region) { + return region->has_extrusions() && (overhang_fan || overhang_speed(*region)); + }); +} + +std::vector precompute_overhang_layers(const std::vector &layers, bool overhang_fan) +{ + // Any filament may print the layer, so a region's overhang speed counts if it is enabled for any. + auto overhang_speed = [](const LayerRegion ®ion) { return any_enabled(region.region().config().enable_overhang_speed); }; + std::vector out; + for (const GCode::LayerToPrint &layer : layers) + if (layer.object_layer != nullptr && layer.object_layer->lower_layer != nullptr && + prepares_overhang_estimator(*layer.object_layer, overhang_fan, overhang_speed)) { + const LayerRegionPtrs ®ions = layer.object_layer->regions(); + const bool curled_lines = std::any_of(regions.begin(), regions.end(), [](const LayerRegion *region) { + return any_enabled(region->region().config().slowdown_for_curled_perimeters); + }); + out.push_back(precompute_overhang_layer(layer.original_object, *layer.object_layer, curled_lines)); + } + return out; +} + +// Hands out the index of each layer to process_layers(), then computes the layers' overhang data in parallel. +template +static auto precomputed_layers_source(size_t &next_index, size_t layer_count, bool nop_layer, bool overhang_fan, LayersAt layers_at) +{ + return tbb::make_filter(slic3r_tbb_filtermode::serial_in_order, + [&next_index, layer_count, nop_layer](tbb::flow_control &fc) -> PrecomputedLayer { + if (next_index < layer_count) + return {next_index++}; + // The pressure equalizer returns one layer back, so it gets an empty layer after the last. + if (next_index == layer_count + (nop_layer ? 1 : 0)) + fc.stop(); + else + ++next_index; + return {}; + }) & + tbb::make_filter(slic3r_tbb_filtermode::parallel, + [layers_at, overhang_fan](PrecomputedLayer layer) -> PrecomputedLayer { + if (layer.index != size_t(-1)) + layer.overhang_layers = precompute_overhang_layers(layers_at(layer.index), overhang_fan); + return layer; + }); +} + +// Whether the overhang fan can switch on for any filament. +static bool overhang_fan_enabled(const PrintConfig &config, bool cooling_markers) +{ + return cooling_markers && any_enabled(config.enable_overhang_bridge_fan); +} + // Process all layers of all objects (non-sequential mode) with a parallel pipeline: // Generate G-code, run the filters (vase mode, cooling buffer), run the G-code analyser // and export G-code into file. @@ -4416,29 +4485,23 @@ void GCode::process_layers( { // The pipeline is variable: The vase mode filter is optional. size_t layer_to_print_idx = 0; - const auto generator = tbb::make_filter(slic3r_tbb_filtermode::serial_in_order, - [this, &print, &tool_ordering, &print_object_instances_ordering, &layers_to_print, &layer_to_print_idx](tbb::flow_control& fc) -> LayerResult { - if (layer_to_print_idx >= layers_to_print.size()) { - if (layer_to_print_idx == layers_to_print.size() + (m_pressure_equalizer ? 1 : 0)) { - fc.stop(); - return {}; - } else { - // Pressure equalizer need insert empty input. Because it returns one layer back. - // Insert NOP (no operation) layer; - ++layer_to_print_idx; - return LayerResult::make_nop_layer_result(); - } - } else { - const std::pair>& layer = layers_to_print[layer_to_print_idx++]; - const LayerTools& layer_tools = tool_ordering.tools_for_layer(layer.first); - print.set_status(80, Slic3r::format(_(L("Generating G-code: layer %1%")), std::to_string(layer_to_print_idx))); - if (m_wipe_tower && layer_tools.has_wipe_tower) - m_wipe_tower->next_layer(); - //BBS - check_placeholder_parser_failed(); - print.throw_if_canceled(); - return this->process_layer(print, layer.second, layer_tools, &layer == &layers_to_print.back(), &print_object_instances_ordering, tool_ordering.get_most_used_extruder(), size_t(-1)); - } + const auto source = precomputed_layers_source(layer_to_print_idx, layers_to_print.size(), m_pressure_equalizer != nullptr, + overhang_fan_enabled(print.config(), m_enable_cooling_markers), + [&layers_to_print](size_t index) -> const std::vector & { return layers_to_print[index].second; }); + const auto generator = tbb::make_filter(slic3r_tbb_filtermode::serial_in_order, + [this, &print, &tool_ordering, &print_object_instances_ordering, &layers_to_print](PrecomputedLayer precomputed) -> LayerResult { + if (precomputed.index == size_t(-1)) + return LayerResult::make_nop_layer_result(); + const std::pair>& layer = layers_to_print[precomputed.index]; + const LayerTools& layer_tools = tool_ordering.tools_for_layer(layer.first); + print.set_status(80, Slic3r::format(_(L("Generating G-code: layer %1%")), std::to_string(precomputed.index + 1))); + if (m_wipe_tower && layer_tools.has_wipe_tower) + m_wipe_tower->next_layer(); + //BBS + check_placeholder_parser_failed(); + print.throw_if_canceled(); + m_extrusion_quality_estimator.set_precomputed_layers(std::move(precomputed.overhang_layers)); + return this->process_layer(print, layer.second, layer_tools, &layer == &layers_to_print.back(), &print_object_instances_ordering, tool_ordering.get_most_used_extruder(), size_t(-1)); }); if (m_spiral_vase) { float nozzle_diameter = EXTRUDER_CONFIG(nozzle_diameter); @@ -4496,13 +4559,15 @@ void GCode::process_layers( // The pipeline elements are joined using const references, thus no copying is performed. if (m_spiral_vase && m_pressure_equalizer) - tbb::parallel_pipeline(12, generator & spiral_mode & pressure_equalizer & cooling & fan_mover & output); + tbb::parallel_pipeline(12, source & generator & spiral_mode & pressure_equalizer & cooling & fan_mover & output); else if (m_spiral_vase) - tbb::parallel_pipeline(12, generator & spiral_mode & cooling & fan_mover & output); + tbb::parallel_pipeline(12, source & generator & spiral_mode & cooling & fan_mover & output); else if (m_pressure_equalizer) - tbb::parallel_pipeline(12, generator & pressure_equalizer & cooling & fan_mover & pa_processor_filter & output); + tbb::parallel_pipeline(12, source & generator & pressure_equalizer & cooling & fan_mover & pa_processor_filter & output); else - tbb::parallel_pipeline(12, generator & cooling & fan_mover & pa_processor_filter & output); + tbb::parallel_pipeline(12, source & generator & cooling & fan_mover & pa_processor_filter & output); + // The estimator's precomputed data points into this print's layers. + m_extrusion_quality_estimator.set_precomputed_layers({}); } @@ -4520,26 +4585,20 @@ void GCode::process_layers( { // The pipeline is variable: The vase mode filter is optional. size_t layer_to_print_idx = 0; - const auto generator = tbb::make_filter(slic3r_tbb_filtermode::serial_in_order, - [this, &print, &tool_ordering, &layers_to_print, &layer_to_print_idx, single_object_idx, prime_extruder](tbb::flow_control& fc) -> LayerResult { - if (layer_to_print_idx >= layers_to_print.size()) { - if (layer_to_print_idx == layers_to_print.size() + (m_pressure_equalizer ? 1 : 0)) { - fc.stop(); - return {}; - } else { - // Pressure equalizer need insert empty input. Because it returns one layer back. - // Insert NOP (no operation) layer; - ++layer_to_print_idx; - return LayerResult::make_nop_layer_result(); - } - } else { - LayerToPrint &layer = layers_to_print[layer_to_print_idx ++]; - print.set_status(80, Slic3r::format(_(L("Generating G-code: layer %1%")), std::to_string(layer_to_print_idx))); - //BBS - check_placeholder_parser_failed(); - print.throw_if_canceled(); - return this->process_layer(print, { std::move(layer) }, tool_ordering.tools_for_layer(layer.print_z()), &layer == &layers_to_print.back(), nullptr, tool_ordering.get_most_used_extruder(), single_object_idx, prime_extruder); - } + const auto source = precomputed_layers_source(layer_to_print_idx, layers_to_print.size(), m_pressure_equalizer != nullptr, + overhang_fan_enabled(print.config(), m_enable_cooling_markers), + [&layers_to_print](size_t index) { return std::vector{layers_to_print[index]}; }); + const auto generator = tbb::make_filter(slic3r_tbb_filtermode::serial_in_order, + [this, &print, &tool_ordering, &layers_to_print, single_object_idx, prime_extruder](PrecomputedLayer precomputed) -> LayerResult { + if (precomputed.index == size_t(-1)) + return LayerResult::make_nop_layer_result(); + LayerToPrint &layer = layers_to_print[precomputed.index]; + print.set_status(80, Slic3r::format(_(L("Generating G-code: layer %1%")), std::to_string(precomputed.index + 1))); + //BBS + check_placeholder_parser_failed(); + print.throw_if_canceled(); + m_extrusion_quality_estimator.set_precomputed_layers(std::move(precomputed.overhang_layers)); + return this->process_layer(print, { std::move(layer) }, tool_ordering.tools_for_layer(layer.print_z()), &layer == &layers_to_print.back(), nullptr, tool_ordering.get_most_used_extruder(), single_object_idx, prime_extruder); }); if (m_spiral_vase) { float nozzle_diameter = EXTRUDER_CONFIG(nozzle_diameter); @@ -4594,13 +4653,15 @@ void GCode::process_layers( // The pipeline elements are joined using const references, thus no copying is performed. if (m_spiral_vase && m_pressure_equalizer) - tbb::parallel_pipeline(12, generator & spiral_mode & pressure_equalizer & cooling & fan_mover & output); + tbb::parallel_pipeline(12, source & generator & spiral_mode & pressure_equalizer & cooling & fan_mover & output); else if (m_spiral_vase) - tbb::parallel_pipeline(12, generator & spiral_mode & cooling & fan_mover & output); + tbb::parallel_pipeline(12, source & generator & spiral_mode & cooling & fan_mover & output); else if (m_pressure_equalizer) - tbb::parallel_pipeline(12, generator & pressure_equalizer & cooling & fan_mover & pa_processor_filter & output); + tbb::parallel_pipeline(12, source & generator & pressure_equalizer & cooling & fan_mover & pa_processor_filter & output); else - tbb::parallel_pipeline(12, generator & cooling & fan_mover & pa_processor_filter & output); + tbb::parallel_pipeline(12, source & generator & cooling & fan_mover & pa_processor_filter & output); + // The estimator's precomputed data points into this print's layers. + m_extrusion_quality_estimator.set_precomputed_layers({}); } std::string GCode::placeholder_parser_process(const std::string &name, const std::string &templ, unsigned int current_filament_id, const DynamicConfig *config_override) @@ -5960,25 +6021,13 @@ LayerResult GCode::process_layer( return next_extruder; }; - for (const auto &layer_to_print : layers) { - if (layer_to_print.object_layer) { - const auto& regions = layer_to_print.object_layer->regions(); - const bool has_extrusions = std::any_of(regions.begin(), regions.end(), [](const LayerRegion* r) { - return r->has_extrusions(); - }); - const bool enable_overhang_speed = std::any_of(regions.begin(), regions.end(), [this](const LayerRegion* r) { - return r->has_extrusions() && r->region().config().enable_overhang_speed.get_at(get_nozzle_config_index(m_writer.filament()->id())); - }); - const bool enable_overhang_fan = m_enable_cooling_markers && has_extrusions && - std::any_of(m_config.enable_overhang_bridge_fan.values.begin(), - m_config.enable_overhang_bridge_fan.values.end(), - [](unsigned char value) { return value != 0; }); - if (enable_overhang_speed || enable_overhang_fan) { - m_extrusion_quality_estimator.prepare_for_new_layer(layer_to_print.original_object, - layer_to_print.object_layer); - } - } - } + const bool overhang_fan = overhang_fan_enabled(m_config, m_enable_cooling_markers); + auto overhang_speed = [this](const LayerRegion ®ion) { + return bool(region.region().config().enable_overhang_speed.get_at(get_nozzle_config_index(m_writer.filament()->id()))); + }; + for (const auto &layer_to_print : layers) + if (layer_to_print.object_layer && prepares_overhang_estimator(*layer_to_print.object_layer, overhang_fan, overhang_speed)) + m_extrusion_quality_estimator.prepare_for_new_layer(layer_to_print.original_object, layer_to_print.object_layer); // Group extrusions by an extruder, then by an object, an island and a region. std::map> by_extruder; diff --git a/src/libslic3r/GCode.hpp b/src/libslic3r/GCode.hpp index 0172fcf8c0..6b050a4739 100644 --- a/src/libslic3r/GCode.hpp +++ b/src/libslic3r/GCode.hpp @@ -864,6 +864,10 @@ private: std::vector sort_object_instances_by_model_order(const Print& print, bool init_order = false); +// The overhang data ExtrusionQualityEstimator needs for the object layers in `layers`, computed ahead of the generator; +// `overhang_fan` says whether the overhang fan can switch on for any filament. +std::vector precompute_overhang_layers(const std::vector &layers, bool overhang_fan); + } #endif diff --git a/src/libslic3r/GCode/ExtrusionProcessor.hpp b/src/libslic3r/GCode/ExtrusionProcessor.hpp index 7cc886bfe9..6abf09fe14 100644 --- a/src/libslic3r/GCode/ExtrusionProcessor.hpp +++ b/src/libslic3r/GCode/ExtrusionProcessor.hpp @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include @@ -38,7 +39,14 @@ template struct ExtendedPoint float curvature; }; -template +// A KNOWN_DISTANCES functor that knows no distances, so every input point is queried. +struct NoKnownDistances +{ + template const double *operator()(const P &) const { return nullptr; } +}; + +template std::vector> estimate_points_properties(const POINTS& input_points, const AABBTreeLines::LinesDistancer& unscaled_prev_layer, float flow_width, @@ -49,7 +57,9 @@ std::vector> estimate_points_properties(const POINTS& const std::function& distance_to_speed = {}, // Overlap (1 - distance / flow_width) at or below which the overhang // fan switches on; negative when the fan does not depend on overlap. - float fan_overlap_threshold = -1.0f) + float fan_overlap_threshold = -1.0f, + // Returns an input point's signed distance if already known, else nullptr. + const KNOWN_DISTANCES& known_distance = KNOWN_DISTANCES{}) { bool looped = input_points.front() == input_points.back(); std::function get_prev_index = [](size_t idx, size_t count) { @@ -94,21 +104,26 @@ std::vector> estimate_points_properties(const POINTS& float boundary_offset = PREV_LAYER_BOUNDARY_OFFSET ? 0.5 * flow_width : 0.0f; auto maybe_unscale = [](const P& p) -> Vec { return SCALED_INPUT ? unscaled(p) : p.template cast(); }; + using Distance = typename AABBTreeLines::LinesDistancer::Floating; + auto input_distance = [&unscaled_prev_layer, &known_distance](const P &input, const Vec &position) -> Distance { + if (const double *known = known_distance(input)) + return Distance(*known); + auto [distance, nearest_line, x] = unscaled_prev_layer.template distance_from_lines_extra( + position.template cast()); + return distance; + }; + std::vector> points; points.reserve(input_points.size() * (ADD_INTERSECTIONS ? 1.5 : 1)); { ExtendedPoint start_point{maybe_unscale(input_points.front())}; - auto [distance, nearest_line, x] = unscaled_prev_layer.template distance_from_lines_extra( - start_point.position.template cast()); - start_point.distance = distance + boundary_offset; + start_point.distance = input_distance(input_points.front(), start_point.position) + boundary_offset; points.push_back(start_point); } for (size_t i = 1; i < input_points.size(); i++) { ExtendedPoint next_point{maybe_unscale(input_points[i])}; - auto [distance, nearest_line, - x] = unscaled_prev_layer.template distance_from_lines_extra(next_point.position.template cast()); - next_point.distance = distance + boundary_offset; + next_point.distance = input_distance(input_points[i], next_point.position) + boundary_offset; // Intersection handling if (ADD_INTERSECTIONS && @@ -349,6 +364,9 @@ std::vector> estimate_points_properties(const POINTS& points = std::move(new_points); } + if constexpr (!CURVATURE) + return points; + // Curvature calculation float accumulated_distance = 0; std::vector distances_for_curvature(points.size()); @@ -417,6 +435,49 @@ std::vector> estimate_points_properties(const POINTS& return points; } +struct Point3Hash +{ + size_t operator()(const Vec3crd &pt) const noexcept { return size_t(((89 * 31 + int64_t(pt.x())) * 31 + pt.y()) * 31 + pt.z()); } +}; + +// The trees of the layer below an object layer, and the signed distances from the layer's perimeter and bridge +// vertices to that layer's outline, computed for ExtrusionQualityEstimator ahead of the G-code generator. +struct PrecomputedOverhangLayer +{ + const PrintObject *object{nullptr}; + const Layer *layer{nullptr}; + std::shared_ptr> lower_boundaries; + std::shared_ptr> lower_curled_lines; + std::unordered_map distances; +}; + +// `layer` must have a layer below it; leave out `curled_lines` only when no region of `layer` slows down for curled +// perimeters. +inline PrecomputedOverhangLayer precompute_overhang_layer(const PrintObject *object, const Layer &layer, bool curled_lines = true) +{ + PrecomputedOverhangLayer out{object, &layer, + std::make_shared>(to_unscaled_linesf3(layer.lower_layer->lslices)), + curled_lines ? std::make_shared>(layer.lower_layer->curled_lines) : + nullptr, + {}}; + const AABBTreeLines::LinesDistancer &lower = *out.lower_boundaries; + auto add_path = [&out, &lower](const ExtrusionPath &path) { + if (!is_bridge(path.role()) && !is_perimeter(path.role())) + return; + for (const Point3 &point : path.polyline.points) + if (auto [it, inserted] = out.distances.try_emplace(point, 0.); inserted) { + const Eigen::Matrix position = unscaled(point); + auto [distance, nearest_line, x] = lower.distance_from_lines_extra(position.cast()); + it->second = distance; + } + }; + for (const LayerRegion *region : layer.regions()) { + for_each_extrusion_path(region->perimeters, add_path); + for_each_extrusion_path(region->fills, add_path); + } + return out; +} + struct ProcessedPoint { Point3 p; @@ -426,23 +487,53 @@ struct ProcessedPoint class ExtrusionQualityEstimator { - std::unordered_map> prev_layer_boundaries; - std::unordered_map> next_layer_boundaries; - std::unordered_map> prev_curled_extrusions; - std::unordered_map> next_curled_extrusions; - const PrintObject *current_object; + using Boundaries = AABBTreeLines::LinesDistancer; + using CurledLines = AABBTreeLines::LinesDistancer; + std::unordered_map> prev_layer_boundaries; + std::unordered_map> prev_curled_extrusions; + // The layers the trees above are built from, and the layers prepared last. + std::unordered_map prev_layer_sources; + std::unordered_map last_prepared_layers; + std::vector precomputed_layers; + const PrintObject *current_object; + + const PrecomputedOverhangLayer *precomputed_for(const PrintObject *object) const + { + auto it = std::find_if(precomputed_layers.begin(), precomputed_layers.end(), + [object](const PrecomputedOverhangLayer &layer) { return layer.object == object; }); + return it == precomputed_layers.end() ? nullptr : &*it; + } + + template static const T &or_empty(const std::shared_ptr &tree) + { + static const T empty; + return tree ? *tree : empty; + } public: void set_current_object(const PrintObject *object) { current_object = object; } + // Takes the data computed ahead for the layer about to be generated, replacing the previous layer's. + void set_precomputed_layers(std::vector &&layers) { precomputed_layers = std::move(layers); } + + // Measures the layer against the layer prepared before it. void prepare_for_new_layer(const PrintObject * obj, const Layer *layer) { if (layer == nullptr) return; const PrintObject *object = obj; - prev_layer_boundaries[object] = next_layer_boundaries[object]; - next_layer_boundaries[object] = AABBTreeLines::LinesDistancer{to_unscaled_linesf3(layer->lslices)}; - prev_curled_extrusions[object] = next_curled_extrusions[object]; - next_curled_extrusions[object] = AABBTreeLines::LinesDistancer{layer->curled_lines}; + const Layer *prev = std::exchange(last_prepared_layers[object], layer); + prev_layer_sources[object] = prev; + const PrecomputedOverhangLayer *precomputed = precomputed_for(object); + if (prev == nullptr) { + prev_layer_boundaries[object] = nullptr; + prev_curled_extrusions[object] = nullptr; + } else if (precomputed != nullptr && precomputed->layer == layer && layer->lower_layer == prev) { + prev_layer_boundaries[object] = precomputed->lower_boundaries; + prev_curled_extrusions[object] = precomputed->lower_curled_lines; + } else { + prev_layer_boundaries[object] = std::make_shared(to_unscaled_linesf3(prev->lslices)); + prev_curled_extrusions[object] = std::make_shared(prev->curled_lines); + } } std::vector estimate_extrusion_quality(const ExtrusionPath &path, @@ -526,9 +617,24 @@ public: return std::min(calculate_speed(distance), original_speed); }; + // Precomputed distances hold only if they were measured against the layer prev_layer_boundaries is built from. + const std::unordered_map *known = nullptr; + if (const PrecomputedOverhangLayer *precomputed = precomputed_for(current_object); + precomputed != nullptr && precomputed->layer->lower_layer == prev_layer_sources[current_object]) + known = &precomputed->distances; + const Boundaries &prev_boundaries = or_empty(prev_layer_boundaries[current_object]); + const CurledLines &prev_curled = or_empty(prev_curled_extrusions[current_object]); + auto known_distance = [known](const Point3 &point) -> const double * { + if (known == nullptr) + return nullptr; + auto it = known->find(point); + return it == known->end() ? nullptr : &it->second; + }; + std::vector> extended_points = - estimate_points_properties(path.polyline.points, prev_layer_boundaries[current_object], path.width, -1, - smallest_distance_with_lower_speed, effective_speed, fan_overlap_threshold); + estimate_points_properties(path.polyline.points, prev_boundaries, path.width, -1, + smallest_distance_with_lower_speed, effective_speed, fan_overlap_threshold, + known_distance); const auto width_inv = 1.0f / path.width; std::vector processed_points; processed_points.reserve(extended_points.size()); @@ -542,7 +648,7 @@ public: const double dist_limit = 10.0 * path.width; { Vec3d middle = 0.5 * (curr.position + next.position); - auto line_indices = prev_curled_extrusions[current_object].all_lines_in_radius(Point::new_scale(middle), + auto line_indices = prev_curled.all_lines_in_radius(Point::new_scale(middle), scale_(dist_limit)); if (!line_indices.empty()) { double len = (next.position - curr.position).norm(); @@ -563,7 +669,7 @@ public: double projected_lengths_sum = 0; for (size_t idx : line_indices) { - const CurledLine& line = prev_curled_extrusions[current_object].get_line(idx); + const CurledLine& line = prev_curled.get_line(idx); Lines inside = intersection_ln({{line.a, line.b}}, {box_of_influence}); if (inside.empty()) continue; @@ -576,7 +682,7 @@ public: } for (size_t idx : line_indices) { - const CurledLine &line = prev_curled_extrusions[current_object].get_line(idx); + const CurledLine &line = prev_curled.get_line(idx); float distance_from_curled = unscaled(line_alg::distance_to(line, Point::new_scale(middle))); float dist = path.width * (1.0 - (distance_from_curled / dist_limit)) * (1.0 - (distance_from_curled / dist_limit)) * diff --git a/tests/fff_print/test_extrusion_processor.cpp b/tests/fff_print/test_extrusion_processor.cpp index a3499a71b5..1f55c1b5c1 100644 --- a/tests/fff_print/test_extrusion_processor.cpp +++ b/tests/fff_print/test_extrusion_processor.cpp @@ -7,6 +7,7 @@ #include #include #include "libslic3r/AABBTreeLines.hpp" +#include "libslic3r/GCode.hpp" #include "libslic3r/GCode/ExtrusionProcessor.hpp" #include "libslic3r/GCodeReader.hpp" #include "libslic3r/TriangleMesh.hpp" @@ -15,6 +16,8 @@ #include #include +#include +#include #include #include "libslic3r/Line.hpp" #include "libslic3r/Point.hpp" @@ -538,6 +541,187 @@ TEST_CASE("A wall is left whole where neither its speed nor its cooling changes" REQUIRE(points.size() == 3); } +namespace { + +// The caged overhang box, sliced, and a layer on its slope. +struct SlicedCage +{ + Print print; + Model model; + const PrintObject *object{nullptr}; + const Layer *layer{nullptr}; + + explicit SlicedCage(const DynamicPrintConfig &config = caged_overhang_config("classic")) + { + init_print(std::vector{caged_overhang_mesh()}, print, model, config, nullptr, false); + print.process(); + object = print.objects().front(); + layer = object->get_layer(int(std::lround((caged_slope_z_min + caged_slope_z_max) / 2. / caged_layer_height))); + } +}; + +using Walls = std::vector>; + +// Estimates every wall of `layer` against whatever layer `estimator` was last prepared with before it. +Walls estimate_walls(ExtrusionQualityEstimator &estimator, const PrintObject *object, const Layer &layer) +{ + const ConfigOptionPercents overlaps({90, 75, 50, 25, 13, 0}); + const ConfigOptionFloatsOrPercents speeds({FloatOrPercent{100, true}, FloatOrPercent{50, true}, FloatOrPercent{30, true}, + FloatOrPercent{20, true}, FloatOrPercent{10, true}, FloatOrPercent{5, true}}); + Walls walls; + estimator.set_current_object(object); + for (const LayerRegion *region : layer.regions()) + for_each_extrusion_path(region->perimeters, [&](const ExtrusionPath &path) { + if (is_perimeter(path.role())) + walls.push_back(estimator.estimate_extrusion_quality(path, overlaps, speeds, caged_outer_wall_speed, caged_outer_wall_speed, + true, 0.5f)); + }); + return walls; +} + +uint32_t float_bits(float value) +{ + uint32_t bits; + std::memcpy(&bits, &value, sizeof(bits)); + return bits; +} + +bool same_point(const ProcessedPoint &a, const ProcessedPoint &b) +{ + return a.p == b.p && float_bits(a.speed) == float_bits(b.speed) && float_bits(a.overlap) == float_bits(b.overlap); +} + +// Requires the walls to match point for point, bit for bit. +void check_identical(const Walls &actual, const Walls &expected) +{ + REQUIRE(actual.size() == expected.size()); + for (size_t wall = 0; wall < actual.size(); ++wall) { + INFO("wall " << wall); + REQUIRE(actual[wall].size() == expected[wall].size()); + for (size_t i = 0; i < actual[wall].size(); ++i) { + const ProcessedPoint &a = actual[wall][i]; + const ProcessedPoint &e = expected[wall][i]; + INFO("point " << i << ": speed " << a.speed << " vs " << e.speed << ", overlap " << a.overlap << " vs " << e.overlap); + CHECK(a.p == e.p); + CHECK(float_bits(a.speed) == float_bits(e.speed)); + CHECK(float_bits(a.overlap) == float_bits(e.overlap)); + } + } +} + +bool any_difference(const Walls &a, const Walls &b) +{ + return !std::equal(a.begin(), a.end(), b.begin(), b.end(), [](const std::vector &wa, const std::vector &wb) { + return std::equal(wa.begin(), wa.end(), wb.begin(), wb.end(), same_point); + }); +} + +bool any_slowed(const Walls &walls) +{ + return std::any_of(walls.begin(), walls.end(), [](const std::vector &wall) { + return std::any_of(wall.begin(), wall.end(), [](const ProcessedPoint &point) { return point.speed < caged_outer_wall_speed; }); + }); +} + +} // namespace + +TEST_CASE("Overhang data computed ahead of the generator gives the same wall speeds", "[ExtrusionProcessor]") +{ + const SlicedCage cage; + REQUIRE(cage.layer->lower_layer != nullptr); + + ExtrusionQualityEstimator queried; + queried.prepare_for_new_layer(cage.object, cage.layer->lower_layer); + queried.prepare_for_new_layer(cage.object, cage.layer); + const Walls expected = estimate_walls(queried, cage.object, *cage.layer); + REQUIRE(any_slowed(expected)); + + ExtrusionQualityEstimator precomputed; + precomputed.prepare_for_new_layer(cage.object, cage.layer->lower_layer); + precomputed.set_precomputed_layers({precompute_overhang_layer(cage.object, *cage.layer)}); + precomputed.prepare_for_new_layer(cage.object, cage.layer); + check_identical(estimate_walls(precomputed, cage.object, *cage.layer), expected); +} + +TEST_CASE("Overhang distances measured against another layer than the previous one are not used", "[ExtrusionProcessor]") +{ + const SlicedCage cage; + const Layer *two_below = cage.layer->lower_layer->lower_layer; + REQUIRE(two_below != nullptr); + + ExtrusionQualityEstimator queried; + queried.prepare_for_new_layer(cage.object, two_below); + queried.prepare_for_new_layer(cage.object, cage.layer); + const Walls expected = estimate_walls(queried, cage.object, *cage.layer); + ExtrusionQualityEstimator one_below; + one_below.prepare_for_new_layer(cage.object, cage.layer->lower_layer); + one_below.prepare_for_new_layer(cage.object, cage.layer); + REQUIRE(any_difference(estimate_walls(one_below, cage.object, *cage.layer), expected)); + + ExtrusionQualityEstimator precomputed; + precomputed.prepare_for_new_layer(cage.object, two_below); + precomputed.set_precomputed_layers({precompute_overhang_layer(cage.object, *cage.layer)}); + precomputed.prepare_for_new_layer(cage.object, cage.layer); + check_identical(estimate_walls(precomputed, cage.object, *cage.layer), expected); +} + +TEST_CASE("Overhang data computed for another layer is not used", "[ExtrusionProcessor]") +{ + const SlicedCage cage; + const Layer *one_below = cage.layer->lower_layer; + REQUIRE(one_below != nullptr); + REQUIRE(one_below->lower_layer != nullptr); + + ExtrusionQualityEstimator queried; + queried.prepare_for_new_layer(cage.object, one_below); + queried.prepare_for_new_layer(cage.object, cage.layer); + const Walls expected = estimate_walls(queried, cage.object, *cage.layer); + ExtrusionQualityEstimator two_below; + two_below.prepare_for_new_layer(cage.object, one_below->lower_layer); + two_below.prepare_for_new_layer(cage.object, cage.layer); + REQUIRE(any_difference(estimate_walls(two_below, cage.object, *cage.layer), expected)); + + ExtrusionQualityEstimator precomputed; + precomputed.set_precomputed_layers({precompute_overhang_layer(cage.object, *one_below)}); + precomputed.prepare_for_new_layer(cage.object, one_below); + precomputed.prepare_for_new_layer(cage.object, cage.layer); + check_identical(estimate_walls(precomputed, cage.object, *cage.layer), expected); +} + +TEST_CASE("Precomputed overhang data has the curled-line tree exactly when a region slows down for curled perimeters", "[ExtrusionProcessor]") +{ + const bool slowdown = GENERATE(false, true); + DynamicPrintConfig config = caged_overhang_config("classic"); + config.set_deserialize_strict("slowdown_for_curled_perimeters", slowdown ? "1" : "0"); + const SlicedCage cage(config); + + GCode::LayerToPrint layer; + layer.object_layer = cage.layer; + layer.original_object = cage.object; + const std::vector precomputed = precompute_overhang_layers({layer}, false); + REQUIRE(precomputed.size() == 1); + CHECK((precomputed.front().lower_curled_lines != nullptr) == slowdown); +} + +TEST_CASE("Caged external overhangs are slowed when printed by object or through the pressure equalizer", "[ExtrusionProcessor]") +{ + const auto [key, value] = GENERATE(table({ + {"print_sequence", "by object"}, + {"max_volumetric_extrusion_rate_slope", "10"}, + })); + INFO(key << " = " << value); + DynamicPrintConfig config = caged_overhang_config("classic"); + config.set_deserialize_strict(key, value); + Print print; + Model model; + init_print(std::vector{caged_overhang_mesh()}, print, model, config, nullptr, false); + + const std::vector feed_rates = caged_slope_feed_rates(gcode(print)); + info_feed_rates("caged slope", feed_rates); + REQUIRE_FALSE(feed_rates.empty()); + REQUIRE(*std::max_element(feed_rates.begin(), feed_rates.end()) < caged_slow_speed * MM_PER_MIN); +} + TEST_CASE("Benchmark caged overhang interior sampling", "[ExtrusionProcessor][!benchmark]"){ const char* wall_generator = GENERATE("classic", "arachne"); From 6e0f04815b1902810625202504e338bfeda68224 Mon Sep 17 00:00:00 2001 From: Kris Austin Date: Sat, 3 Oct 2026 11:29:55 -0500 Subject: [PATCH 6/8] perf: speed up G-code export by up to 7% via post-processing fixes (#16031) Co-authored-by: Rodrigo Faselli <162915171+RF47@users.noreply.github.com> --- src/libslic3r/Config.cpp | 13 -- src/libslic3r/GCode.cpp | 8 +- src/libslic3r/GCode/AdaptivePAProcessor.cpp | 9 ++ src/libslic3r/GCode/AdaptivePAProcessor.hpp | 1 + src/libslic3r/GCode/CoolingBuffer.cpp | 10 +- src/libslic3r/GCode/GCodeProcessor.cpp | 108 ++++++++------ src/libslic3r/GCode/GCodeProcessor.hpp | 88 ++++++----- src/libslic3r/GCodeWriter.cpp | 31 ++-- src/libslic3r/LocalesUtils.cpp | 13 ++ src/libslic3r/LocalesUtils.hpp | 3 + src/libslic3r/Utils.hpp | 10 ++ tests/fff_print/test_gcodeprocessor.cpp | 92 ++++++++++++ tests/fff_print/test_multifilament.cpp | 156 +++++++++++++++----- tests/libslic3r/test_locales_utils.cpp | 19 +++ tests/libslic3r/test_utils.cpp | 12 ++ 15 files changed, 416 insertions(+), 157 deletions(-) diff --git a/src/libslic3r/Config.cpp b/src/libslic3r/Config.cpp index 38c5b30118..cac46d7108 100644 --- a/src/libslic3r/Config.cpp +++ b/src/libslic3r/Config.cpp @@ -871,19 +871,6 @@ ConfigSubstitutions ConfigBase::load_from_json(const std::string &file, ForwardC return std::move(substitutions_ctxt.substitutions); } -// Case-insensitive compare of a JSON key against a fixed ASCII one, without -// boost::iequals, whose std::locale() takes a lock the whole process shares in the -// MSVC runtime. -static bool ascii_iequals(const std::string &key, const char *literal) -{ - auto lower = [](char c) { return (c >= 'A' && c <= 'Z') ? char(c - 'A' + 'a') : c; }; - size_t i = 0; - for (; i < key.size() && literal[i] != '\0'; ++ i) - if (lower(key[i]) != lower(literal[i])) - return false; - return i == key.size() && literal[i] == '\0'; -} - int ConfigBase::load_from_json(const std::string &file, ConfigSubstitutionContext& substitution_context, bool load_inherits_to_config, std::map& key_values, std::string& reason) { json j; diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index 7aed4b808b..4599004858 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -806,13 +806,13 @@ static std::vector get_path_of_change_filament(const Print& print) GCodeReader parser; parser.parse_buffer(gcode, [&changes](GCodeReader &parser, const GCodeReader::GCodeLine &line) { const std::string_view cmd = line.cmd(); - if (boost::iequals(cmd, "M204") || boost::iequals(cmd, "M201") || - boost::iequals(cmd, "M202")) + if (ascii_iequals(cmd, "M204") || ascii_iequals(cmd, "M201") || + ascii_iequals(cmd, "M202")) changes.acceleration = true; - else if ((boost::iequals(cmd, "M205") || boost::iequals(cmd, "M207") || boost::iequals(cmd, "M566")) && + else if ((ascii_iequals(cmd, "M205") || ascii_iequals(cmd, "M207") || ascii_iequals(cmd, "M566")) && custom_gcode_line_has_xy_parameter(line.raw())) changes.jerk = true; - else if (boost::iequals(cmd, "SET_VELOCITY_LIMIT")) { + else if (ascii_iequals(cmd, "SET_VELOCITY_LIMIT")) { changes.acceleration |= boost::icontains(line.raw(), "ACCEL="); changes.jerk |= boost::icontains(line.raw(), "SQUARE_CORNER_VELOCITY="); } diff --git a/src/libslic3r/GCode/AdaptivePAProcessor.cpp b/src/libslic3r/GCode/AdaptivePAProcessor.cpp index 21bd308853..2adc03bc34 100644 --- a/src/libslic3r/GCode/AdaptivePAProcessor.cpp +++ b/src/libslic3r/GCode/AdaptivePAProcessor.cpp @@ -41,6 +41,9 @@ AdaptivePAProcessor::AdaptivePAProcessor(GCode &gcodegen) m_pa_change_pattern(R"(; PA_CHANGE:T(\d+) MM3MM:([0-9]*\.[0-9]+) ACCEL:(\d+) BR:(\d+) RC:(\d+) OV:(\d+))"), m_g1_f_pattern(R"(G1 F([0-9]+))") { + const size_t indices = std::max(m_config.adaptive_pressure_advance.size(), m_config.enable_pressure_advance.size()); + for (size_t i = 0; i < indices && !m_enabled; ++i) + m_enabled = m_config.adaptive_pressure_advance.get_at(i) && m_config.enable_pressure_advance.get_at(i); } // Method to get the interpolator for a specific filament config index. @@ -66,6 +69,12 @@ AdaptivePAInterpolator* AdaptivePAProcessor::getInterpolator(unsigned int config * @return A string containing the processed G-code with adaptive pressure advance applied. */ std::string AdaptivePAProcessor::process_layer(std::string &&gcode) { + // Without PA_CHANGE tags the loop below would only terminate the layer's last line. + if (!m_enabled && gcode.find("; PA_CHANGE") == std::string::npos) { + if (!gcode.empty() && gcode.back() != '\n') + gcode += '\n'; + return std::move(gcode); + } std::istringstream stream(gcode); std::string line; std::ostringstream output; diff --git a/src/libslic3r/GCode/AdaptivePAProcessor.hpp b/src/libslic3r/GCode/AdaptivePAProcessor.hpp index c662191536..f3aef6ce82 100644 --- a/src/libslic3r/GCode/AdaptivePAProcessor.hpp +++ b/src/libslic3r/GCode/AdaptivePAProcessor.hpp @@ -78,6 +78,7 @@ private: double m_next_feedrate; ///< First feed rate (speed) for the upcomming island. double m_current_feedrate; ///< Current, latest feedrate. int m_last_config_index; ///< Filament config index of the last PA_CHANGE tag. + bool m_enabled{false}; ///< Whether any filament config index has both PA and adaptive PA on, the only ones that emit PA_CHANGE tags. std::regex m_pa_change_pattern; ///< Regular expression to detect PA_CHANGE pattern. std::regex m_g1_f_pattern; ///< Regular expression to detect G1 F pattern. diff --git a/src/libslic3r/GCode/CoolingBuffer.cpp b/src/libslic3r/GCode/CoolingBuffer.cpp index 6524b3ce38..28a561369b 100644 --- a/src/libslic3r/GCode/CoolingBuffer.cpp +++ b/src/libslic3r/GCode/CoolingBuffer.cpp @@ -1,4 +1,5 @@ #include "../GCode.hpp" +#include "../LocalesUtils.hpp" #include "libslic3r/Extruder.hpp" #include "libslic3r/Point.hpp" #include "libslic3r/libslic3r.h" @@ -408,13 +409,13 @@ std::vector CoolingBuffer::parse_layer_gcode(const std:: if (*c == 0 || *c == ';') break; - assert(is_decimal_separator_point()); // for atof //BBS: Parse the axis. size_t axis = (*c >= 'X' && *c <= 'Z') ? (*c - 'X') : (*c == 'E') ? 3 : (*c == 'F') ? 4 : (*c == 'I') ? 5 : (*c == 'J') ? 6 : size_t(-1); if (axis != size_t(-1)) { - new_pos[axis] = float(atof(++c)); + ++ c; + new_pos[axis] = float(atof_decimal_point(std::string_view(c, sline.data() + sline.size() - c))); if (axis == 4) { // Convert mm/min to mm/sec. new_pos[4] /= 60.f; @@ -550,10 +551,9 @@ std::vector CoolingBuffer::parse_layer_gcode(const std:: line.type = CoolingLine::TYPE_G4; size_t pos_S = sline.find('S', 3); size_t pos_P = sline.find('P', 3); - assert(is_decimal_separator_point()); // for atof line.time = line.time_max = float( - (pos_S > 0) ? atof(sline.c_str() + pos_S + 1) : - (pos_P > 0) ? atof(sline.c_str() + pos_P + 1) * 0.001 : 0.); + (pos_S > 0) ? atof_decimal_point(sline.c_str() + pos_S + 1) : + (pos_P > 0) ? atof_decimal_point(sline.c_str() + pos_P + 1) * 0.001 : 0.); } else if (boost::starts_with(sline, ";_FORCE_RESUME_FAN_SPEED")) { line.type = CoolingLine::TYPE_FORCE_RESUME_FAN; } diff --git a/src/libslic3r/GCode/GCodeProcessor.cpp b/src/libslic3r/GCode/GCodeProcessor.cpp index 760a04eb4d..33b9119116 100644 --- a/src/libslic3r/GCode/GCodeProcessor.cpp +++ b/src/libslic3r/GCode/GCodeProcessor.cpp @@ -909,8 +909,8 @@ public: { // Orca: find start pos by seaching G28/G29/PRINT_START/START_PRINT commands auto is_start_pos = [](const std::string& curr_cmd) { - return boost::iequals(curr_cmd, "G28") || boost::iequals(curr_cmd, "G29") || boost::iequals(curr_cmd, "PRINT_START") || - boost::iequals(curr_cmd, "START_PRINT"); + return ascii_iequals(curr_cmd, "G28") || ascii_iequals(curr_cmd, "G29") || ascii_iequals(curr_cmd, "PRINT_START") || + ascii_iequals(curr_cmd, "START_PRINT"); }; assert(!m_lines.empty()); const float time_step = backtrace.time_step(); @@ -1265,6 +1265,9 @@ void GCodeProcessor::run_post_process() // Process inline placeholders (print_time_total_sec, print_time_day, print_time_hour, print_time_minute, print_time_sec and used_filament_length) auto process_inline_placeholders = [&](std::string& gcode_line) { bool processed = false; + // Every inline placeholder contains '@', so a line without one has nothing to replace. + if (gcode_line.find('@') == std::string::npos) + return processed; const std::string& print_time_total_placeholder = reserved_tag(ETags::Print_Time_Total_Sec_Placeholder); const std::string& print_time_day_placeholder = reserved_tag(ETags::Print_Time_Day_Placeholder); @@ -4007,13 +4010,13 @@ void GCodeProcessor::process_gcode_line(const GCodeReader::GCodeLine& line, bool const std::string_view cmd = line.cmd(); if (m_flavor == gcfKlipper) { - if (boost::iequals(cmd, "SET_VELOCITY_LIMIT")) + if (ascii_iequals(cmd, "SET_VELOCITY_LIMIT")) { process_SET_VELOCITY_LIMIT(line); return; } // ORCA: Add Pressure Advance visualization support - if (boost::iequals(cmd, "SET_PRESSURE_ADVANCE")) + if (ascii_iequals(cmd, "SET_PRESSURE_ADVANCE")) { process_SET_PRESSURE_ADVANCE(line); return; @@ -7551,51 +7554,72 @@ void GCodeProcessor::calculate_time(GCodeProcessorResult& result, size_t keep_la actual_speed_moves = std::move(machine.actual_speed_moves); } - // insert actual speed moves into the move list - unsigned int inserted_actual_speed_moves_count = 0; - std::vector new_moves; - std::map id_map; - for (auto it = actual_speed_moves.begin(); it != actual_speed_moves.end(); ++it) { - const unsigned int base_id = it->move_id + inserted_actual_speed_moves_count; - if (it->position.has_value()) { - // insert actual speed move into the move list - // clone from existing move - GCodeProcessorResult::MoveVertex new_move = result.moves[base_id]; - // override modified parameters - new_move.time = { 0.0f, 0.0f }; - new_move.position = *it->position; - new_move.actual_feedrate = it->actual_feedrate; - new_move.delta_extruder = *it->delta_extruder; - new_move.feedrate = *it->feedrate; - new_move.width = *it->width; - new_move.height = *it->height; - new_move.mm3_per_mm = *it->mm3_per_mm; - new_move.fan_speed = *it->fan_speed; - new_move.temperature = *it->temperature; - new_move.internal_only = true; - new_moves.push_back(new_move); + // actual_speed_moves holds, per block in move order, the moves to insert before the block's move and then an + // entry without a position for that move; positioned entries after the last such entry are dropped. + std::vector& moves = result.moves; + size_t inserted_actual_speed_moves_count = 0; + size_t kept = 0; + size_t group_start = 0; + for (size_t i = 0; i < actual_speed_moves.size(); ++i) { + if (actual_speed_moves[i].position.has_value()) + continue; + const unsigned int move_id = actual_speed_moves[i].move_id; + // A VG1 block has no move of its own, so its id can fall behind the previous block's or point past the list. + if (move_id < moves.size() && (kept == 0 || move_id > actual_speed_moves[kept - 1].move_id)) { + inserted_actual_speed_moves_count += i - group_start; + moves[move_id].actual_feedrate = actual_speed_moves[i].actual_feedrate; + // A seam vertex right after a block's move shares its actual speed. + if (move_id + 1 < moves.size() && moves[move_id + 1].type == EMoveType::Seam) + moves[move_id + 1].actual_feedrate = actual_speed_moves[i].actual_feedrate; + for (size_t j = group_start; j <= i; ++j, ++kept) + if (kept != j) + actual_speed_moves[kept] = std::move(actual_speed_moves[j]); } - else { - result.moves.insert(result.moves.begin() + base_id, new_moves.begin(), new_moves.end()); - id_map[it->move_id] = base_id + new_moves.size(); - // update move actual speed - result.moves[base_id + new_moves.size()].actual_feedrate = it->actual_feedrate; - inserted_actual_speed_moves_count += new_moves.size(); - // synchronize seams actual speed - if (base_id + new_moves.size() + 1 < result.moves.size()) { - GCodeProcessorResult::MoveVertex& move = result.moves[base_id + new_moves.size() + 1]; - if (move.type == EMoveType::Seam) - move.actual_feedrate = it->actual_feedrate; - } - new_moves.clear(); + group_start = i + 1; + } + actual_speed_moves.erase(actual_speed_moves.begin() + kept, actual_speed_moves.end()); + + // Walks the blocks back to front, so each shifted move is moved once, into its final slot. + size_t read = moves.size(); // one past the last move not yet placed + moves.resize(moves.size() + inserted_actual_speed_moves_count); + size_t write = moves.size(); // one past the last free slot + m_actual_speed_id_map.clear(); + size_t entry = actual_speed_moves.size(); + while (entry > 0) { + const unsigned int block_id = actual_speed_moves[--entry].move_id; + assert(block_id < read); + while (read > block_id + 1) + moves[--write] = moves[--read]; + const GCodeProcessorResult::MoveVertex block_move = moves[--read]; + moves[--write] = block_move; + m_actual_speed_id_map.emplace_back(block_id, (unsigned int)write); + for (; entry > 0 && actual_speed_moves[entry - 1].position.has_value(); --entry) { + const TimeMachine::ActualSpeedMove& it = actual_speed_moves[entry - 1]; + GCodeProcessorResult::MoveVertex new_move = block_move; + new_move.time = { 0.0f, 0.0f }; + new_move.position = *it.position; + new_move.actual_feedrate = it.actual_feedrate; + new_move.delta_extruder = *it.delta_extruder; + new_move.feedrate = *it.feedrate; + new_move.width = *it.width; + new_move.height = *it.height; + new_move.mm3_per_mm = *it.mm3_per_mm; + new_move.fan_speed = *it.fan_speed; + new_move.temperature = *it.temperature; + new_move.internal_only = true; + moves[--write] = new_move; } } + assert(read == write); // synchronize blocks' move_ids with after moves for actual speed insertion + std::reverse(m_actual_speed_id_map.begin(), m_actual_speed_id_map.end()); for (size_t i = 0; i < static_cast(PrintEstimatedStatistics::ETimeMode::Count); ++i) { for (GCodeProcessor::TimeBlock& block : m_time_processor.machines[i].blocks) { - auto it = id_map.find(block.move_id); - block.move_id = (it != id_map.end()) ? it->second : block.move_id + inserted_actual_speed_moves_count; + auto it = std::lower_bound(m_actual_speed_id_map.begin(), m_actual_speed_id_map.end(), block.move_id, + [](const std::pair& entry, unsigned int id) { return entry.first < id; }); + block.move_id = (it != m_actual_speed_id_map.end() && it->first == block.move_id) ? + it->second : block.move_id + (unsigned int)inserted_actual_speed_moves_count; } } } diff --git a/src/libslic3r/GCode/GCodeProcessor.hpp b/src/libslic3r/GCode/GCodeProcessor.hpp index cde789cb6c..819b019703 100644 --- a/src/libslic3r/GCode/GCodeProcessor.hpp +++ b/src/libslic3r/GCode/GCodeProcessor.hpp @@ -337,54 +337,57 @@ class Print; //BBS: add mutex for protection of gcode result mutable std::mutex result_mutex; - GCodeProcessorResult& operator=(const GCodeProcessorResult &other) + GCodeProcessorResult& operator=(const GCodeProcessorResult &other) { assign(other); return *this; } + // Declared because the user-declared copy assignment suppresses the implicit move. + GCodeProcessorResult& operator=(GCodeProcessorResult &&other) { assign(std::move(other)); return *this; } + // Add a new member here, or neither assignment transfers it. + template void assign(Other &&other) { - filename = other.filename; - id = other.id; - moves = other.moves; - lines_ends = other.lines_ends; - printable_area = other.printable_area; - bed_exclude_area = other.bed_exclude_area; - wrapping_exclude_area = other.wrapping_exclude_area; - toolpath_outside = other.toolpath_outside; - label_object_enabled = other.label_object_enabled; - long_retraction_when_cut = other.long_retraction_when_cut; - timelapse_warning_code = other.timelapse_warning_code; - printable_height = other.printable_height; - settings_ids = other.settings_ids; - filaments_count = other.filaments_count; - extruder_colors = other.extruder_colors; - filament_diameters = other.filament_diameters; - filament_densities = other.filament_densities; - filament_costs = other.filament_costs; - print_statistics = other.print_statistics; - custom_gcode_per_print_z = other.custom_gcode_per_print_z; - spiral_vase_mode = other.spiral_vase_mode; - warnings = other.warnings; - bed_type = other.bed_type; - gcode_check_result = other.gcode_check_result; - limit_filament_maps = other.limit_filament_maps; - filament_printable_reuslt = other.filament_printable_reuslt; + filename = std::forward(other).filename; + id = std::forward(other).id; + moves = std::forward(other).moves; + lines_ends = std::forward(other).lines_ends; + printable_area = std::forward(other).printable_area; + bed_exclude_area = std::forward(other).bed_exclude_area; + wrapping_exclude_area = std::forward(other).wrapping_exclude_area; + toolpath_outside = std::forward(other).toolpath_outside; + label_object_enabled = std::forward(other).label_object_enabled; + long_retraction_when_cut = std::forward(other).long_retraction_when_cut; + timelapse_warning_code = std::forward(other).timelapse_warning_code; + printable_height = std::forward(other).printable_height; + settings_ids = std::forward(other).settings_ids; + filaments_count = std::forward(other).filaments_count; + extruder_colors = std::forward(other).extruder_colors; + filament_diameters = std::forward(other).filament_diameters; + filament_densities = std::forward(other).filament_densities; + filament_costs = std::forward(other).filament_costs; + print_statistics = std::forward(other).print_statistics; + custom_gcode_per_print_z = std::forward(other).custom_gcode_per_print_z; + spiral_vase_mode = std::forward(other).spiral_vase_mode; + warnings = std::forward(other).warnings; + bed_type = std::forward(other).bed_type; + gcode_check_result = std::forward(other).gcode_check_result; + limit_filament_maps = std::forward(other).limit_filament_maps; + filament_printable_reuslt = std::forward(other).filament_printable_reuslt; // Orca: copy the shared grouping result so a copied result keeps it (shared_ptr => // memory-safe), rather than leaving a stale pointer on the target. No g-code effect either way. - nozzle_group_result = other.nozzle_group_result; + nozzle_group_result = std::forward(other).nozzle_group_result; // Keep the per-extruder hotend types on a copied result (injector input). - extruder_types = other.extruder_types; - printer_extruder_variant = other.printer_extruder_variant; - printer_extruder_id = other.printer_extruder_id; - layer_filaments = other.layer_filaments; - filament_change_sequence = other.filament_change_sequence; - used_mixed_filaments = other.used_mixed_filaments; - nozzle_change_sequence = other.nozzle_change_sequence; - optimal_assignment = other.optimal_assignment; - filament_change_count_map = other.filament_change_count_map; + extruder_types = std::forward(other).extruder_types; + printer_extruder_variant = std::forward(other).printer_extruder_variant; + printer_extruder_id = std::forward(other).printer_extruder_id; + layer_filaments = std::forward(other).layer_filaments; + filament_change_sequence = std::forward(other).filament_change_sequence; + used_mixed_filaments = std::forward(other).used_mixed_filaments; + nozzle_change_sequence = std::forward(other).nozzle_change_sequence; + optimal_assignment = std::forward(other).optimal_assignment; + filament_change_count_map = std::forward(other).filament_change_count_map; // Keep the SKIPPABLE per-type time on a copied result. - skippable_part_time = other.skippable_part_time; - initial_layer_time = other.initial_layer_time; + skippable_part_time = std::forward(other).skippable_part_time; + initial_layer_time = std::forward(other).initial_layer_time; #if ENABLE_GCODE_VIEWER_STATISTICS - time = other.time; + time = std::forward(other).time; #endif - return *this; } void lock() const { result_mutex.lock(); } void unlock() const { result_mutex.unlock(); } @@ -1216,6 +1219,9 @@ class Print; EProducer m_producer; TimeProcessor m_time_processor; + // calculate_time()'s map from each block's move id to its index after the actual speed moves are inserted, + // a member to reuse its capacity. + std::vector> m_actual_speed_id_map; UsedFilaments m_used_filaments; Print* m_print{ nullptr }; diff --git a/src/libslic3r/GCodeWriter.cpp b/src/libslic3r/GCodeWriter.cpp index 667271bcd1..ca18ab791e 100644 --- a/src/libslic3r/GCodeWriter.cpp +++ b/src/libslic3r/GCodeWriter.cpp @@ -465,32 +465,31 @@ std::string GCodeWriter::set_accel_and_jerk(unsigned int acceleration, double je if (EXTRUDER_LIMIT(m_max_acceleration) > 0 && acceleration > EXTRUDER_LIMIT(m_max_acceleration)) acceleration = EXTRUDER_LIMIT(m_max_acceleration); - bool is_empty = true; - std::ostringstream gcode; - gcode << "SET_VELOCITY_LIMIT"; - if (acceleration != 0 && acceleration != m_last_acceleration) { - gcode << " ACCEL=" << acceleration; - if (this->config.accel_to_decel_enable) { - gcode << " ACCEL_TO_DECEL=" << acceleration * this->config.accel_to_decel_factor / 100; - } - m_last_acceleration = acceleration; - is_empty = false; - } // Clamp the jerk to the allowed maximum. if (EXTRUDER_LIMIT(m_max_jerk_x) > 0 && jerk > EXTRUDER_LIMIT(m_max_jerk_x)) jerk = EXTRUDER_LIMIT(m_max_jerk_x); if (EXTRUDER_LIMIT(m_max_jerk_y) > 0 && jerk > EXTRUDER_LIMIT(m_max_jerk_y)) jerk = EXTRUDER_LIMIT(m_max_jerk_y); - if (jerk > 0.01 && !is_approx(jerk, m_last_jerk)) { + const bool set_acceleration = acceleration != 0 && acceleration != m_last_acceleration; + const bool set_jerk = jerk > 0.01 && !is_approx(jerk, m_last_jerk); + if (!set_acceleration && !set_jerk) + return std::string(); + + std::ostringstream gcode; + gcode << "SET_VELOCITY_LIMIT"; + if (set_acceleration) { + gcode << " ACCEL=" << acceleration; + if (this->config.accel_to_decel_enable) { + gcode << " ACCEL_TO_DECEL=" << acceleration * this->config.accel_to_decel_factor / 100; + } + m_last_acceleration = acceleration; + } + if (set_jerk) { gcode << " SQUARE_CORNER_VELOCITY=" << jerk; m_last_jerk = jerk; - is_empty = false; } - if(is_empty) - return std::string(); - if (GCodeWriter::full_gcode_comment) gcode << " ; adjust VELOCITY_LIMIT(accel/jerk)"; gcode << "\n"; diff --git a/src/libslic3r/LocalesUtils.cpp b/src/libslic3r/LocalesUtils.cpp index ead94faeb4..b73861c9db 100644 --- a/src/libslic3r/LocalesUtils.cpp +++ b/src/libslic3r/LocalesUtils.cpp @@ -84,6 +84,19 @@ double string_to_double_decimal_point(const std::string_view str, size_t* pos /* return out; } +double atof_decimal_point(std::string_view str) +{ + size_t i = 0; + while (i < str.size() && (str[i] == ' ' || (str[i] >= '\t' && str[i] <= '\r'))) + ++i; + if (i < str.size() && str[i] == '+') { + ++i; + if (i < str.size() && str[i] == '-') + return 0.; + } + return string_to_double_decimal_point(str.substr(i)); +} + std::string float_to_string_decimal_point(double value, int precision/* = -1*/) { // Our Windows build server fully supports C++17 std::to_chars. Let's use it. diff --git a/src/libslic3r/LocalesUtils.hpp b/src/libslic3r/LocalesUtils.hpp index c212a72e69..c2e020044a 100644 --- a/src/libslic3r/LocalesUtils.hpp +++ b/src/libslic3r/LocalesUtils.hpp @@ -48,6 +48,9 @@ bool is_decimal_separator_point(); std::string float_to_string_decimal_point(double value, int precision = -1); //std::string float_to_string_decimal_point(float value, int precision = -1); double string_to_double_decimal_point(const std::string_view str, size_t* pos = nullptr); +// Parses like atof in the C locale, skipping leading whitespace and a '+', +// without the C runtime's per-call locale lookup. +double atof_decimal_point(std::string_view str); } // namespace Slic3r diff --git a/src/libslic3r/Utils.hpp b/src/libslic3r/Utils.hpp index cc84b93939..29adae1b74 100644 --- a/src/libslic3r/Utils.hpp +++ b/src/libslic3r/Utils.hpp @@ -25,6 +25,8 @@ #include #include #include +#include +#include #include #include @@ -302,6 +304,14 @@ extern bool is_absolute_path_within_root(const boost::filesystem::path &path, co // Anything unknown is not safe. extern bool is_safe_to_open_file_name(const std::string &file_name); +// Case-insensitive compare against a fixed ASCII keyword, without boost::iequals, whose +// std::locale() takes a lock the whole process shares in the MSVC runtime. +inline bool ascii_iequals(std::string_view a, std::string_view b) +{ + auto lower = [](char c) { return (c >= 'A' && c <= 'Z') ? char(c - 'A' + 'a') : c; }; + return a.size() == b.size() && std::equal(a.begin(), a.end(), b.begin(), [&lower](char x, char y) { return lower(x) == lower(y); }); +} + // Orca: custom protocal support utils inline bool is_orca_open(const std::string& url) { return boost::starts_with(url, "orcaslicer://open"); } inline bool is_prusaslicer_open(const std::string& url) { return boost::starts_with(url, "prusaslicer://open"); } diff --git a/tests/fff_print/test_gcodeprocessor.cpp b/tests/fff_print/test_gcodeprocessor.cpp index 6914ec4df9..eeca017220 100644 --- a/tests/fff_print/test_gcodeprocessor.cpp +++ b/tests/fff_print/test_gcodeprocessor.cpp @@ -4,7 +4,12 @@ #include #include "libslic3r/libslic3r.h" #include "libslic3r/GCode/GCodeProcessor.hpp" +#include "libslic3r/Utils.hpp" +#include "test_utils.hpp" + +#include +#include #include #include @@ -79,3 +84,90 @@ TEST_CASE("Reserved keyword detection reports every offending line", "[GCodeProc CHECK(tags.empty()); } } + +namespace { + +// Closed outer-wall squares, each after a fast travel and before an inner-wall move, so the processor +// records seams and inserts actual speed moves. virtual_moves adds a VG1 move after each square. +void process_squares(int squares, GCodeProcessorResult &result, bool virtual_moves = false) +{ + std::ostringstream gcode; + gcode << "M83\nG90\n"; + for (int i = 0; i < squares; ++i) { + gcode << "G1 X10 Y10 Z" << 0.2 * (i + 1) << " F12000\n" + << "; FEATURE: Outer wall\n" + << "G1 X50 Y10 E2 F3000\nG1 X50 Y50 E2\nG1 X10 Y50 E2\nG1 X10 Y10 E2\n" + << "; FEATURE: Inner wall\n" + << "G1 X12 Y12 E0.1\nG1 X30 Y12 E1\n"; + if (virtual_moves) + gcode << "VG1 X20 Y30 F12000\n"; + } + FullPrintConfig config; + config.gcode_flavor.value = gcfMarlinFirmware; + // s_IsBBLPrinter selects the "; FEATURE: " role tags this G-code uses. + const bool was_bbl_printer = GCodeProcessor::s_IsBBLPrinter; + const ScopeGuard restore_bbl_printer([was_bbl_printer] { GCodeProcessor::s_IsBBLPrinter = was_bbl_printer; }); + GCodeProcessor::s_IsBBLPrinter = true; + ScopedTemporaryFile temp(".gcode"); + std::ofstream(temp.string()) << gcode.str(); + GCodeProcessor processor; + processor.apply_config(config); + processor.process_file(temp.string()); + result = std::move(processor.extract_result()); +} + +bool is_block_move(const GCodeProcessorResult::MoveVertex &move) +{ + return !move.internal_only && (move.type == EMoveType::Extrude || move.type == EMoveType::Travel); +} + +} // namespace + +TEST_CASE("Actual speed moves are inserted on their block's segment just before its move", "[GCodeProcessor]") +{ + // 60 squares take several planner passes, which remap the blocks kept between passes. + const int squares = GENERATE(10, 60); + const bool virtual_moves = GENERATE(false, true); + GCodeProcessorResult result; + process_squares(squares, result, virtual_moves); + const auto &moves = result.moves; + constexpr size_t normal = size_t(PrintEstimatedStatistics::ETimeMode::Normal); + + size_t inserted = 0; + for (size_t i = 1; i < moves.size(); ++i) { + if (!moves[i].internal_only) + continue; + ++inserted; + // Inserted moves have zero time, but a VG1 block's time is written to whatever move its move_id names. + if (!virtual_moves) + CHECK(moves[i].time[normal] == 0.f); + size_t block = i + 1; + while (block < moves.size() && moves[block].internal_only) + ++block; + size_t previous = i - 1; + while (previous > 0 && moves[previous].internal_only) + --previous; + REQUIRE(block < moves.size()); + CHECK(moves[block].gcode_id == moves[i].gcode_id); + const Vec3f segment = moves[block].position - moves[previous].position; + const Vec3f offset = moves[i].position - moves[previous].position; + CHECK(segment.cross(offset).norm() / segment.norm() < 1e-3f); + } + REQUIRE(inserted > 0); +} + +TEST_CASE("A seam takes the actual speed of the move it follows", "[GCodeProcessor]") +{ + GCodeProcessorResult result; + // 10 squares fit in one planner pass, so the seam's move and the block after it are timed together. + process_squares(10, result); + const auto &moves = result.moves; + + size_t seams = 0; + for (size_t i = 1; i < moves.size(); ++i) + if (moves[i].type == EMoveType::Seam && is_block_move(moves[i - 1])) { + ++seams; + CHECK_THAT(moves[i].actual_feedrate, Catch::Matchers::WithinAbs(moves[i - 1].actual_feedrate, 1e-4)); + } + REQUIRE(seams > 0); +} diff --git a/tests/fff_print/test_multifilament.cpp b/tests/fff_print/test_multifilament.cpp index 9b9cae23db..d3df8807e3 100644 --- a/tests/fff_print/test_multifilament.cpp +++ b/tests/fff_print/test_multifilament.cpp @@ -22,6 +22,7 @@ #include "libslic3r/Print.hpp" #include #include +#include #include #include #include @@ -842,6 +843,47 @@ TEST_CASE("Each filament sets the pressure advance of its extruder variant", "[M } } +// A two-extruder printer, Standard nozzle on extruder 1 and High Flow on extruder 2, whose per-variant arrays +// hold filament 1 Standard, filament 1 High Flow, filament 2 Standard and filament 2 High Flow. +static DynamicPrintConfig two_extruder_pressure_advance_config(const std::string &filament_map, const std::string &adaptive_pressure_advance, + int wall_filament, int infill_filament) +{ + DynamicPrintConfig config = multifilament_config(2, { + { "gcode_flavor", "klipper" }, + { "single_extruder_multi_material", 0 }, + { "nozzle_diameter", "0.4,0.4" }, + { "extruder_printable_height", "0,0" }, + { "printer_extruder_id", "1,2" }, + { "printer_extruder_variant", "Direct Drive Standard;Direct Drive High Flow" }, + { "extruder_variant_list", "Direct Drive Standard;Direct Drive High Flow" }, + { "filament_map", filament_map }, + { "filament_extruder_variant", "Direct Drive Standard;Direct Drive High Flow;Direct Drive Standard;Direct Drive High Flow" }, + { "filament_self_index", "1,1,2,2" }, + { "enable_pressure_advance", "1,1,1,1" }, + { "pressure_advance", "0.021,0.037,0.043,0.049" }, + { "adaptive_pressure_advance", adaptive_pressure_advance }, + { "sparse_infill_filament_id", infill_filament }, + { "internal_solid_filament_id", infill_filament }, + { "top_surface_filament_id", infill_filament }, + { "bottom_surface_filament_id", infill_filament }, + { "outer_wall_filament_id", wall_filament }, + { "inner_wall_filament_id", wall_filament }, + { "enable_prime_tower", 0 }, + { "skirt_loops", 0 }, + { "brim_type", "no_brim" }, + // custom G-code indexes the per-filament arrays by filament + { "machine_start_gcode", "; start pressure advance {pressure_advance[initial_extruder]}" }, + }); + config.option("adaptive_pressure_advance_model")->values = { + constant_pressure_advance_model("0.012"), constant_pressure_advance_model("0.034"), + constant_pressure_advance_model("0.056"), constant_pressure_advance_model("0.078") }; + config.option("extruder_type", true)->values = { etDirectDrive, etDirectDrive }; + config.option("nozzle_volume_type", true)->values = { nvtStandard, nvtHighFlow }; + // print each filament on the extruder filament_map gives it + config.option>("filament_map_mode", true)->value = fmmManual; + return config; +} + // On a printer with two extruders, a filament takes the pressure advance of the variant of the extruder // it is mapped to, whichever filament and extruder that is. TEST_CASE("Each filament sets the pressure advance of its extruder variant on a two-extruder printer", "[MultiFilament]") @@ -857,42 +899,8 @@ TEST_CASE("Each filament sets the pressure advance of its extruder variant on a // the other filament goes on the other extruder const std::string filament_map = filament == 1 ? std::to_string(extruder) + "," + std::to_string(3 - extruder) : std::to_string(3 - extruder) + "," + std::to_string(extruder); - DynamicPrintConfig config = multifilament_config(2, { - { "gcode_flavor", "klipper" }, - { "single_extruder_multi_material", 0 }, - { "nozzle_diameter", "0.4,0.4" }, - { "extruder_printable_height", "0,0" }, - // extruder 1 has a Standard nozzle, extruder 2 a High Flow one - { "printer_extruder_id", "1,2" }, - { "printer_extruder_variant", "Direct Drive Standard;Direct Drive High Flow" }, - { "extruder_variant_list", "Direct Drive Standard;Direct Drive High Flow" }, - { "filament_map", filament_map }, - // both filaments define Standard and High Flow - { "filament_extruder_variant", "Direct Drive Standard;Direct Drive High Flow;Direct Drive Standard;Direct Drive High Flow" }, - { "filament_self_index", "1,1,2,2" }, - { "enable_pressure_advance", "1,1,1,1" }, - { "pressure_advance", "0.021,0.037,0.043,0.049" }, - { "adaptive_pressure_advance", adaptive ? "1,1,1,1" : "0,0,0,0" }, - { "sparse_infill_filament_id", filament }, - { "internal_solid_filament_id", filament }, - { "top_surface_filament_id", filament }, - { "bottom_surface_filament_id", filament }, - { "outer_wall_filament_id", filament }, - { "inner_wall_filament_id", filament }, - { "enable_prime_tower", 0 }, - { "skirt_loops", 0 }, - { "brim_type", "no_brim" }, - // custom G-code indexes the per-filament arrays by filament - { "machine_start_gcode", "; start pressure advance {pressure_advance[initial_extruder]}" }, - }); - config.option("adaptive_pressure_advance_model")->values = { - constant_pressure_advance_model("0.012"), constant_pressure_advance_model("0.034"), - constant_pressure_advance_model("0.056"), constant_pressure_advance_model("0.078") }; - config.option("extruder_type", true)->values = { etDirectDrive, etDirectDrive }; - config.option("nozzle_volume_type", true)->values = { nvtStandard, nvtHighFlow }; - // keep the mapping above rather than grouping the filaments automatically - config.option>("filament_map_mode", true)->value = fmmManual; - const std::string gcode = slice({ cube(20) }, config); + const std::string gcode = slice({ cube(20) }, + two_extruder_pressure_advance_config(filament_map, adaptive ? "1,1,1,1" : "0,0,0,0", filament, filament)); std::set expected{ pressure_advance }; if (adaptive) @@ -902,6 +910,82 @@ TEST_CASE("Each filament sets the pressure advance of its extruder variant on a } } +// Filament 1 prints the walls on extruder 1 (variant index 0), filament 2 the infill on extruder 2 (variant index 3). +TEST_CASE("Adaptive pressure advance on one extruder leaves the other extruder's pressure advance alone", "[MultiFilament]") +{ + auto [adaptive, expected] = GENERATE(table>({ + { "1,0,0,0", { "0.021", "0.049", "0.012" } }, + { "0,0,0,1", { "0.021", "0.049", "0.078" } }, + })); + DYNAMIC_SECTION("adaptive " << adaptive) { + const std::string gcode = slice({ cube(20) }, two_extruder_pressure_advance_config("1,2", adaptive, 1, 2)); + CHECK(pressure_advance_values(gcode) == expected); + } +} + +// The pressure advance values a Klipper G-code sets while `tool` is active, in order, without repeating the value already set. +static std::vector pressure_advance_sequence(const std::string &gcode, int tool) +{ + const std::string token = "SET_PRESSURE_ADVANCE ADVANCE="; + std::vector values; + int current_tool = 0; + std::istringstream stream(gcode); + for (std::string line; std::getline(stream, line);) { + if (line.size() > 1 && line[0] == 'T' && std::isdigit((unsigned char) line[1])) + current_tool = std::stoi(line.substr(1)); + else if (current_tool == tool && line.rfind(token, 0) == 0) { + std::string value = line.substr(token.size(), line.find(';') - token.size()); + if (values.empty() || values.back() != value) + values.push_back(std::move(value)); + } + } + return values; +} + +TEST_CASE("Adaptive pressure advance predicts the same values after layers only a non-adaptive extruder prints", "[MultiFilament]") +{ + auto slice_with = [](const std::string &adaptive) { + DynamicPrintConfig config = two_extruder_pressure_advance_config("1,2", adaptive, 1, 1); + config.set_deserialize_strict({ + { "print_sequence", "by object" }, + // extruder 2 moves at one speed on its first layer, so no G1 F follows its first PA_CHANGE tag + { "filament_max_volumetric_speed", "100" }, + { "slow_down_for_layer_cooling", "0" }, + { "travel_speed", "120,40" }, + { "retraction_speed", "30,40" }, + { "deretraction_speed", "30,40" }, + { "initial_layer_speed", "30,40" }, + { "initial_layer_infill_speed", "60,40" }, + }); + auto &models = config.option("adaptive_pressure_advance_model")->values; + // with adaptive pressure advance on, filament 1 gets PA_CHANGE tags on every layer but keeps its pressure advance + models[0] = constant_pressure_advance_model("0.021"); + // a prediction that rises with flow, so it depends on the print speed + models[3] = "0.01,1,1000\n0.09,40,1000\n0.01,1,100000\n0.09,40,100000"; + return slice_with_object_overrides({ cube(20), cube(20) }, config, + { {}, { { "outer_wall_filament_id", 2 }, { "inner_wall_filament_id", 2 }, { "sparse_infill_filament_id", 2 }, + { "internal_solid_filament_id", 2 }, { "top_surface_filament_id", 2 }, { "bottom_surface_filament_id", 2 } } }); + }; + const std::vector expected = pressure_advance_sequence(slice_with("1,0,0,1"), 1); + REQUIRE(expected.size() > 2); + CHECK(pressure_advance_sequence(slice_with("0,0,0,1"), 1) == expected); +} + +TEST_CASE("Adaptive pressure advance on an unused extruder variant leaves the G-code unchanged", "[MultiFilament]") +{ + const std::string adaptive = GENERATE("0,1,0,0", "0,0,1,0"); + DYNAMIC_SECTION("adaptive " << adaptive) { + // the time and object ids differ between any two slices, and the config block lists the setting itself + auto masked = [](const std::string &gcode) { + return std::regex_replace(gcode.substr(0, gcode.find("; CONFIG_BLOCK_START")), std::regex("; generated by .*| id:\\d+"), ""); + }; + const std::string reference = masked(slice({ cube(20) }, two_extruder_pressure_advance_config("1,2", "0,0,0,0", 1, 2))); + const std::string gcode = masked(slice({ cube(20) }, two_extruder_pressure_advance_config("1,2", adaptive, 1, 2))); + REQUIRE(reference.find("SET_PRESSURE_ADVANCE") != std::string::npos); + CHECK(gcode == reference); + } +} + // The speeds, in percent, a G-code turns a fan on at: the part cooling fan for `M106 S`, the auxiliary // fan for `M106 P2 S`. static std::set fan_speeds(const std::string &gcode, const std::string &command) diff --git a/tests/libslic3r/test_locales_utils.cpp b/tests/libslic3r/test_locales_utils.cpp index 2bb134af6b..7de755e15c 100644 --- a/tests/libslic3r/test_locales_utils.cpp +++ b/tests/libslic3r/test_locales_utils.cpp @@ -69,3 +69,22 @@ TEST_CASE("a setter nested in another sets C again when the locale changed betwe CHECK_FALSE(is_decimal_separator_point()); } } + +TEST_CASE("atof_decimal_point parses what atof parses in the C locale", "[LocalesUtils]") +{ + const auto [text, value] = GENERATE(table({ + { "5", 5. }, + { " 12.5", 12.5 }, + { "\t+3", 3. }, + { "\r\n7", 7. }, + { "-1.25", -1.25 }, + { "1e2", 100. }, + { ".5", 0.5 }, + { "12.5;comment", 12.5 }, + { "+-5", 0. }, + { "", 0. }, + { "abc", 0. }, + })); + INFO(text); + CHECK_THAT(atof_decimal_point(text), Catch::Matchers::WithinAbs(value, 1e-12)); +} diff --git a/tests/libslic3r/test_utils.cpp b/tests/libslic3r/test_utils.cpp index 35094f056a..49161d5d6c 100644 --- a/tests/libslic3r/test_utils.cpp +++ b/tests/libslic3r/test_utils.cpp @@ -509,3 +509,15 @@ TEST_CASE("is_safe_to_open_file_name rejects programs and anything it does not k INFO(unsafe); CHECK_FALSE(is_safe_to_open_file_name(unsafe)); } + +TEST_CASE("ascii_iequals compares ASCII letters regardless of case", "[Utils]") { + CHECK(ascii_iequals("set_velocity_limit", "SET_VELOCITY_LIMIT")); + CHECK(ascii_iequals("G28", "g28")); + CHECK(ascii_iequals("", "")); + CHECK_FALSE(ascii_iequals("G28", "G29")); + CHECK_FALSE(ascii_iequals("G2", "G28")); + CHECK_FALSE(ascii_iequals("G28", "G2")); + // Non-letters 0x20 apart are not equal. + CHECK_FALSE(ascii_iequals("[", "{")); + CHECK_FALSE(ascii_iequals("@", "`")); +} From 52ff374870909bea317b2672e6e27aba2d8b344c Mon Sep 17 00:00:00 2001 From: HanifKoh <76276251+HanifKoh@users.noreply.github.com> Date: Sun, 4 Oct 2026 00:36:10 +0800 Subject: [PATCH 7/8] Refresh a CLI Project's Filament Settings From Their System Presets (#16038) * Refresh a CLI Project's Filament Settings From Their System Presets The CLI loads a project's printer and process settings as the GUI does, taking every key the project does not list as changed from the current system preset, but it kept the stored filament values. A project saved before a profile update then sliced with old filament values on the command line and with the current ones in the GUI. Every project filament that no loaded filament replaces is now resolved by its system preset name and fed to the filament merge the up-to-date path already uses, which keeps the keys listed in different_settings_to_system and maps per-variant values onto the preset's variants. This covers a plain run, --uptodate without --uptodate-filaments, and the slots --load-filaments leaves empty. The merge tells refreshed entries from loaded ones per entry instead of by the global loaded-filament count, and the entries are kept in slot order. A project filament saved under a name the presets have since split per nozzle is resolved through the name conversion the GUI uses, which PresetBundle now exposes. * Check the Project Refresh Test's Result Directly Shellcheck SC2181: test the checker's exit status in the if instead of reading $? afterwards. --- src/OrcaSlicer.cpp | 41 +++++++++++++++++++--- src/libslic3r/PresetBundle.cpp | 2 +- src/libslic3r/PresetBundle.hpp | 3 ++ tests/cli/test_cli_project_missing_keys.sh | 39 ++++++++++++++------ 4 files changed, 70 insertions(+), 15 deletions(-) diff --git a/src/OrcaSlicer.cpp b/src/OrcaSlicer.cpp index 992a9c9bc2..b1cdc6e7f8 100644 --- a/src/OrcaSlicer.cpp +++ b/src/OrcaSlicer.cpp @@ -2823,6 +2823,37 @@ int CLI::run(int argc, char **argv) fetch_compatible_values = true; } + // Refresh every project filament no loaded filament replaces from its current system preset, as the GUI + // does when it loads the project; the filament merge below keeps the keys the project lists as changed. + // Entries stay in slot order, which the merge's variant bookkeeping relies on. + std::vector load_filaments_refresh(load_filaments_config.size(), false); + if (is_bbl_3mf && new_printer_name.empty()) { + const ConfigOptionStrings *project_filament_ids = m_print_config.option("filament_ids"); + for (size_t index = 0; index < current_filaments_system_name.size(); index++) { + const int slot = static_cast(index) + 1; + if (std::find(load_filaments_index.begin(), load_filaments_index.end(), slot) != load_filaments_index.end()) + continue; + std::string system_name = current_filaments_system_name[index]; + if (system_name.empty()) + continue; + PresetBundle::convert_filament_preset_name(current_printer_name, system_name); + DynamicPrintConfig config; + std::string error; + if (!ensure_system_preset_resolver().resolve_system_preset(config, Preset::TYPE_FILAMENT, system_name, config_substitution_rule, error)) { + BOOST_LOG_TRIVIAL(warning) << boost::format("CLI: system filament preset '%1%' not resolved (%2%); filament %3% keeps its values") % system_name % error % slot; + continue; + } + const size_t at = std::upper_bound(load_filaments_index.begin(), load_filaments_index.end(), slot) - load_filaments_index.begin(); + load_filaments_id.insert(load_filaments_id.begin() + at, + project_filament_ids != nullptr && index < project_filament_ids->size() ? project_filament_ids->values[index] : std::string()); + load_filaments_name.insert(load_filaments_name.begin() + at, system_name); + load_filaments_config.insert(load_filaments_config.begin() + at, std::move(config)); + load_filaments_index.insert(load_filaments_index.begin() + at, slot); + load_filaments_inherit.insert(load_filaments_inherit.begin() + at, system_name); + load_filaments_refresh.insert(load_filaments_refresh.begin() + at, true); + } + } + //fetch upward_compatible_machine if (fetch_upward_values) { if (!current_printer_system_name.empty()) { @@ -3513,7 +3544,7 @@ int CLI::run(int argc, char **argv) } //set the filament settings into print config - if ((load_filament_count > 0) || (up_config_to_date)) + if ((load_filament_count > 0) || (up_config_to_date) || !load_filaments_config.empty()) { //std::vector filament_variant_count(filament_count, 1); std::vector old_start_indice(filament_count, 0); @@ -3572,6 +3603,8 @@ int CLI::run(int argc, char **argv) for (int index = 0; index < load_filaments_config.size(); index++) { DynamicPrintConfig& config = load_filaments_config[index]; int filament_index = load_filaments_index[index]; + // A filament given with --load-filaments replaces the slot; a refreshed one keeps the project's changed keys. + const bool loaded = load_filament_count > 0 && !load_filaments_refresh[index]; std::vector different_keys; //ORCA: diff before load_default_gcodes_to_config, the way the process and machine @@ -3581,12 +3614,12 @@ int CLI::run(int argc, char **argv) // compared" to "compared as empty against the parent" and land in the column // as an override the user never made. std::string filament_different_settings; - if (load_filament_count > 0) + if (loaded) filament_different_settings = cli_different_settings(config, load_filaments_inherit[index], Preset::TYPE_FILAMENT); load_default_gcodes_to_config(config, Preset::TYPE_FILAMENT); - if (load_filament_count > 0) { + if (loaded) { ConfigOptionStrings *opt_filament_settings = static_cast (m_print_config.option("filament_settings_id", true)); std::string& filament_name = load_filaments_name[index]; ConfigOptionString* filament_name_setting = new ConfigOptionString(filament_name); @@ -3658,7 +3691,7 @@ int CLI::run(int argc, char **argv) flush_and_exit(CLI_CONFIG_FILE_ERROR); } - if ((load_filament_count == 0) && !different_keys_set.empty()) + if (!loaded && !different_keys_set.empty()) { std::set::iterator iter = different_keys_set.find(opt_key); if ( iter != different_keys_set.end()) { diff --git a/src/libslic3r/PresetBundle.cpp b/src/libslic3r/PresetBundle.cpp index 87ffa1a822..768321958d 100644 --- a/src/libslic3r/PresetBundle.cpp +++ b/src/libslic3r/PresetBundle.cpp @@ -5310,7 +5310,7 @@ static void apply_receiver_mix_relocations(DynamicPrintConfig& //convert the old filament preset to new one after split -static void convert_filament_preset_name(std::string& machine_name, std::string& filament_name) +void PresetBundle::convert_filament_preset_name(const std::string& machine_name, std::string& filament_name) { auto machine_iter = filament_preset_convert.find(machine_name); if (machine_iter != filament_preset_convert.end()) diff --git a/src/libslic3r/PresetBundle.hpp b/src/libslic3r/PresetBundle.hpp index 46d81a9052..5050696459 100644 --- a/src/libslic3r/PresetBundle.hpp +++ b/src/libslic3r/PresetBundle.hpp @@ -247,6 +247,9 @@ public: // Keys a project keeps when its presets are loaded: those listed in its escaped // "different_settings_to_system" entry for the preset, plus the preset bookkeeping keys. static std::set project_different_keys(const std::string &different_settings); + // A project filament saved under a name the current presets split per nozzle (e.g. H2D 0.6) is loaded from + // the preset that now holds its values. + static void convert_filament_preset_name(const std::string& machine_name, std::string& filament_name); PresetBundle(); PresetBundle(const PresetBundle &rhs); diff --git a/tests/cli/test_cli_project_missing_keys.sh b/tests/cli/test_cli_project_missing_keys.sh index 4c55709ea0..f20a2eb822 100644 --- a/tests/cli/test_cli_project_missing_keys.sh +++ b/tests/cli/test_cli_project_missing_keys.sh @@ -1,11 +1,13 @@ #!/usr/bin/env bash -# End-to-end check that the CLI loads a project's printer and process settings as the GUI does. +# End-to-end check that the CLI loads a project's printer, process and filament settings as the GUI does. # # The GUI takes every key a project does not list as changed from the project's current system preset: # keys saved before an option existed, and keys holding an older system value. Keys the project lists # in different_settings_to_system keep the project's value. A project is exported from the shipped -# Bambu Lab P1S presets; one printer key and one process key are removed, one printer key and one -# process key are changed without being listed, one key is changed and listed, and it is sliced again. +# Bambu Lab P1S presets with two filaments; one printer key and one process key are removed, one printer +# key, one process key and two filament keys (one per filament, one per extruder variant) are changed +# without being listed, one process key and the first filament's density are changed and listed, and it +# is sliced again: as is, with --uptodate, and with --load-filaments replacing only the second filament. # # usage: test_cli_project_missing_keys.sh set -u @@ -45,7 +47,7 @@ slice() { slice base "$WORK/cube.stl" \ --load-settings "$PROFILES/machine/Bambu Lab P1S 0.4 nozzle.json;$PROFILES/process/0.20mm Standard @BBL X1C.json" \ - --load-filaments "$PROFILES/filament/Bambu PLA Basic @BBL P1S 0.4 nozzle.json" + --load-filaments "$PROFILES/filament/Bambu PLA Basic @BBL P1S 0.4 nozzle.json;$PROFILES/filament/Bambu PLA Basic @BBL P1S 0.4 nozzle.json" # The removed keys, with their option defaults from PrintConfig.cpp; stale keys changed without being # listed as different, which must come back with the system value; and a listed key the project keeps. @@ -67,30 +69,47 @@ with zipfile.ZipFile(src) as zin, zipfile.ZipFile(dst, "w", zipfile.ZIP_DEFLATED for key in ("top_shell_layers", "extruder_clearance_height_to_rod"): expected[key] = config[key] config[key] = str(int(float(config[key])) + 1) + for key in ("filament_cost", "filament_max_volumetric_speed"): + expected[key] = config[key] + config[key] = [str(float(v) + 1) for v in config[key]] expected["wall_loops"] = str(int(config["wall_loops"]) + 1) config["wall_loops"] = expected["wall_loops"] + expected["filament_density"] = [str(float(config["filament_density"][0]) + 1)] + config["filament_density"][1:] + config["filament_density"] = [expected["filament_density"][0]] + [str(float(v) + 1) for v in config["filament_density"][1:]] + # One entry for the process, one per filament, one for the printer. different = config["different_settings_to_system"] different[0] = ";".join([k for k in different[0].split(";") if k] + ["wall_loops"]) + different[1] = ";".join([k for k in different[1].split(";") if k] + ["filament_density"]) data = json.dumps(config, indent=4) zout.writestr(item, data) with open(dst + ".expected.json", "w") as f: json.dump(expected, f) EOF -slice project "$WORK/old.3mf" - -"$PY" - "$WORK/project/out.3mf" "$WORK/old.3mf.expected.json" <<'EOF' +check() { + if ! "$PY" - "$WORK/$1/out.3mf" "$WORK/old.3mf.expected.json" "$1" <<'EOF' import json, sys, zipfile with zipfile.ZipFile(sys.argv[1]) as z: config = json.loads(z.read("Metadata/project_settings.config")) with open(sys.argv[2]) as f: expected = json.load(f) -errors = ["%s is %r, want %r" % (key, config.get(key), want) for key, want in expected.items() if config.get(key) != want] +errors = ["%s: %s is %r, want %r" % (sys.argv[3], key, config.get(key), want) for key, want in expected.items() if config.get(key) != want] for e in errors: print("FAIL: " + e) sys.exit(1 if errors else 0) EOF -status=$? -[ "$status" -eq 0 ] || { tail -n 40 "$WORK/project/log"; exit 1; } + then + tail -n 40 "$WORK/$1/log" + exit 1 + fi +} + +slice project "$WORK/old.3mf" +check project +slice uptodate "$WORK/old.3mf" --uptodate +check uptodate +# The replaced second filament takes the system values the refresh would have given it. +slice partial "$WORK/old.3mf" --load-filaments ";$PROFILES/filament/Bambu PLA Basic @BBL P1S 0.4 nozzle.json" +check partial echo "PASS" From a80c323614e4e4e6beb885499afc3b4e886c4457 Mon Sep 17 00:00:00 2001 From: HanifKoh <76276251+HanifKoh@users.noreply.github.com> Date: Sun, 4 Oct 2026 00:40:38 +0800 Subject: [PATCH 8/8] Let the CLI Resolve Presets on Installs That Ship Preset Caches Only (#16047) Release builds install each vendor as its preset cache alone. The read-only preset load the CLI uses to resolve an inheriting user preset passed allow_cache = false to keep caches from being written, which also stopped them from being read, so every vendor fell back to JSONs that are not installed and the CLI failed. The flag now only gates writing: a read-only load reads caches and writes none. The filament library is also read from its cache whenever that is all that is installed, so a vendor updated over the air still resolves against it. --- src/libslic3r/PresetBundle.cpp | 22 +-- src/libslic3r/PresetBundle.hpp | 4 +- .../libslic3r/test_preset_bundle_loading.cpp | 125 ++++++++++++++++++ 3 files changed, 140 insertions(+), 11 deletions(-) diff --git a/src/libslic3r/PresetBundle.cpp b/src/libslic3r/PresetBundle.cpp index 768321958d..54cc2b1f60 100644 --- a/src/libslic3r/PresetBundle.cpp +++ b/src/libslic3r/PresetBundle.cpp @@ -626,13 +626,15 @@ const PresetBundle *PresetBundle::load_source_vendor(const boost::filesystem::pa return it->second.get(); // The library loads with no base of its own, so the tree a vendor inherits from - // is the same one that resolves the library's own presets. - const std::string library_file = std::string(ORCA_FILAMENT_LIBRARY); - const PresetBundle *library = nullptr; - if (vendor_id != ORCA_FILAMENT_LIBRARY && - (boost::filesystem::is_regular_file(root_dir / (library_file + ".json")) || - (allow_cache && boost::filesystem::is_regular_file(root_dir / (library_file + ".opc"))))) { - library = load_source_vendor(root_dir, ORCA_FILAMENT_LIBRARY, compatibility_rule, error, allow_cache); + // is the same one that resolves the library's own presets. It is only a base, so + // it comes from its cache whenever that is all that is installed, even when the + // vendor itself is parsed (a vendor updated over the air). + const std::string library_file = std::string(ORCA_FILAMENT_LIBRARY); + const bool library_json = boost::filesystem::is_regular_file(root_dir / (library_file + ".json")); + const bool library_cache_only = !library_json && boost::filesystem::is_regular_file(root_dir / (library_file + ".opc")); + const PresetBundle *library = nullptr; + if (vendor_id != ORCA_FILAMENT_LIBRARY && (library_json || library_cache_only)) { + library = load_source_vendor(root_dir, ORCA_FILAMENT_LIBRARY, compatibility_rule, error, allow_cache || library_cache_only); if (library == nullptr) { error = "OrcaFilamentLibrary contains invalid presets"; return nullptr; @@ -2576,7 +2578,7 @@ void PresetBundle::clear_printer_hold_aliases() //BBS: add json related logic, load system presets from json std::pair PresetBundle::load_system_presets_from_json( - ForwardCompatibilitySubstitutionRule compatibility_rule, bool allow_cache) + ForwardCompatibilitySubstitutionRule compatibility_rule, bool write_caches) { //BBS: add config related logs BOOST_LOG_TRIVIAL(debug) << __FUNCTION__ << boost::format(" enter, compatibility_rule %1%")%compatibility_rule; @@ -2596,14 +2598,14 @@ std::pair PresetBundle::load_system_pre // The vendors below are loaded whole and against each other — the filament // library first, then every other vendor with it as the base — so each parse // is complete enough to be worth caching. - m_generate_vendor_caches = allow_cache && (m_generate_vendor_caches || !validation_mode); + m_generate_vendor_caches = write_caches && (m_generate_vendor_caches || !validation_mode); // Sorted, so any duplicate-preset warning comes out in the same order on every run. std::vector vendors; for (const std::string& name : vendor_names_in(dir)) if (name == ORCA_FILAMENT_LIBRARY || !(validation_mode && !vendor_to_validate.empty() && name != vendor_to_validate)) vendors.push_back({ name, dir }); - auto result = this->load_vendors(vendors, compatibility_rule, allow_cache); + auto result = this->load_vendors(vendors, compatibility_rule, true); this->update_system_maps(); diff --git a/src/libslic3r/PresetBundle.hpp b/src/libslic3r/PresetBundle.hpp index 5050696459..dac55c4130 100644 --- a/src/libslic3r/PresetBundle.hpp +++ b/src/libslic3r/PresetBundle.hpp @@ -851,7 +851,9 @@ private: //std::pair load_system_presets(ForwardCompatibilitySubstitutionRule compatibility_rule); //BBS: add json related logic - std::pair load_system_presets_from_json(ForwardCompatibilitySubstitutionRule compatibility_rule, bool allow_cache = true); + // Reads each vendor from its preset cache where one covers the profile, as every load does. + // write_caches = false keeps a read-only load from writing caches into the data directory. + std::pair load_system_presets_from_json(ForwardCompatibilitySubstitutionRule compatibility_rule, bool write_caches = true); // Update the multicolor information for filaments. void update_filament_multi_color(); // Update renamed_from and alias maps of system profiles. diff --git a/tests/libslic3r/test_preset_bundle_loading.cpp b/tests/libslic3r/test_preset_bundle_loading.cpp index c8cc1784de..11e66a90b1 100644 --- a/tests/libslic3r/test_preset_bundle_loading.cpp +++ b/tests/libslic3r/test_preset_bundle_loading.cpp @@ -5816,6 +5816,131 @@ TEST_CASE("A system preset no vendor lists is not resolved", "[Preset][Bundle]") namespace { +// Writes each vendor's preset cache into dir, then deletes its profile JSONs: what a release build installs. +void reduce_vendors_to_caches(const fs::path &dir, const std::vector &vendor_ids) +{ + const std::string lib(PresetBundle::ORCA_FILAMENT_LIBRARY); + PresetBundle library; + if (fs::exists(dir / (lib + ".json"))) { + library.set_generate_vendor_caches(true); + library.load_vendor_configs_from_json(dir.string(), lib, PresetBundle::LoadSystem, + ForwardCompatibilitySubstitutionRule::EnableSilent); + } + for (const std::string &vendor_id : vendor_ids) { + if (vendor_id == lib) + continue; + PresetBundle writer; + writer.set_generate_vendor_caches(true); + writer.load_vendor_configs_from_json(dir.string(), vendor_id, PresetBundle::LoadSystem, + ForwardCompatibilitySubstitutionRule::EnableSilent, &library); + } + for (const std::string &vendor_id : vendor_ids) { + REQUIRE(fs::exists(dir / (vendor_id + ".opc"))); + fs::remove(dir / (vendor_id + ".json")); + fs::remove_all(dir / vendor_id); + } +} + +// The filament library with one abstract base filament, and an "Acme" vendor whose one filament inherits it. +void write_library_and_acme_filament(const fs::path &root) +{ + const std::string lib(PresetBundle::ORCA_FILAMENT_LIBRARY); + fs::create_directories(root / lib / "filament"); + std::ofstream((root / (lib + ".json")).string()) + << R"({"version":"1.0.0","name":")" << lib << R"(",)" + << R"("filament_list":[{"name":"Generic PLA","sub_path":"filament/generic_pla.json"}]})"; + std::ofstream((root / lib / "filament" / "generic_pla.json").string()) + << R"({"type":"filament","name":"Generic PLA","from":"system","instantiation":"false","filament_id":"GFL99","filament_cost":"27"})"; + fs::create_directories(root / "Acme" / "filament"); + std::ofstream((root / "Acme.json").string()) + << R"({"version":"1.0.0","name":"Acme","filament_list":[{"name":"Acme PLA","sub_path":"filament/pla.json"}]})"; + std::ofstream((root / "Acme" / "filament" / "pla.json").string()) + << R"({"type":"filament","name":"Acme PLA","from":"system","instantiation":"true","inherits":"Generic PLA"})"; +} + +} // namespace + +TEST_CASE("A read-only load resolves a user preset against vendors installed as their cache alone", "[Preset][Bundle][Regression]") +{ + ScopedTemporaryDir temp_dir; + const fs::path data = temp_dir.path() / "data"; + const fs::path system = data / PRESET_SYSTEM_DIR; + ScopedDataDir scoped_data(data); + ScopedResourcesDir scoped_resources(temp_dir.path() / "resources"); + write_acme_printer_vendor(system, 33.); + reduce_vendors_to_caches(system, {"Acme"}); + + fs::create_directories(data / PRESET_USER_DIR / DEFAULT_USER_FOLDER_NAME / PRESET_PRINTER_NAME); + std::ofstream((data / PRESET_USER_DIR / DEFAULT_USER_FOLDER_NAME / PRESET_PRINTER_NAME / "My Acme.json").string()) + << R"({"type":"machine","name":"My Acme","from":"User","version":"2.3.0.0","inherits":"Acme Printer","printable_height":"123"})"; + + AppConfig app_config; + PresetBundle bundle; + std::string errors; + bundle.load_presets(app_config, ForwardCompatibilitySubstitutionRule::EnableSilent, PresetBundle::PresetPreferences(), + &errors, true); + CHECK(errors.empty()); + const Preset *preset = bundle.printers.find_preset("My Acme"); + REQUIRE(preset != nullptr); + CHECK_THAT(preset->config.opt_float("printable_height"), Catch::Matchers::WithinAbs(123., 1e-6)); + CHECK_THAT(preset->config.opt_float("extruder_clearance_dist_to_rod"), Catch::Matchers::WithinAbs(33., 1e-6)); +} + +TEST_CASE("A read-only load writes no preset cache", "[Preset][Bundle][Regression]") +{ + ScopedTemporaryDir temp_dir; + const fs::path system = temp_dir.path() / "data" / PRESET_SYSTEM_DIR; + ScopedDataDir scoped_data(temp_dir.path() / "data"); + ScopedResourcesDir scoped_resources(temp_dir.path() / "resources"); + write_acme_printer_vendor(system, 33.); + + AppConfig app_config; + PresetBundle bundle; + std::string errors; + bundle.load_presets(app_config, ForwardCompatibilitySubstitutionRule::EnableSilent, PresetBundle::PresetPreferences(), + &errors, true); + CHECK(errors.empty()); + CHECK(bundle.printers.find_preset("Acme Printer") != nullptr); + CHECK_FALSE(fs::exists(system / "Acme.opc")); +} + +TEST_CASE("A vendor updated over the air resolves against the library installed as its cache alone", "[Preset][Bundle][Regression]") +{ + ScopedTemporaryDir temp_dir; + const fs::path system = temp_dir.path() / "data" / PRESET_SYSTEM_DIR; + ScopedDataDir scoped_data(temp_dir.path() / "data"); + ScopedResourcesDir scoped_resources(temp_dir.path() / "resources"); + // System presets are found by name through the bundled profiles. + write_library_and_acme_filament(temp_dir.path() / "resources" / PRESET_PROFILES_DIR); + // The release install, then an update that brings Acme back as JSONs while the library stays a cache. + write_library_and_acme_filament(system); + reduce_vendors_to_caches(system, {PresetBundle::ORCA_FILAMENT_LIBRARY, "Acme"}); + write_library_and_acme_filament(temp_dir.path() / "update"); + fs::copy_file(temp_dir.path() / "update" / "Acme.json", system / "Acme.json"); + fs::create_directories(system / "Acme" / "filament"); + fs::copy_file(temp_dir.path() / "update" / "Acme" / "filament" / "pla.json", system / "Acme" / "filament" / "pla.json"); + + SECTION("by name") { + PresetBundle bundle; + DynamicPrintConfig config; + std::string error; + REQUIRE(bundle.resolve_system_preset(config, Preset::TYPE_FILAMENT, "Acme PLA", + ForwardCompatibilitySubstitutionRule::EnableSilent, error)); + CHECK_THAT(config.opt("filament_cost")->values.front(), Catch::Matchers::WithinAbs(27., 1e-6)); + } + SECTION("by its source file") { + PresetBundle bundle; + DynamicPrintConfig config; + config.option(BBL_JSON_KEY_INHERITS, true)->value = "Generic PLA"; + std::string error; + REQUIRE(bundle.resolve_preset_config(config, Preset::TYPE_FILAMENT, (system / "Acme" / "filament" / "pla.json").string(), + ForwardCompatibilitySubstitutionRule::EnableSilent, error)); + CHECK_THAT(config.opt("filament_cost")->values.front(), Catch::Matchers::WithinAbs(27., 1e-6)); + } +} + +namespace { + // A default preset config for type, built the way PresetBundle builds its default presets. DynamicPrintConfig external_default_config(Preset::Type type) {