05ccafeeb5As an example of using the enum_bitmask infrastructure for type safe sets of optional boolean parameters, the cut function "keep upper", "keep lower" and "flip lower" boolean parameters were converted into a single type safe enum_bitmask. Such a coding style is certainly wordier than the original code, but much safer and more readable than the error prone "boolean, boolean, boolean" function call parameter list.
Vojtech Bubnik
2021-06-27 17:36:25 +02:00
0f3cabb5d9Support for forward compatibility of configurations, user and system config bundles, project files (3MFs, AMFs). When loading these files, the caller may decide whether to substitute some of the configuration values the current PrusaSlicer version does not understand with some reasonable default value, and whether to report it. If substitution is disabled, an exception is being thrown as before this commit. If substitution is enabled, list of substitutions is returned by the API to be presented to the user. This allows us to introduce for example new firmware flavor key in PrusaSlicer 2.4 while letting PrusaSlicer 2.3.2 to fall back to some default and to report it to the user.
Vojtech Bubnik
2021-06-27 16:04:23 +02:00
c5304750d9Support for forward compatibility of configurations, user and system config bundles, project files (3MFs, AMFs). When loading these files, the caller may decide whether to substitute some of the configuration values the current PrusaSlicer version does not understand with some reasonable default value, and whether to report it. If substitution is disabled, an exception is being thrown as before this commit. If substitution is enabled, list of substitutions is returned by the API to be presented to the user. This allows us to introduce for example new firmware flavor key in PrusaSlicer 2.4 while letting PrusaSlicer 2.3.2 to fall back to some default and to report it to the user.
Vojtech Bubnik
2021-06-27 16:04:23 +02:00
ad336e2cc0Because of a crash in PrusaSlicer 2.3.0/2.3.1 when showing an update notification with some locales, we don't want PrusaSlicer 2.3.0/2.3.1 to show this notification. On the other hand, we would like PrusaSlicer 2.3.2 to show an update notification of the upcoming PrusaSlicer 2.4.0. Thus we will let PrusaSlicer 2.3.2 and couple of follow-up versions to download the version number from an alternate file until the PrusaSlicer 2.3.0/2.3.1 are phased out, then we will revert to the original name.
Vojtech Bubnik
2021-06-25 17:53:31 +02:00
d0a1416599Because of a crash in PrusaSlicer 2.3.0/2.3.1 when showing an update notification with some locales, we don't want PrusaSlicer 2.3.0/2.3.1 to show this notification. On the other hand, we would like PrusaSlicer 2.3.2 to show an update notification of the upcoming PrusaSlicer 2.4.0. Thus we will let PrusaSlicer 2.3.2 and couple of follow-up versions to download the version number from an alternate file until the PrusaSlicer 2.3.0/2.3.1 are phased out, then we will revert to the original name.
Vojtech Bubnik
2021-06-25 17:53:31 +02:00
9b70efc46aWindows specific: Transactional saving of PrusaSlicer.ini to ensure that configuration could be recovered in the case PrusaSlicer.ini is corrupted during saving. The config is first written into a temp file marked with a MD5 checksum. Once the file is saved, it is copied to a backup file first, then moved to PrusaSlicer.ini.
Vojtech Bubnik
2021-06-25 16:44:06 +02:00
06872f02e5Windows specific: Transactional saving of PrusaSlicer.ini to ensure that configuration could be recovered in the case PrusaSlicer.ini is corrupted during saving. The config is first written into a temp file marked with a MD5 checksum. Once the file is saved, it is copied to a backup file first, then moved to PrusaSlicer.ini.
Vojtech Bubnik
2021-06-25 16:44:06 +02:00
1378d2084aFix of #6650 - show estimated print time on ruler is not working
YuSanka
2021-06-24 13:59:48 +02:00
0f6182d5a6Fix of #6650 - show estimated print time on ruler is not working
YuSanka
2021-06-24 13:59:48 +02:00
892c246700Fix Linux warnings ../src/libslic3r/QuadricEdgeCollapse.cpp:110:39: warning: suggest parentheses around '&&' within '||' [-Wparentheses] ../src/libslic3r/QuadricEdgeCollapse.cpp:394:38: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] ../src/libslic3r/QuadricEdgeCollapse.cpp:395:38: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] ../src/libslic3r/QuadricEdgeCollapse.cpp:514:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] ../src/libslic3r/QuadricEdgeCollapse.cpp:514:42: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
Filip Sykala
2021-06-22 10:01:14 +02:00
b93956e7edFix Linux warnings ../src/libslic3r/QuadricEdgeCollapse.cpp:110:39: warning: suggest parentheses around '&&' within '||' [-Wparentheses] ../src/libslic3r/QuadricEdgeCollapse.cpp:394:38: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] ../src/libslic3r/QuadricEdgeCollapse.cpp:395:38: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] ../src/libslic3r/QuadricEdgeCollapse.cpp:514:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] ../src/libslic3r/QuadricEdgeCollapse.cpp:514:42: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
Filip Sykala
2021-06-22 10:01:14 +02:00
c0715866ffWin32 specific: SEH handler on background thread. Catches Windows structured exceptions (hard crashes, segmentation faults...), converts them to Slic3r::HardCrash exceptions and displays the exception using the usual PrusaSlicer way. The SEH handler is installed on the main background slicing thread as of now, therefore hard crashes in TBB worker threads are not handled.
Vojtech Bubnik
2021-06-22 09:53:23 +02:00
e31e3dc00fWin32 specific: SEH handler on background thread. Catches Windows structured exceptions (hard crashes, segmentation faults...), converts them to Slic3r::HardCrash exceptions and displays the exception using the usual PrusaSlicer way. The SEH handler is installed on the main background slicing thread as of now, therefore hard crashes in TBB worker threads are not handled.
Vojtech Bubnik
2021-06-22 09:53:23 +02:00
7c13cfa1d9Add test checking diference in volume before/after simplification
Filip Sykala
2021-06-22 09:41:38 +02:00
8dbc7c57d6Add test checking diference in volume before/after simplification
Filip Sykala
2021-06-22 09:41:38 +02:00
e3cdeda673Add quadric edge collapse
Filip Sykala
2021-06-22 09:21:16 +02:00
429aff468aAdd quadric edge collapse
Filip Sykala
2021-06-22 09:21:16 +02:00
c64ce8777fAdded new AzteQ Industrial printer, added DeltiQ 2 profiles for 0.6mm nozzle, added material ASA 275 (Spectrum), some minor setting improvements
rtyr
2021-06-21 17:12:04 +02:00
6372a22c10Added new AzteQ Industrial printer, added DeltiQ 2 profiles for 0.6mm nozzle, added material ASA 275 (Spectrum), some minor setting improvements
rtyr
2021-06-21 17:12:04 +02:00
b7643850eeBumped up config version to 1.4.0-alpha0.
rtyr
2021-06-21 16:57:48 +02:00
d9efd241ffBumped up config version to 1.4.0-alpha0.
rtyr
2021-06-21 16:57:48 +02:00
4e59fd504eDoubleSlider: Fixed out of range assert
YuSanka
2021-06-21 14:30:28 +02:00
8863e34917DoubleSlider: Fixed out of range assert
YuSanka
2021-06-21 14:30:28 +02:00
0d70a2be69Renamed create_face_neighbors_index() to its_face_edge_ids(). Renamed its_create_neighbors_index() / its_create_neighbors_index_par() to its_face_neighbors() / its_face_neighbors_par(). New variant of its_face_edge_ids() to create edge IDs from face neighbors. Fixed some incorrect use of _NDEBUG, it should be NDEBUG. PrintObject::slice_support_volumes() returns newly Polygons, which are cheaper than ExPolygons. Updated SeamPlacer and SupportMaterial to use regions defined as Polygons, not ExPolygons. TriangleSelector::get_facets_strict() returning a patch with T-joints retriangulated. New slice_mesh_slabs() - slicing projections of a triangle patch into top / bottom layers of slices, for MMU top / bottom segmentation. TriangleMeshSlicer - use 64 mutexes instead of one when scattering sliced triangles into layers. This makes a big difference on modern many core desktop computers. When applying MM segmented regions to input regions, the split regions are now re-merged with 10x higher positive offset epsilon to avoid creating gaps. When testing for existence of paint-on supports or seam, use a more efficient has_facets() test, which does not deserialize into the expensive TriangleSelector tree structure. GLIndexedVertexArray newly uses Eigen::AlignedBox<float, 3> for efficiency instead of our double based BoundingBoxf3. Improved MMU painting refresh speed by optimizing generation of the vertex buffers. Refactored MMU segmentation - projection of painted surfaces from top / bottom. 1) Parallelized. 2) Using the new slice_mesh_slabs() instead of projecting one triangle by the other and merging them with Clipper.
Vojtech Bubnik
2021-06-20 15:21:12 +02:00
69ffe12fd2Renamed create_face_neighbors_index() to its_face_edge_ids(). Renamed its_create_neighbors_index() / its_create_neighbors_index_par() to its_face_neighbors() / its_face_neighbors_par(). New variant of its_face_edge_ids() to create edge IDs from face neighbors. Fixed some incorrect use of _NDEBUG, it should be NDEBUG. PrintObject::slice_support_volumes() returns newly Polygons, which are cheaper than ExPolygons. Updated SeamPlacer and SupportMaterial to use regions defined as Polygons, not ExPolygons. TriangleSelector::get_facets_strict() returning a patch with T-joints retriangulated. New slice_mesh_slabs() - slicing projections of a triangle patch into top / bottom layers of slices, for MMU top / bottom segmentation. TriangleMeshSlicer - use 64 mutexes instead of one when scattering sliced triangles into layers. This makes a big difference on modern many core desktop computers. When applying MM segmented regions to input regions, the split regions are now re-merged with 10x higher positive offset epsilon to avoid creating gaps. When testing for existence of paint-on supports or seam, use a more efficient has_facets() test, which does not deserialize into the expensive TriangleSelector tree structure. GLIndexedVertexArray newly uses Eigen::AlignedBox<float, 3> for efficiency instead of our double based BoundingBoxf3. Improved MMU painting refresh speed by optimizing generation of the vertex buffers. Refactored MMU segmentation - projection of painted surfaces from top / bottom. 1) Parallelized. 2) Using the new slice_mesh_slabs() instead of projecting one triangle by the other and merging them with Clipper.
Vojtech Bubnik
2021-06-20 15:21:12 +02:00
d08a70478eFixes Linux (and probably MacOS) build: wx/msw/registry.h is only available on Windows. (#6634)
combolek
2021-06-19 02:45:48 -07:00
52dd514295Fixes Linux (and probably MacOS) build: wx/msw/registry.h is only available on Windows. (#6634)
combolek
2021-06-19 02:45:48 -07:00
5434a8980fSome code beautification for the last commit + Fix of the TabPresetComboBox layout for "light mode" + "tabs as a menu items" preferences
YuSanka
2021-06-18 21:54:20 +02:00
313742997cSome code beautification for the last commit + Fix of the TabPresetComboBox layout for "light mode" + "tabs as a menu items" preferences
YuSanka
2021-06-18 21:54:20 +02:00
fd071421cbDarkMode for MSW (#6632)
Oleksandra Yushchenko
2021-06-18 19:46:04 +02:00
ffd33d6494DarkMode for MSW (#6632)
Oleksandra Yushchenko
2021-06-18 19:46:04 +02:00
c5cb94d92cFollow up 0b5ea8f429 - Un-select random sequence by default - Added a check for interval height. It have to be bigger then print layer height
YuSanka
2021-06-16 18:20:26 +02:00
c2f2fd0234Follow up 0b5ea8f429 - Un-select random sequence by default - Added a check for interval height. It have to be bigger then print layer height
YuSanka
2021-06-16 18:20:26 +02:00
2e54648b97Fixed a multi-material painting gizmo crash when extruders colors aren't initialized, which happens when switching between SLA and FDM printer.
Lukáš Hejl
2021-06-16 17:05:24 +02:00
d7e663e2efFixed a multi-material painting gizmo crash when extruders colors aren't initialized, which happens when switching between SLA and FDM printer.
Lukáš Hejl
2021-06-16 17:05:24 +02:00
b32202e597Fixed incorrectly displayed custom supports and seams in the support and seam gizmos after 7377fc34ac.
Lukáš Hejl
2021-06-16 13:41:35 +02:00
e3f18b4fc3Fixed incorrectly displayed custom supports and seams in the support and seam gizmos after 7377fc34ac.
Lukáš Hejl
2021-06-16 13:41:35 +02:00
d0411223beTriangleSelector: 1) Fixing yesterday's regression in deserialization of older painted 3MFs (order of triangle children is now reversed, thus the serialization / deserialization has to take it into account). 2) WIP extraction into facets to triangulate T-joints.
Vojtech Bubnik
2021-06-16 10:52:00 +02:00
ed99bfd3e0TriangleSelector: 1) Fixing yesterday's regression in deserialization of older painted 3MFs (order of triangle children is now reversed, thus the serialization / deserialization has to take it into account). 2) WIP extraction into facets to triangulate T-joints.
Vojtech Bubnik
2021-06-16 10:52:00 +02:00
6ddd88e596Fixed an issue where the color of the first extruder always replaced the default color after painting in a multi-material gizmo.
Lukáš Hejl
2021-06-15 16:12:26 +02:00
ae1a799cf4Fixed an issue for multi-volume objects where the seed fill visualization in the multi-material gizmo didn't disappear after the mouse was moved to another volume.
Lukáš Hejl
2021-06-10 12:50:30 +02:00
c59cf5de40Fixed layers with the wrong color after multi-material segmentation on objects with multiple objects.
Lukáš Hejl
2021-06-10 08:33:14 +02:00
21b38db488Added using the move operator in some parts of multi-material segmentation.
Lukáš Hejl
2021-06-09 17:13:30 +02:00
a06e42d01fMoved debug prints out of parallel cycles, and more debug prints were added for multi-material segmentation.
Lukáš Hejl
2021-06-09 16:44:35 +02:00
15a1b51339Refactoring and cleanup of painting gizmos.
Lukáš Hejl
2021-06-09 15:33:05 +02:00