19 Commits

Author SHA1 Message Date
Lukas Matena
b5fea72618 Speed-up of painted seams 2021-07-15 09:49: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
Lukas Matena
1904b7b904 Bugfix: custom seam did not work for triangles that were exactly vertical
The projection algorithm was originally made for custom supports, so vertical triangles
were not interesting. They are for seam. Instead of rewriting the algorithm and risking
more bugs, the edge case is detected and the triangle is tilted slightly.
2021-02-22 16:26:16 +01:00
Lukas Matena
bd2cbea202 Fix aligned seam when sequential printing is enabled 2021-02-22 16:26:16 +01:00
Vojtech Bubnik
db2d78ff21 Reduction on compiler warnings, mainly on MSVC.
Fix of the new gap_fill_enable flag: Take it into account when comparing
regions.
2021-02-10 17:29:07 +01:00
Lukas Matena
1834ebe981 Fixing Clang warnings 3 2021-02-08 17:52:29 +01:00
Lukas Matena
6e3b4b6fd8 Random seam: optimization and fix of a possible infinite loop 2020-12-17 15:48:25 +01:00
Lukas Matena
997ee971b4 Bugfix: custom seam identification
Bounding boxes of polygons could overlap. Ask the AABB tree for all possible candidates.
Might be faster than searching for the closest triangle, that requires traversing the whole depth of the tree every time.
2020-12-05 02:02:22 +01:00
Lukas Matena
985a4a8bf3 Bugfix: custom seam did not work on first layer with elephant foot compensation active 2020-12-05 00:02:43 +01:00
Lukas Matena
98434eb77b Bugfix: seam enforcers not always respected (#5137, #5294) 2020-12-05 00:02:43 +01:00
Lukas Matena
ca09bf0805 Fix random seam for single contour islands (#5003) and for external_perimeters_first 2020-11-27 11:33:25 +01:00
Lukas Matena
f485f66b2a Seam - fix indexing of layers (#5112, #5014) 2020-11-27 10:09:20 +01:00
Lukas Matena
22f93a34a8 Fix horrible complexity of custom seam lookup (#5067)
- polygons are offset individually
- custom areas are kept separately for each PrintObject
- AABB tree is used to get logN lookup complexity
2020-11-27 10:09:20 +01:00
Lukas Matena
cf50224248 Fix build on macOS and one logic error 2020-09-18 14:26:06 +02:00
Lukas Matena
8123930ee5 Store seam history for more islands 2020-09-18 12:20:02 +02:00
Lukas Matena
8dd345ed4c use center of enforcer only with spAligned 2020-09-18 12:00:48 +02:00
Lukas Matena
fffb79a085 Simple implementation of spRandom 2020-09-18 12:00:40 +02:00
Lukas Matena
5d6bf3261e fixed center-finding algorithm 2020-09-18 12:00:40 +02:00
Lukas Matena
e78221409a Renamed CustomSeam to SeamPlacer, move to a separate file 2020-09-18 12:00:14 +02:00