Commit Graph
100 Commits
Author SHA1 Message Date
Vojtech Bubnik 94a9820661 Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer 2020-10-01 20:12:50 +02:00
bubnikv 50293c0f86 Fixing a missing include on Windows. 2020-10-01 20:15:40 +02:00
Vojtech Bubnik ee58ab4e2d Merge branch 'vb_optgroup_refact' 2020-10-01 20:05:31 +02:00
bubnikv f35efb8fe5 Win32 specific: Workaround for tooltips over Tree Controls displayed
over excessively long tree control items, stealing the window focus.

In case the Tab was reparented from the MainFrame to the floating dialog,
the tooltip created by the Tree Control before reparenting is not reparented,
but it still points to the MainFrame. If the tooltip pops up, the MainFrame
is incorrectly focussed, stealing focus from the floating dialog.

The workaround is to delete the tooltip control.
Vojtech tried to reparent the tooltip control, but it did not work,
and if the Tab was later reparented back to MainFrame, the tooltip was displayed
at an incorrect position, therefore it is safer to just discard the tooltip control
altogether.
2020-10-01 19:58:23 +02:00
Vojtech Bubnik b17c829c9a Fixed crash on Linux on startup 2020-10-01 19:16:23 +02:00
bubnikv 0bdfb6ab92 Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer 2020-10-01 15:12:19 +02:00
bubnikv b71e5c2763 Maybe one day we will be able to run PrusaGCodeViewer, but for now the Apple notarization
process refuses Apps with multiple binaries and Vojtech does not know any workaround.
Just run PrusaSlicer and give it a --gcodeviewer parameter.
2020-10-01 15:11:56 +02:00
bubnikv e8325a8e2d Fixes of DPI scaling on Windows. 2020-09-30 14:02:23 +02:00
bubnikv 82b86d2c65 New 3rd party printer profiles, prepared by @rtyr
Anycubic (5 printers from 3 contributors)
https://github.com/prusa3d/PrusaSlicer/pull/4057
https://github.com/prusa3d/PrusaSlicer/pull/4220
https://github.com/prusa3d/PrusaSlicer/pull/4619
TriLAB
https://github.com/prusa3d/PrusaSlicer-settings/pull/100
Creality
based on https://github.com/prusa3d/PrusaSlicer/pull/4485
https://github.com/prusa3d/PrusaSlicer/pull/4748
2020-09-29 18:07:18 +02:00
bubnikv ab0890ed34 Merge remote-tracking branch 'remotes/origin/vb_modelobject' 2020-09-29 16:31:18 +02:00
bubnikv 2583522e43 Refresh the page tree immediately after key press. 2020-09-29 14:47:03 +02:00
bubnikv b15023dfa9 Cancellation of parameter page build process. 2020-09-29 13:36:56 +02:00
bubnikv ec8602f8d9 Faster switching of parameter pages if the page is switched
by cursor keys in the tree control:
The page update is delayed to idle.
2020-09-29 11:04:25 +02:00
Vojtech Bubnik e0b0a2cdcf Fix of previous commit. 2020-09-24 20:32:52 +02:00
Vojtech Bubnik 7a799be426 DynamicPrintConfig::normalize() renamed to normalize_fdm(),
optimization of Print::apply()
2020-09-24 19:03:33 +02:00
Vojtech Bubnik 8f04a76337 Final fix of Perl bindings 2020-09-24 14:52:05 +02:00
Vojtech Bubnik 7cdc61b67a Trying to patch the Perl bindings. 2020-09-24 16:41:47 +02:00
Vojtech Bubnik aa0335a750 Trying to fix perl bindings 2020-09-24 16:18:56 +02:00
Vojtech Bubnik 94aac4cf97 What MSVC could process I always wonder. 2020-09-24 15:45:04 +02:00
Vojtech Bubnik 54976e29bb New class ModelConfig wrapping DynamicPrintConfig and a timestamp
to help with detecting "not changed" event when taking
Undo/Redo snapshot or synchronizing with the back-end.

