1) Octree is built directly from the triangle mesh by checking
overlap of a triangle with an octree cell. This shall produce
a tighter octree with less dense cells.
2) The same method is used for both the adaptive / support cubic infill,
where for the support cubic infill the non-overhang triangles are
ignored.
The AABB tree is no more used.
3) Optimized extraction of continuous infill lines in O(1) instead of O(n^2)
On little-endian hosts, stl_internal_reverse_quads will be called before
it is declared. Move the declaration up to the beginning of the file to
fix build breakage seen on an s390x host.
Fix of 2.1.0-rc: Loading MMU STL's results in object placement off the plater (#2868)
It has been broken with 9abef2241d
when trying to fix "Error on importing stl" #2813
namely:
1) Whitespaces are allowed at the end of lines
2) A freeform is allowed after "endloop", "endfacet" and "endsolid", if separated
from the keyword by a whitespace. Some ASCII STL exporters likely add their
annotations in there.
Fixes "Error on importing stl" #2813
starting from the objects of lowest ObjectID.
(convex hulls are recoverable as well as the indexed triangle sets
inside the TriangleMeshes or the triangle connectivity information).
Now the top most snapshot (the temp one taken before Undo jump) will
never be released.
Ulocking the "anisotropic" scaling checkbox will bake the transformation
into meshes to allow for scaling in world axes.
Optimized and templated the stl_transform functions, now also available for 3x3 matrices.
The Canvas3D::reload_scene() now maintains selection even if all volumes of an instance changed their IDs.
Fixed one bug of many in admesh library, where the face connectivity
was broken when removing a degenerate face. Likely there are some
similar issues left to be solved.
Placed a workaround to always recalculate face connectivity before slicing.