Commit graph

138 commits

Author SHA1 Message Date
Remco Burema
78ca8439d8 Merge remote-tracking branch 'origin/5.11'
Some checks failed
conan-package / conan-package (push) Waiting to run
Scorecard supply-chain security / Scorecard analysis (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
2025-10-22 14:28:18 +02:00
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
33671083cd Make sure undo stroke properly clears all the set pixels
Some checks failed
conan-package / conan-package (push) Has been cancelled
unit-test / Run unit tests (push) Has been cancelled
CURA-12752
Otherwise, when merging the polygons and undo-ing the whole stroke, there may be some remaining pixels outside the mesh triangles that would not be cleared, because the rasterizing is not 100% identical
2025-10-15 16:43:44 +02:00
Erwan MATHIEU
06a7592483 Do not update stacks at every stroke, but under the anti-bounce timer
CURA-12752
2025-10-15 16:01:03 +02:00
Remco Burema
f9c77f8730 For multi-material painting; stack needs to be updated.
Some checks are pending
conan-package / conan-package (push) Waiting to run
unit-test / Run unit tests (push) Waiting to run
... because the extruders used for the current object can change (clear all bits of extruder #2 paint on a single object, which results in the object printed with extruder #1 only, which could result in the prime-tower needing to be gone -- or the other way around).

The _previous_ way of doing that was just spamming the stack changes, but that gave other problems.

part of CURA-12752
2025-10-15 11:15:08 +02:00
Remco Burema
d5fc04684a
Apply suggestions from code review (imports).
done as part of CURA-12752

Co-authored-by: HellAholic <alireza.doustdar@gmail.com>
2025-10-15 08:55:10 +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
Erwan MATHIEU
0e5442d570 Fix extruders counting method
CURA-12752
2025-10-13 13:33:51 +02:00
HellAholic
566b58565f
Merge branch 'CURA-12763_undo-redo-clear-does-not-invalidate-result' into CURA-12750_switch-out-of-paint-when-entering-preview
Some checks failed
conan-package / conan-package (push) Has been cancelled
unit-test / Run unit tests (push) Has been cancelled
2025-10-08 16:01:01 +02:00
HellAholic
df5c34b9e4
Merge branch '5.11' into CURA-12763_undo-redo-clear-does-not-invalidate-result
Some checks failed
conan-package / conan-package (push) Has been cancelled
unit-test / Run unit tests (push) Has been cancelled
2025-10-08 15:55:44 +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
b30a2407d6 Only display paint view in Prepare stage
Some checks are pending
conan-package / conan-package (push) Waiting to run
unit-test / Run unit tests (push) Waiting to run
CURA-12750
2025-10-07 16:40:01 +02:00
Erwan MATHIEU
1fe563d06f Note that an ungrouped object should be selected for painting
CURA-12761
2025-10-07 12:30:31 +02:00
Erwan MATHIEU
c04ca0dde5 Restore initial text to avoid untranslated text
Some checks are pending
conan-package / conan-package (push) Waiting to run
unit-test / Run unit tests (push) Waiting to run
CURA-12761
2025-10-07 12:28:47 +02:00
Remco Burema
107c3503d7 Merge remote-tracking branch 'origin/5.11' into CURA-12752_multimat_paint_prime_tower 2025-10-07 11:34:01 +02:00
Erwan MATHIEU
cb2e1eddcc Invalidate slice when using undo/redo/clear paint actions
CURA-12763
2025-10-07 09:46:50 +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
HellAholic
230c323709
Merge branch '5.11' into CURA-12740_multi-material-with-ex2
Some checks are pending
conan-package / conan-package (push) Waiting to run
unit-test / Run unit tests (push) Waiting to run
2025-10-02 14:01:22 +02:00
Erwan MATHIEU
02d5612b58 Merge remote-tracking branch 'origin/5.11' into CURA-12743_slow-performance-while-painting
Some checks failed
conan-package / conan-package (push) Has been cancelled
unit-test / Run unit tests (push) Has been cancelled
2025-10-02 13:21:27 +02:00
Erwan MATHIEU
495a367539 Optimize painting operations
CURA-12743
2025-10-02 12:05:39 +02:00
HellAholic
a06ff9cdd7
Merge branch '5.11' into CURA-12752_multimat_paint_prime_tower
Some checks are pending
conan-package / conan-package (push) Waiting to run
unit-test / Run unit tests (push) Waiting to run
2025-10-02 10:54:13 +02:00
Remco Burema
f910983616 Spam the signals a bit less.
done as part of CURA-12752
2025-10-01 23:12:27 +02:00
Erwan MATHIEU
05b3aeb2bd Pre-cache faces connectivity during prepare job
CURA-12743
This avoids a huge slowdown when starting to paint
2025-10-01 16:38:50 +02:00
Erwan MATHIEU
7504c8be89 Remove getting the faces under the cursor area
CURA-12743
2025-10-01 16:29:45 +02:00
Erwan MATHIEU
e8152bf047 Do the cursor projection using uvula
CURA-12743
2025-10-01 11:44:14 +02:00
HellAholic
0c0d9e591c
Merge branch '5.11' into CURA-12749_replace-the-placeholder-paint-tool-icon-with-a-brush
Some checks failed
conan-package / conan-package (push) Has been cancelled
unit-test / Run unit tests (push) Has been cancelled
2025-10-01 10:27:21 +02:00
Saumya Jain
d86984aca7
Merge branch '5.11' into CURA-12737_model-rotation-stops-over-model-with-painting 2025-09-30 15:28:27 +02:00
Erwan MATHIEU
9bf79cf762 Set brush icon for painting feature
CURA-12749
2025-09-30 11:10:03 +02:00
HellAholic
635ae45b5e
Merge branch '5.11' into CURA-12732_fix_slice_paint_hover 2025-09-30 10:50:22 +02:00
Erwan MATHIEU
428faa5777 Do not block rotation while painting is active
CURA-12737
2025-09-30 09:52:19 +02:00
Remco Burema
6b6200fc94 Remove spurious method, handle the expected way.
Some checks failed
conan-package / conan-package (push) Has been cancelled
unit-test / Run unit tests (push) Has been cancelled
This was basically already possible, no need to add an extra method.

done as part of CURA-12732
2025-09-30 09:14:02 +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
Remco Burema
cd2d30fd82 Fix moving (paint) cursor also emitted scene-change.
This prevented slices from happening if the mouse-cursor came (even near) the model.

originally done as part of CURA-12634 -- attempt to cherry-pick and subsequent rework later for CURA-12732
2025-09-25 12:19:15 +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
0a133ff92c Fix shader compatibility
Some checks failed
conan-package / conan-package (push) Has been cancelled
unit-test / Run unit tests (push) Has been cancelled
CURA-12662
2025-09-19 10:28:20 +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
cf1486b880 Merge polygons rasterization to common function
CURA-12662
2025-09-17 13:27:27 +02:00
Erwan MATHIEU
188109c41e Optimize painting by getting the list of painted faces
CURA-12662
2025-09-17 09:18:24 +02:00