Converted layer height profile and supports / seam painted areas
to the same timestamp controlled structure.
2020-09-24 15:34:13 +02:00
Vojtech Bubnik 0d6eb842b0 Merge branch 'vb_undoredo_timestamp' 2020-09-23 13:00:01 +02:00
Vojtech Bubnik dde64d361b Tiny polishing and documentation. 2020-09-23 12:59:15 +02:00
Vojtech Bubnik 0dad7adfa1 "There is an object with no extrusions on the first layer."
should throw SlicingError, not RuntimeError.
2020-09-23 12:58:58 +02:00
Vojtech Bubnik 056c46d01f Undo/Redo serialization extension:
If an object indicates a valid timestamp, then the timestamp
is relied upon to not serialize the object data if the timestamp
of the same object on the undo/redo stack matches.
2020-09-23 12:18:39 +02:00
Vojtech Bubnik 230dbb7394 Adaptive Cubic infill:
1) Fixed a wrong offset when extracting infill lines from the octree.
2) Added a variant for testing triangle in a bounding sphere
   when buildind the octree. Currently not used as the box test
   is more tight.
3) "Bridging infill" regions are now triangulated and used to densify
   the octree as well to support the bridging infill correctly.
2020-09-22 08:53:45 +02:00
Vojtech Bubnik 6cdb19971f Fixed crash in Adaptive Cubic infill if just a single line was extracted.
New function to chain lines, however not used by the Adaptive Cubic infill.
2020-09-21 11:10:57 +02:00
Vojtech Bubnik 348c654c26 Adaptive infill:
Fixing compilation on Linux,
WIP: Better chainining of infill lines.
2020-09-18 13:35:35 +02:00
Vojtech Bubnik 7e756b20e6 Adaptive infill: Reshuffled the namespaces. 2020-09-18 10:53:50 +02:00
Vojtech Bubnik 37c5fe9923 Refactoring of adaptive cubic / support cubic:
1) Octree is built directly from the triangle mesh by checking
   overlap of a triangle with an octree cell. This shall produce
   a tighter octree with less dense cells.
2) The same method is used for both the adaptive / support cubic infill,
   where for the support cubic infill the non-overhang triangles are
   ignored.
