50 Commits

Author SHA1 Message Date
Vojtech Bubnik
8f4f02f84c Merge remote-tracking branch 'remotes/origin/vb_project_state' 2021-09-27 14:36:22 +02:00
Vojtech Bubnik
9c4494637c WIP Undo / Redo and project state: Marking Undo / Redo snapshots
with their purpose.
Follow-up to 41dc265a45196fd6a8f2b79ac6e803f41cbe22f8
2021-09-27 14:32:09 +02:00
Vojtech Bubnik
41dc265a45 WIP Undo / Redo and project state: Marking Undo / Redo snapshots
with their purpose.
2021-09-27 14:10:53 +02:00
Vojtech Bubnik
58d8ab3dea Removed the PRUS format parser. WIP: admesh eradication:
stl_stats are newly only accessed by TriangleMesh::stats(),
most of the direct access to TriangleMesh::stl is gone with the exception
of parsing input files (3MF, AMF, obj).
2021-09-14 11:58:14 +02:00
Lukáš Hejl
3b4d10656c Renamed 'Seed fill' to 'Smart fill'. 2021-09-01 14:32:34 +02:00
Lukáš Hejl
57f7b49223 Corrected undo/redo snapshot name when entering or leaving multi-material painting gizmo. 2021-08-30 10:41:41 +02:00
Lukáš Hejl
18cff61bd2 Reworked visualization of selected triangles by seed fill and bucket fill inside the multi-material painting gizmo. Now is drawn boundary around a selected area, and also all triangles inside the selected area are drawn with a darker color. 2021-08-10 21:38:48 +02:00
Lukas Matena
0ccc791750 Merge branch 'fs_QuadricEdgeCollapse' 2021-08-06 18:23:49 +02:00
Lukáš Hejl
666cdeecd9 Forced recomputation of seed fill selected areas when the seed fill angle is changed by ALT+mouse wheel. 2021-08-06 16:46:48 +02:00
Lukáš Hejl
cf2a7f4dfa Fixed the possibility of changing brush size in the multi-material gizmo by ALT+mouse wheel when brush for painting single triangles is selected. 2021-08-06 16:46:48 +02:00
Lukas Matena
85c7dea1a9 Finished concept of gizmos with no toolbar icon:
on_is_selectable and on_is_activable functions are now completely independent,
the former says if there shall be an icon in the left toolbar, the latter
says if the gizmo can be activated (by a shortcut or GLGizmoManager::open_gizmo)
2021-08-06 16:08:04 +02:00
enricoturri1966
5aff44debe ENABLE_PROJECT_DIRTY_STATE set as default 2021-07-30 09:33:51 +02:00
Lukáš Hejl
51b94f4747 Added the bucket fill tool into the multi-material gizmo. Also, the multi-material gizmo was reworked to show only options applicable for a chosen painting tool. 2021-07-16 09:19:40 +02:00
Lukáš Hejl
c0092a7b0a 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
Vojtech Bubnik
0d70a2be69 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
Lukáš Hejl
b32202e597 Fixed incorrectly displayed custom supports and seams in the support and seam gizmos after 7377fc34acef999774333466db18858a1dae5512. 2021-06-16 13:41:35 +02:00
Lukáš Hejl
ae1a799cf4 Fixed 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. 2021-06-16 06:06:34 +02:00
Lukáš Hejl
15a1b51339 Refactoring and cleanup of painting gizmos. 2021-06-16 06:06:34 +02:00
Lukáš Hejl
7377fc34ac Fixed cracks in MMU painting gizmo. All triangles, even not painted triangles, are now rendered inside MMU painting gizmo.
The cracks were caused by using glPolygonOffset to resolve Z-fighting. All triangles of the object were firstly rendered entirely with a base color. And then paint triangles were drawn over these already rendered triangles.
2021-06-16 06:06:33 +02:00
Vojtech Bubnik
6bade1b24a TriangleSelector - some memory optimization.
Don't store traingle normal, but reference the source triangle,
which stores its normal.
2021-06-11 12:27:58 +02:00
Vojtech Bubnik
4ada2ed093 TriangleSelector::get_facets() refactoring to share vertices.
TriangleSelector::valid refactored to m_valid and valid()
and bool members moved next to each other to shrink data structure
size due to memory alignment.
2021-06-10 12:43:31 +02:00
Lukas Matena
39fd8065a1 Fixed clipping plane when used with painter gizmos (follow-up of 94877a0) 2021-06-04 09:34:55 +02:00
Lukáš Hejl
cc913d52ef Added name for items in undo/redo stack inside multi-material gizmo. 2021-06-03 18:11:48 +02:00
Lukáš Hejl
94877a0ec0 Fixed the wrong transformation matrix for "Clipping of view" when is used a printer with multiple extruders. 2021-06-03 08:00:46 +02:00
Lukáš Hejl
660acede9e Sphere brush color in MMU painting gizmo is now the same as color used for painting. 2021-05-31 14:23:12 +02:00
Lukáš Hejl
2438e3a891 Fixed issue that the lower half of the object was shown darker than the upper half of the object after slicing with MMU segmentation. 2021-05-31 07:26:38 +02:00
Vojtech Bubnik
980ca195f5 Merge remote-tracking branch 'remotes/origin/lh_multi_material_segmentation' into vb_print_regions 2021-05-26 15:23:35 +02:00
Lukáš Hejl
2d3eef4e84 Fixed possible warnings 2021-05-03 21:13:13 +02:00
Lukáš Hejl
576c5b78e9 Added seed fill for MMU segmentation 2021-04-27 06:48:09 +02:00
Lukáš Hejl
e3c33844d5 WIP: Duplicated the FDM support gizmo for the MMU segmentation 2021-04-19 07:01:11 +02:00
enricoturri1966
ce73671f47 Project dirty state manager -> Improvements to management of gizmos dirty state 2021-04-16 09:36:19 +02:00
Lukas Matena
cd1322ce3f FDM supports gizmo 'autoset by angle' improvements:
- Extra dialog for autosetting by angle in FDM supports gizmo was removed
- Highlighting facets by angle is now controlled by a slider in the main gizmo dialog
- User is allowed to paint even when using the slope highlighter
- The button to turn highlighted facets to blockers was removed, it made no sense
- Highlighted facets are now rendered in light blue
2021-02-08 17:49:36 +01:00
YuSanka
1492bc9cd5 Localization : Next phrases corrections and update for PrusaSlicer.pot 2020-11-06 12:14:19 +01:00
YuSanka
ed2f03ec79 Localization:
Some phrases are corrected in the code
The POT-file is updated
2020-11-05 22:17:49 +01:00
Lukas Matena
ab6e653de4 Rendering painted triangles - increase polygon offset to avoid artifacts 2020-10-23 17:34:24 +02:00
Lukas Matena
43c6f4cb6c Fix rendering painted triangles (not showing when viewed in direction of the normal) 2020-10-23 08:07:47 +02:00
Lukas Matena
fa74f50af1 Fixed clipping plane in painter gizmos:
Obsolete variable m_clipping_plane was used instead of getting the clipping plane from
the common gizmo data pool. This means the clipped parts of objects captured hits and
could not be painted through.
The clipped_mesh_was_hit variable is obsolete now. It was a mistake to introduce it in the first place.
2020-10-12 16:26:17 +02:00
Lukas Matena
92b2d624a4 Painter gizmos: only render the circle cursor when the pointer is on the mesh
It does not paint otherwise, let the user know by not drawing it.
2020-10-12 14:46:48 +02:00
Lukas Matena
c4951c5efc Fix of a modifier transparency problem in painting gizmos 2020-10-06 14:57:31 +02:00
Lukas Matena
8bcdbb7a60 Painter gizmos should now work with non-uniformly scaled models 2020-10-06 12:06:39 +02:00
Lukas Matena
3ec5d9e2cf Cache raycast results so they don't have to be repeated on the same mouse pos
Fixed incorrect handling of clipping plane with multiple volumes - only the first volume was correctly clipped by the painter.
2020-10-01 00:05:59 +02:00
Lukas Matena
fac7e735ac Moved the raycasting query in painting gizmos to a separate function
This way it can be called when rendering the spherical cursor and when processing the mouse clicks/drags
2020-10-01 00:05:18 +02:00
Lukas Matena
6744a40cd5 Slight refactoring 2020-10-01 00:05:12 +02:00
Lukas Matena
1ca8120398 Sphere selection added as an option for painting gizmos 2020-10-01 00:05:01 +02:00
Lukas Matena
c696e6ec19 Experiment with spherical cursor (painting gizmos) 2020-09-30 17:34:11 +02:00
Lukas Matena
f890cd5b9c FDM painting gizmos (support/seam) now render object in neutral color
The goal is to ensure enough contrast independent on current filament color
2020-09-25 16:05:34 +02:00
Lukas Matena
436e12e99f Seam gizmo: fixed action names in undo/redo stack 2020-09-04 12:46:39 +02:00
Lukas Matena
01b59ff57b Seam gizmo created on frontend 2020-09-01 18:18:57 +02:00
Lukas Matena
a9435cccb8 Finished separation of FDM gizmo into base and child 2020-09-01 18:18:57 +02:00
Lukas Matena
7a6531ede7 Started work on separating FDM gizmo into base and child classes 2020-09-01 18:18:57 +02:00