Commit graph

59 commits

Author SHA1 Message Date
Erwan MATHIEU
f9f3f92567 Fix clear command for 2nd+ mapped data
Some checks failed
conan-package / conan-package (push) Has been cancelled
unit-test / Run unit tests (push) Has been cancelled
CURA-12792
2025-10-17 16:11:25 +02:00
Erwan MATHIEU
8254c64488 Merge remote-tracking branch 'origin/5.11' into CURA-12752_multimat_paint_prime_tower
Some checks failed
conan-package-resources / conan-package (push) Has been cancelled
conan-package / conan-package (push) Has been cancelled
printer-linter-format / Printer linter auto format (push) Has been cancelled
unit-test / Run unit tests (push) Has been cancelled
conan-package-resources / signal-curator (push) Has been cancelled
2025-10-13 14:40:33 +02:00
Erwan MATHIEU
375f030c09 Update extruders count only when inactive
CURA-12752
The previous method was not efficient enough in case of large models, where a single painting stroke can easily cover almost the whole texture (in bounding box). Reverted to the version where the whole texture is counted, but cached in the SliceableObjectDecorator and updated on timer so that it is not done during painting.
2025-10-13 14:22:39 +02:00
Remco Burema
c412def982 Extruder counts in image was too slow, cache and do per bounding-rect.
Some checks failed
conan-package-resources / conan-package (push) Has been cancelled
conan-package / conan-package (push) Has been cancelled
printer-linter-format / Printer linter auto format (push) Has been cancelled
unit-test / Run unit tests (push) Has been cancelled
conan-package-resources / signal-curator (push) Has been cancelled
Rewrite the whole 'count pixels to get extruders for paint on materials' so that it's cached outside of the extruder manager instead, so that counting pixels in a 4096x4096 image isn't called xx of times per second.