The AABB tree is no more used.
3) Optimized extraction of continuous infill lines in O(1) instead of O(n^2)
2020-09-17 18:39:28 +02:00
Vojtech Bubnik 5d8c4b4476 Fixed missing return 2020-09-14 16:27:38 +02:00
Vojtech Bubnik 1eadb6a1a9 Replaced some of Slic3r::RuntimeError exceptions with Slic3r::SlicingError.
Only Slic3r::SlicingError are now displayed by a notification, other
exceptions are shown by a pop-up dialog.
2020-09-14 18:03:22 +02:00
Vojtech Bubnik 067cde85f1 WIP Refactoring of exceptions:
1) All slicer's exceptions are now derived from Slic3r::Exception.
2) New exceptions are defined for slicing errors.
3) Exceptions are propagated to the Plater to show.
It remains to modify the slicing back-end to throw the new SlicingError
exceptions instead of std::runtime_error and to show the other exceptions
by a message dialog instead of a notification.
2020-09-14 18:03:22 +02:00
Vojtech Bubnik 6a11e7996e Merge branch 'lh_adaptive_infill' 2020-09-09 16:46:43 +02:00
Vojtech Bubnik 7b318e1698 Refactoring of adaptive cubic infill:
Don't create an octree for the infill if it is not needed.
2020-09-09 15:55:06 +02:00
Vojtech Bubnik e010d287c5 Fixed launching of new slicer instances on Windows. 2020-09-09 11:41:23 +02:00
Vojtech Bubnik ce06fc6cb7 Added networking support for SL1 Digest authorization.
Renamed login/password/authorization_type to printhost_user/printhost_password/printhost_authorization_type.
Added initialization of physical printer preset with default values.
2020-09-08 15:31:10 +02:00
Vojtech Bubnik 0a4debc98c Fix of a preceding merge 2020-09-08 14:25:10 +02:00
Vojtech Bubnik ceaa61071a Fix of the previous merge, Windows specific. 2020-09-08 14:08:03 +02:00
Vojtech Bubnik 4e4b8ff5aa Merge branch 'vb_gcodeviewer_menu' 2020-09-08 13:51:02 +02:00
Vojtech Bubnik 946f51467f WIP Standalone G-code viewer 2020-09-08 13:33:43 +02:00
Vojtech Bubnik 0fde670fd6 osx fix 2020-09-08 11:49:02 +02:00
Vojtech Bubnik 3c51581e92 Another fix 2020-09-08 11:36:00 +02:00
Vojtech Bubnik 77ba284a59 Trying to fix spawn on OSX 2020-09-08 11:22:27 +02:00
Vojtech Bubnik 663f17a0e3 Improved logging of spawning a subprocess. 2020-09-08 09:57:17 +02:00
Vojtech Bubnik d830e1c970 Run PrusaSlicer as G-code viewer based on argv[0] name on Unix systems. 2020-09-07 22:37:55 +02:00
Vojtech Bubnik f237b33515 Yet another fix on OSX. 2020-09-07 22:28:17 +02:00
Vojtech Bubnik 889f05167a Changing the binary name on OSX to PrusaSlicer. 2020-09-07 21:36:51 +02:00
Vojtech Bubnik 8622437c12 fixing symlinks 2020-09-07 18:09:51 +02:00
Vojtech Bubnik ae0e576c32 Fixing Linux build 2020-09-07 17:41:16 +02:00
Vojtech Bubnik 1221c67d7f Fix for OSX 2020-09-07 17:09:27 +02:00
Vojtech Bubnik 9473ae8fe2 Fix of previous commit, added symlinks to gcodeviewer on Linux & OSX 2020-09-07 16:56:22 +02:00
bubnikv a251d42408 Merge branch 'vb_gcodeviewer_menu' of https://github.com/Prusa3d/PrusaSlicer into vb_gcodeviewer_menu 2020-09-07 16:02:57 +02:00
bubnikv b0bedf33c0 WIP: G-code viewer menu, refactoring of starting a background process. 2020-09-07 15:59:45 +02:00
bubnikv fd4c28ed91 WIP: G-code viewer menu, refactoring of starting a background process. 2020-09-07 15:55:03 +02:00
bubnikv 08580a9b18 WIP: prusa-gcodeviewer command line wrapper to start the PrusaSlicer
in standalone G-code viewer mode.
Linux and OSX stuff will follow.
2020-09-01 16:56:12 +02:00
Vojtech Bubnik 683af51685 Replaced boost::filesystem::canonical() with boost::filesystem::absolute(),
as canonical() is broken on Windows (reparse points aka symbolic links
are not processed correctly).

Fixes
https://github.com/prusa3d/PrusaSlicer/issues/732
https://github.com/prusa3d/PrusaSlicer/issues/3956
https://github.com/prusa3d/PrusaSlicer/issues/4557
2020-09-01 14:15:37 +02:00
bubnikv 17170b81b5 Clean-up of Shiny profiler integration, so that the intrusiver profiling
can be controlled per module.
2020-08-27 12:14:49 +02:00
bubnikv 41f474a884 Fixed performance issues when adding / removing Presets into PresetCollection.
This improves application startup time by 25-33%.
2020-08-26 21:51:50 +02:00
Vojtech Bubnik 12f43736bd Fix of Support generator debugging functions after some refactoring 2020-08-12 10:51:15 +02:00
bubnikv f7ceffb46e Fixed back-end warning infrastructure: The Print / PrintObject
should have been derived from ObjectBase, not from ObjectID.
2020-07-21 15:33:36 +02:00
bubnikv ba0146746d Fix of previous commit. 2020-07-15 18:13:11 +02:00
bubnikv f64da8e6cc Update of back-end warnings:
Back-end warnings contain two new members: "current" and "message_id".
A warning is set to "not current" if its milestone is invalidated.
2020-07-15 18:03:39 +02:00
Vojtech Bubnik 746ece4c40 Support for collecting warnings from the background processing.
Multiple warnigns may be collected per Print / PrintObject milestone
and a status update is sent to the UI immediately after a warning
is issued.
2020-07-14 11:52:34 +02:00
bubnikv c10f6a622d Fixed unit tests on Windows after introduction of GMP to
boost::polygon Voronoi diagram generator by Vojtech.

