Commit Graph

5638 Commits

Author SHA1 Message Date
6948a6632e Added gallery to the default shapes
+ ObjectList (MSW specific): Don't change background color for Light color mode
2021-07-15 10:52:37 +02:00
582d514d82 Fixed a crash when "resources/shapes" directory doesn't exist.
+ Localization for the "Internal error: %1%" in generic_exception_handle()
2021-07-15 09:04:12 +02:00
b302ae95ef Let's hope that the std::exception::what() returns either a 7-bit
string or an UTF-8 string. Let's convert it to wxString before
showing an error message box.
boost::system shall return UTF-8 localized error messages as long
as we set -DBOOST_SYSTEM_USE_UTF8 in the top most CMakeFiles.txt,
which we do.
2021-07-15 08:34:02 +02:00
14e1293ade GalleryDialog: Changes the paths to the system and custom galleries 2021-07-14 17:41:37 +02:00
81e172d2c6 Follow-up fe7204379d - added missed include 2021-07-14 16:48:55 +02:00
c0252cb10e GalleryDialog: Fixed sort of the filenames inside the list.
+ OSX Specific:
   * Fixed scale of the lock on the system file icons
   * Fixed buttons alignment for AboutDialog and SysInfoDialog
2021-07-14 16:45:34 +02:00
439088c349 Draft shield option is now an enum (Disabled/Limited/Enabled) 2021-07-14 16:02:04 +02:00
bbca47355d Merged psSkirt and psBrim 2021-07-14 16:02:04 +02:00
13edc8eca2 Added input validation in painting gizmo (some values led to a crash) 2021-07-14 15:57:22 +02:00
bc4c11bef4 Follow-up of 18c8003a0f -> Fixed bounding box of selected volumes 2021-07-14 15:32:09 +02:00
6b068f495f Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer 2021-07-14 13:21:17 +02:00
bfdaeae376 Delayed rendering of transparent volumes 2021-07-14 13:20:57 +02:00
4523f49445 GalleryDialog: Added loaded files quality control
+ Code cleaning
2021-07-14 12:47:52 +02:00
bd63d26022 Fixes into Cut gizmo 2021-07-14 11:39:09 +02:00
769caa2e92 Replace with STL: Fixed update of the item name after replacing
+ OSX specific: Code refactoring for ObjectList:Rename() function
2021-07-14 09:22:03 +02:00
b83e109222 Fixed Windows DarkMode for some dialogues.
+ ProjectDropDialog: wxRadiloBox was changes to the wxStaticBox with wxRadioButtons because of dark mode colors update
+ Preferences: Fixed update of the text colors
2021-07-13 18:27:30 +02:00
f7fcc9b4d7 Fixed compilation in debug mode by removing the forgotten assert. 2021-07-13 12:56:01 +02:00
40fc96e051 Fixed conflicts after pulling from master 2021-07-13 12:11:54 +02:00
69eb2fd4e5 Follow-up of d6fdf2d5c2 -> Automatic generation of missing thumbnails 2021-07-13 11:57:19 +02:00
14bfc30ec4 Triangle normals and lighting are computed inside the fragment shader for the multi-material painting gizmo.
It results in a six-fold reduction of the amount of data transferred into GPU because there is no need to duplicate vertices for every triangle. Also, normals aren't needed to be transferred to GPU.
2021-07-13 11:23:36 +02:00
bc10148ff2 Default object color is shown in the multi-material painting gizmo when the user switches to a printer with fewer extruders than the number of extruders used to paint the object. 2021-07-13 11:23:36 +02:00
2a04382245 Speed up the rendering of triangles in painting gizmos by only copying triangle data to the GPU when triangles were changed by painting. 2021-07-13 11:23:36 +02:00
1a72c78934 Merge branch 'vb_mmu_top_bottom' 2021-07-13 11:08:52 +02:00
e97205c415 Fixed build on Linux 2021-07-13 08:30:49 +02:00
1c64404890 GalleryDialog improvements:
* Added "Replace PNG" function
* Added locks instead of border for system shapes
2021-07-12 17:22:22 +02:00
080807eda5 Modifiers Gallery (#6703)
* Added GalleryDialog

* GalleryDialog improvements:
* Added DnD functionality
* Added "Delete custom shapes" function
2021-07-12 15:20:50 +02:00
afb13dadc1 Fixed an issue where seed fill selection stuck displayed when the mouse was moving inside multi-material gizmo when the gizmo was overlapping the model. 2021-07-12 13:21:10 +02:00
5b9d7e7376 Follow up (bugfix) of 0d70a2be69
GLIndexedVertexArray newly uses Eigen::AlignedBox<float, 3>
for efficiency instead of our double based BoundingBoxf3.
2021-07-12 10:53:09 +02:00
7885c35c9e Merge branch 'tm_arrange_notify' 2021-07-08 16:36:49 +02:00
58545b9e47 Changed "temporary instaled" to "temporarily installed" (#6685) 2021-07-08 15:59:29 +02:00
1f82670fb3 Add notification if some objects are ignored after arrange 2021-07-08 13:35:40 +02:00
c1abc38aec fix of infinite loop in notification lines calulating #6583 2021-07-02 15:13:03 +02:00
e96d87bc6d Follow-up 4652733201 - Fixed Text alignment for Notebook tabs without bitmaps 2021-06-30 10:44:27 +02:00
6d0287874d Fixed compilation on Linux 2021-06-30 08:56:35 +02:00
a41a214584 MSW specific: Implementation of the own notebook control
* MSW specific: First implementation of the Notebook control to support Dark/Light color modes

* MSW specific: Set mode sizer to the Notebook control.

* MSW specific: Added icons to the Notepad control
 + There is no need to restart application after the changing of the color mode

* Fixed non-MSW build

* Updated color for SavePresetDialog
+ Added wrapper to wxMessageBox for mom-MSW platforms
2021-06-29 16:23:45 +02:00
5161cfdace PrusaLink - cherrypick pick from stable branch
Added to config enums, visible in Physical Printer Dialog and class derived from Octoprint
2021-06-28 12:36:01 +02:00
a0c0a64508 Added a limitation on the number of usable extruders in the multi-material gizmo. If a printer has more extruders than this limit, a notification about it is shown. 2021-06-28 08:09:06 +02:00
f33310871c Fixed the issue where the object wasn't displayed after pressing the ESC key in the multi-material painting gizmo.
key in the multi-material painting gizmo.
Fixed also a similar issue in support and seam gizmos where an object was displayed with the wrong color after pressing the ESC key.
2021-06-28 08:09:06 +02:00
6df900b735 Fix of wxWidgets3.0 again wxGetApp not declared in this scope #6655 2021-06-28 07:45:13 +02:00
05ccafeeb5 As 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.
2021-06-27 17:36:25 +02:00
c5304750d9 Support 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.

When slicing from command line, substutions are performed by default
and reported into the console, however substitutions may be either
disabled or made silent with the new "config-compatibility" command
line option.

Substitute enums and bools only.  Allow booleans to be parsed as
    true: "1", "enabled", "on" case insensitive
    false: "0", "disabled", "off" case insensitive
This will allow us in the future for example to switch the draft_shield
boolean to an enum with the following values: "disabled" / "enabled" / "limited".

Added "enum_bitmask.hpp" - support for type safe sets of options.
See for example PresetBundle::load_configbundle(...
LoadConfigBundleAttributes flags) for an example of intended usage.

WIP: GUI for reporting the list of config substitutions needs to be
implemented by @YuSanka.
2021-06-27 16:57:05 +02:00
0f6182d5a6 Fix of #6650 - show estimated print time on ruler is not working
+ Parent center of the MessageDialogs
2021-06-24 13:59:48 +02:00
3773ebe354 Fixed after removing TBB deprecated APIs 2021-06-23 15:24:05 +02:00
50b4f08e37 drop deprecated TBB components (#6590)
Quite some time ago, many of the TBB components were deprecated in favor
of their near-equivalents in the STL or, in the case of task_scheduler_init,
were broken up and reconstituted under a less ad-hoc logic. Every time a header
file marked deprecated gets included, a rather loud warning is emitted, which
leads to a complete TBB's domination over the stderr stream during build time,
making it harder to notice _legitimate_ warnings.

Instead of merely muting the output with TBB_SUPPRESS_DEPRECATED_MESSAGES,
perform a genuine migration away from the deprecated components with the added
benefit of achieving a source compatibility with oneTBB, the successor to TBB
which has dropped the deprecated API for good.

What got replaced for what?

| Deprecated				| Replacement					|
| ------------------------------------- | --------------------------------------------- |
| `tbb::atomic`				| `std::atomic`					|
| `tbb::mutex`				| `std::mutex`					|
| `tbb::mutex::scoped_lock`		| `std::scoped_lock<std::mutex>`		|
| `tbb::mutex::scoped_lock` (empty)	| `std::unique_lock<std::mutex>` (deferred)	|
| `tbb::task_scheduler_init`		| `tbb::global_control`				|
| `tbb::this_thread`			| `std::this_thread`				|

Signed-off-by: Roman Beranek <roman.beranek@prusa3d.com>
2021-06-23 11:48:48 +02:00
198b5f21b9 Fixed warning 2021-06-23 10:30:15 +02:00
44a8032917 Fixing previous commit 2021-06-22 10:05:03 +02:00
e31e3dc00f Win32 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.
2021-06-22 09:54:08 +02:00
8863e34917 DoubleSlider: Fixed out of range assert 2021-06-21 14:30:28 +02:00
d7bc4468b8 Fixed compiler warnings 2021-06-20 16:39:10 +02:00
69ffe12fd2 Renamed 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.
2021-06-20 15:21:12 +02:00