part of CURA-12752
2025-10-08 09:58:05 +02:00
Erwan MATHIEU
d315e0a727 Handle group selection as multi-selection w.r.t painting
CURA-12761
2025-10-06 12:31:16 +02:00
Erwan MATHIEU
508886cac7 Merge remote-tracking branch 'origin/5.11' into CURA-12740_multi-material-with-ex2 2025-10-03 12:22:03 +02:00
Erwan MATHIEU
465831ce28 Remove leftover code
CURA-12740
2025-10-03 12:09:51 +02:00
Erwan MATHIEU
6ccd0b3b2b Properly display model extruder when it has no paint data
CURA-12740
2025-10-03 12:00:54 +02:00
Erwan MATHIEU
495a367539 Optimize painting operations
CURA-12743
2025-10-02 12:05:39 +02:00
Erwan MATHIEU
a59481f913 Simplify objects undo stacks management
CURA-12740
2025-09-29 10:23:48 +02:00
Erwan MATHIEU
9fa9a7395b Handle material painting i.r.t to affected object extruder
CURA-12740
2025-09-29 10:06:39 +02:00
Erwan MATHIEU
b5f510face Fix painting when switching between printers with different number of extruders
CURA-12730
We now always allocate a data range for all possible extruders (16) instead of only the ones the actual printer can support.
2025-09-24 16:25:23 +02:00
Erwan MATHIEU
b3ea674251 Use per-object undo-redo stacks for painting
CURA-12731
2025-09-22 15:54:32 +02:00
Erwan MATHIEU
2eaa4fb820 Make sure paint commands only change their feature
Some checks are pending
conan-package-resources / conan-package (push) Waiting to run
conan-package-resources / signal-curator (push) Blocked by required conditions
conan-package / conan-package (push) Waiting to run
unit-test / Run unit tests (push) Waiting to run
CURA-12731
2025-09-22 14:34:39 +02:00
Erwan MATHIEU
a2db7b3004 Fix clear painting with optimized painting mechanisms
CURA-12731
2025-09-22 11:40:56 +02:00
Erwan MATHIEU
4c92ce6644 Fix crash after loading a second model for painting
CURA-12731
2025-09-19 16:16:47 +02:00
Erwan MATHIEU
6cf1f2df2a Optimize painting display performance
CURA-12731
2025-09-19 16:01:41 +02:00
Erwan MATHIEU
8e5e655fe0 Merge remote-tracking branch 'origin/main' into CURA-12662_paint_splatter_issue 2025-09-19 13:39:15 +02:00
Erwan MATHIEU
9ee0169410 Merge remote-tracking branch 'origin/CURA-12662_paint_splatter_issue' into CURA-12663_paintbrush_preview
Some checks are pending
conan-package / conan-package (push) Waiting to run
unit-test / Run unit tests (push) Waiting to run
2025-09-18 15:57:57 +02:00
Erwan MATHIEU
889e65e11d Optimize polygons projection
Some checks failed
conan-package / conan-package (push) Has been cancelled
unit-test / Run unit tests (push) Has been cancelled
CURA-12662
Use a numpy-vectorized function to process the barycentric projection, this is much faster
2025-09-18 15:51:09 +02:00
Erwan MATHIEU
a6a560b93d Display exact paint cursor
Some checks failed
conan-package / conan-package (push) Has been cancelled
unit-test / Run unit tests (push) Has been cancelled
CURA-12663
2025-09-15 14:39:50 +02:00
Erwan MATHIEU
24721fbec6 Merge branch 'CURA-12662_paint_splatter_issue' into CURA-12663_paintbrush_preview 2025-09-15 09:17:10 +02:00
Remco Burema
10897e2b71 Painting: Show brush-preview when moving the mouse over.
CURA-12663
2025-08-23 22:42:47 +02:00
Erwan MATHIEU
175a72e12b Fix direct import
CURA-12584
2025-08-08 08:32:09 +02:00
Erwan MATHIEU
3927b5e379 Merge branch 'CURA-12661_make-more-global-paint-undo' into CURA-12449_handling-painted-models-map 2025-08-07 11:15:49 +02:00
Erwan MATHIEU
8a59faceb1 Merge branch 'CURA-12660_painting-UI-improvements' into CURA-12661_make-more-global-paint-undo
Some checks are pending
conan-package / conan-package (push) Waiting to run
unit-test / Run unit tests (push) Waiting to run
2025-08-06 16:39:49 +02:00
Erwan MATHIEU
08a9bbe52c Merge branch 'CURA-12660_painting-UI-improvements' into CURA-12449_handling-painted-models-map
Some checks are pending
conan-package / conan-package (push) Waiting to run
unit-test / Run unit tests (push) Waiting to run
2025-08-06 16:34:41 +02:00
Erwan MATHIEU
e69a436942 Fix sometimes wrongly displayed view
Some checks are pending
conan-package / conan-package (push) Waiting to run
unit-test / Run unit tests (push) Waiting to run
CURA-12660
This required a refactoring of the management of the active view. The previous behavior was that anyone could set the active view, depending on certain conditions. But now we also have a view that is set by a tool, so sometimes the actually set view would be incorrect. Now each Stage requests an active view, and each tool CAN also request an active view. Then the Controller decides which view should actually be active depending on the active stage and tool.
2025-08-06 16:15:05 +02:00
Erwan MATHIEU
2e8cc4da82 Fix display not updating when changing tool
Some checks failed
conan-package / conan-package (push) Waiting to run
unit-test / Run unit tests (push) Waiting to run
conan-package-resources / conan-package (push) Has been cancelled
printer-linter-format / Printer linter auto format (push) Has been cancelled
conan-package-resources / signal-curator (push) Has been cancelled
CURA-12660
Previous fix caused issues when moving to preview
2025-08-05 16:10:57 +02:00
Erwan MATHIEU
c75c668604 Allow user to display and select material color painting
CURA-12584
2025-08-05 15:34:57 +02:00
Erwan MATHIEU
9e186af74b Merge branch 'CURA-12660_painting-UI-improvements' into CURA-12449_handling-painted-models-map 2025-08-05 14:08:45 +02:00
Erwan MATHIEU
3670c46b9e Merge remote-tracking branch 'origin/main' into CURA-12449_handling-painted-models-map 2025-08-04 16:19:03 +02:00
Erwan MATHIEU
586c2939a6 Enable undo/redo buttons when appropriate
CURA-12661
2025-08-04 15:46:51 +02:00
Erwan MATHIEU
53ef6fbdf3 Merge remote-tracking branch 'origin/CURA-12660_painting-UI-improvements' into CURA-12661_make-more-global-paint-undo 2025-08-04 15:29:15 +02:00
Erwan MATHIEU
9685764721 Implement undo-redo by full stroke
CURA-12661
2025-08-04 15:19:04 +02:00
Erwan MATHIEU
63843b59c4 Merge remote-tracking branch 'origin/main' into CURA-12660_painting-UI-improvements
Some checks failed
conan-package-resources / conan-package (push) Has been cancelled
conan-package / conan-package (push) Has been cancelled
printer-linter-format / Printer linter auto format (push) Has been cancelled
unit-test / Run unit tests (push) Has been cancelled
conan-package-resources / signal-curator (push) Has been cancelled
2025-08-04 11:55:26 +02:00
Erwan MATHIEU
44d6c0a969 Call SolidView dynamically instead of by inheritance
CURA-12660
The previous method actually doesn't work when Cura is packaged because the plugins paths change. This method is much safer, and uses the actual SolidView instance.
2025-08-04 11:28:31 +02:00
Erwan MATHIEU
e742ca81f3 Fixed more possible crashes
CURA-12528
2025-08-04 10:24:29 +02:00
Erwan MATHIEU
78daa94ebf Save and restore painting tool settings
Some checks failed
conan-package / conan-package (push) Has been cancelled
unit-test / Run unit tests (push) Has been cancelled
CURA-12660
2025-08-01 17:08:53 +02:00
Erwan MATHIEU
ab58dec5d1 Fix unability to paint with visible message box
CURA-12660
When a message box is displayed, some offscreen rendering passes (face selection) render an unpredictable result and we are unable to start painting.
This went through a refactoring of the rendering passes. Since doing the offscreen rendering outside the Qt rendering loop caused some troubles, we now use the rendering passes only inside the Qt rendering loop, so that they work properly. Tools also have the ability to indicate which extra passes they require, so that we don't run all the passes when they are not required.
Since this issue also concerns the support blockers placement and rotation by face selection, they have been updated so that they now also always work.
The face selection mechanism using the Selection class was partially working and used only by the rotation, so now it has been deprecated in favor of the new mechanism.
2025-08-01 13:10:03 +02:00
Erwan MATHIEU
ef7bde87fa Allow painting only when 1 object is selected
CURA-12660
2025-07-31 11:24:36 +02:00
Erwan MATHIEU
6896c0ed4b Display classic view when there is no selection
CURA-12660
2025-07-30 16:53:41 +02:00
Erwan MATHIEU
6bf9a8a0ae Ignore invisible object for selection in paint mode
CURA-12660
2025-07-30 16:00:13 +02:00
Erwan MATHIEU
73f5b817b4 Display build plate in paint mode
CURA-12660
2025-07-30 15:59:30 +02:00
Erwan MATHIEU
20a2664294 Remove the desired texture definition
Some checks failed
conan-package / conan-package (push) Has been cancelled
unit-test / Run unit tests (push) Has been cancelled
CURA-12528
2025-07-14 13:36:48 +02:00
Erwan MATHIEU
55ee4ec6e1 Calculate and apply UV coordinates
Some checks failed
conan-package-resources / conan-package (push) Has been cancelled
conan-package / conan-package (push) Has been cancelled
printer-linter-format / Printer linter auto format (push) Has been cancelled
unit-test / Run unit tests (push) Has been cancelled
conan-package-resources / signal-curator (push) Has been cancelled
CURA-12528
2025-07-08 15:47:46 +02:00
Erwan MATHIEU
8163d497be Add basic mode to paint on material
Some checks failed
conan-package-resources / conan-package (push) Has been cancelled
conan-package / conan-package (push) Has been cancelled
printer-linter-format / Printer linter auto format (push) Has been cancelled
unit-test / Run unit tests (push) Has been cancelled
conan-package-resources / signal-curator (push) Has been cancelled
CURA-12449
2025-07-04 17:18:46 +02:00
Erwan MATHIEU
bbddcab4e9 Proper paint-on-seam UI
Some checks failed
conan-package / conan-package (push) Has been cancelled
unit-test / Run unit tests (push) Has been cancelled
CURA-12578
2025-07-03 11:05:09 +02:00
Erwan MATHIEU
960d2a2315 Optimized application of stroke
CURA-12566
2025-06-19 10:15:37 +02:00
Erwan MATHIEU
4caba52f05 Basically working multipurpose painting
CURA-12566
2025-06-18 16:00:47 +02:00