Fixed Perl bindings on Windows after some "improvement" of the Windows 10
SDK headers, which fail if included from a C++ code using the
extern "C"
clause. Namely, the Windows 10 SDK include for sockets introduces C++ macros
if a "compiled with C++" symbol is provided even if included through
exetrn "C".
2020-06-27 08:44:13 +02:00
Vojtech Bubnik 81b809f2a1 Fixed broken compilation of Perl bindings. 2020-06-16 14:39:08 +02:00
Vojtech Bubnik 851ebc7991 fix of previous commit, missing include 2020-06-16 14:00:25 +02:00
Vojtech Bubnik b101a8e266 Fixes of the offset curves from Voronoi diagram.
The offset curve extractor is already quite usable,
though singular cases are still not covered yet
when the offset curve intersects or nearly intersects
a Voronoi vertex.

Removal of the PRINTF_ZU "%zu" Visual Studio printf compatibility macro.
Fixes of a contours self intersection test for collinear segments.
SVG exporter now exports white background, so that the GNOME Eye viewer is usable.
2020-06-16 13:15:48 +02:00
Vojtech Bubnik 1c95ceaeaa Reworked algorithm for Voronoi Offset curve extraction.
Now the algorithm is very different from the OpenVoronoi implementation
and hopefully it is now correct (save numerical issues, which will be
a big PITA).
2020-06-11 16:11:02 +02:00
Vojtech Bubnik 1e3290fee1 Reduced ugly copy / paste for ENABLE_OPENGL_ERROR_LOGGING 2020-06-04 15:53:58 +02:00
Vojtech Bubnik 3e0e537b7a Offset curve from a Voronoi diagram: Fixed distance calculation
to a bisector of two segments.
2020-06-04 15:34:35 +02:00
Vojtech Bubnik 6f4d24ab95 WIP: Generating offset curves with properly rounded corners from
a Voronoi diagram. Curve extraction is based on the OpenVoronoi implementation.
2020-06-04 13:50:09 +02:00
Vojtech Bubnik b8267a5f6f G-code placeholder parser - new values:
print_bed_min, print_bed_max, print_bed_size
calculated from a bounding box of bed_shape vector of points.

Also added first_layer_print_size as a size of a first layer print
bounding box.
2020-06-03 16:30:37 +02:00
Vojtech Bubnik 6529543518 WIP: first_layer_print_min/max, first_layer_print_convex_hull
placeholders for the G-code export.
2020-06-03 16:30:37 +02:00
Vojtech Bubnik 6f92538c20 BoundingBox support for Lines,
BoundingBox constructor will no more throw for empty vector of points.

GMP allowed for Vojtech's fork of boost::polygon Voronoi implementation.

Added libslic3r tests for boost::polygon Voronoi. All Voronoi issues
ever reported on the Internet are captured by the tests. Two issues
reported (the two test cases) are real issues which may influence
PrusaSlicer negatively, namely

