Commit Graph

19 Commits

Author SHA1 Message Date
ae1f18f7ba Speed-up of painted seams 2021-07-15 09:49:36 +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
2f146f727b 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
f42e459ab5 Fix aligned seam when sequential printing is enabled 2021-02-22 16:26:16 +01:00
d62aace663 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
f968cfd2d5 Fixing Clang warnings 3 2021-02-08 17:52:29 +01:00
b8100c2164 Random seam: optimization and fix of a possible infinite loop 2020-12-17 15:48:25 +01:00
8ab0d7d7ab 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
3e1b6a049f Bugfix: custom seam did not work on first layer with elephant foot compensation active 2020-12-05 00:02:43 +01:00
bcefdac090 Bugfix: seam enforcers not always respected (#5137, #5294) 2020-12-05 00:02:43 +01:00
53f4d49ea2 Fix random seam for single contour islands (#5003) and for external_perimeters_first 2020-11-27 11:33:25 +01:00
e91f7b6988 Seam - fix indexing of layers (#5112, #5014) 2020-11-27 10:09:20 +01:00
a00a3b2997 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
5c6afc9d5a Fix build on macOS and one logic error 2020-09-18 14:26:06 +02:00
51d3d9403c Store seam history for more islands 2020-09-18 12:20:02 +02:00
28294e4928 use center of enforcer only with spAligned 2020-09-18 12:00:48 +02:00
c6851d1227 Simple implementation of spRandom 2020-09-18 12:00:40 +02:00
2576949ab4 fixed center-finding algorithm 2020-09-18 12:00:40 +02:00
00eb95ffd8 Renamed CustomSeam to SeamPlacer, move to a separate file 2020-09-18 12:00:14 +02:00