https://github.com/boostorg/polygon/issues/43
2020-05-28 15:53:53 +02:00
Vojtech Bubnik 180742ccaa Pulling patched boost::polygon from github prusa3d/polygon. 2020-05-22 15:33:11 +02:00
Vojtech Bubnik c09d702045 Show Eigen vectorization support in system info dialog. 2020-05-22 11:36:10 +02:00
Vojtech Bubnik ac1f24e5c9 AABB: Some further polishing and a reference to an SSE implementation
of the 3D Box vs. ray intersection implementation.
2020-05-22 11:35:49 +02:00
Vojtech Bubnik 925bf1af70 Shiny profiler: Increased resolution of text output to 2 decimals 2020-05-22 09:29:21 +02:00
Vojtech Bubnik dc46589a8e AABB - triangle intersection wrapped to mimize copying into Vector3D 2020-05-22 09:29:21 +02:00
Vojtech Bubnik c64b7b2e21 Fix of the previous commit. 2020-05-22 09:29:21 +02:00
Vojtech Bubnik 7b6dff3f03 Little simplification of Point to boost::polygon bindings 2020-05-22 09:29:21 +02:00
Vojtech Bubnik 4c365ad583 Replaced many defines in libslic3r.h with constexpr,
removed some macros to support old visual studio compiler.
2020-05-22 09:29:21 +02:00
Vojtech Bubnik 99514ba42b WIP: AABBTreeIndirect - optimized ray_box_intersect_invdir() test,
sandbox for comparing the AABBTreeIndirect with libigl::AABB
2020-05-22 09:29:21 +02:00
Vojtech Bubnik 2b8f655020 WIP AABBIndirect: Documentation, polishing. 2020-05-22 09:29:21 +02:00
Vojtech Bubnik eeb9590d28 WIP: own AABBTreeIndirect, builds up the tree 4x quicker than libigl. 2020-05-22 09:29:21 +02:00
Vojtech Bubnik abf279fc44 Fixed compilation with Shiny profiler. 2020-05-22 09:29:21 +02:00
bubnikv b73e675aaa Changed the Ironing G-code preview color based on Jindra's feedback. 2020-05-06 18:28:23 +02:00
bubnikv 0940db7b2e Improvements of the monotonous infill ordering:
Calculate the initial path length and set the initial pheromone level
accordingly.
Implemented a stopping criterion to ant colony optimization.
Fixed some compilation warnings.
2020-05-06 18:28:23 +02:00
bubnikv 5980d46e4c Bumped up version number to 2.3.0-alpha0 2020-05-05 13:11:32 +02:00
bubnikv 80b684b4b7 Fuzzy matching:
1) Handle localized and English searches as equivalent.
2) Search the whole section : group : label string, still give
   precedence to just the label.
2020-05-04 21:22:56 +02:00
bubnikv 0e87226ac9 Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer 2020-05-04 16:18:32 +02:00
bubnikv 95cf8c2d30 Fuzzy matching of parameters in the search box:
Fix of https://github.com/forrestthewoods/lib_fts/issues/21 finally applied,
disabled CamelCase matching as we are not using CamelCase in Slicer parameters.
2020-05-04 16:18:20 +02:00
bubnikv 28c0880b24 ASCII folding applied over the matched string 2020-05-03 15:45:47 +02:00
bubnikv e27c6c7928 fts_fuzzy_match fixes:
Recursive fix https://github.com/forrestthewoods/lib_fts/issues/21
End of string penalty fix https://github.com/forrestthewoods/lib_fts/issues/24

Some refactoring for succintness (based on Vojtech's taste)
2020-05-03 14:14:40 +02:00
bubnikv 07ab5c31e6 WIP Fuzzy search rework.
1) fts_fuzzy_match has been extended to support wchar_t for a char
   type and uint16_t for an index type for the match indices.
2) fts_fuzzy_match has been extended to place a proper stopper character
   into the match buffer.
3) Slicer integration now uses the fuzzy match indices for highlighting.
4) Slicer integration now correctly highlights the matched word.
5) Slicer search dialog now sorts based on match AND category.

Further modifications are planned:
1) Matching in local language vs. English: Just show the English variant
   if matched in English. Don't mix the two together.
2) Matching the group or category: Continue matching the label.
3) For matches with equal match quality and category sort alphanumerically.
2020-05-01 08:57:24 +02:00
bubnikv f479b77e01 Fixed compilation warning. 2020-04-30 12:04:49 +02:00
bubnikv 18d08cc5cb Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer 2020-04-30 12:04:03 +02:00
bubnikv cc2d33f6a0 Search: Fixed returning of a pointer to temporary. 2020-04-30 12:03:49 +02:00
bubnikv 2875bc685c Fixed spelling of "sidebar" 2020-04-29 15:58:57 +02:00
bubnikv 8a82e3d5be Localization fixes. 2020-04-29 14:42:43 +02:00