generate move constructor and move assignement.
Also used some move operators to reduce unnecessary memory allocations.
Cherry picked commit: 120a85d4c4b90ffafced442ee5e63e5f794f6945
Fix warnings
../src/libslic3r/Emboss.cpp:135:24: warning: comparison of integer expressions of different signedness: 'int' and 'const unsigned int' [-Wsign-compare]
../src/libslic3r/Emboss.cpp:653:20: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare]
../src/slic3r/GUI/Gizmos/GLGizmoEmboss.cpp:2057:12: warning: unused variable 'count_icons' [-Wunused-variable]
../src/slic3r/GUI/Gizmos/GLGizmoEmboss.cpp:2058:12: warning: unused variable 'count_states' [-Wunused-variable]
1) Lost orientation after reload from disk (SPE-1182)
2) Wrong objects replacement from reload from disk command (SPE-1183)
3) Reload from disk not disabled for built-in models (SPE-1184)
1) Added parsing of 3MF PrusaSlicer generator semantic version
2) For 3MFs generated by >= "2.4.0-alpha1" and < "2.4.0-alpha3",
remove unreferenced vertices on loading. This should shrink the incorrectly
generated 3MFs back.
3) Added check for an empty mesh, which could have crashed PrusaSlicer on 3MF parsing.
TriangleMesh newly only holds indexed_triangle_set and
TriangleMeshStats. TriangleMeshStats contains an excerpt of stl_stats.
TriangleMeshStats are updated when initializing with indexed_triangle_set.
Admesh triangle mesh fixing is newly only used when loading an STL.
AMF / 3MF / OBJ file formats are already indexed triangle sets, thus
they are no more converted to admesh stl_file format, nor fixed
through admesh repair machinery. When importing AMF / 3MF / OBJ files,
volume is calculated and if negative, all faces are flipped. Also
a bounding box and number of open edges is calculated.
Implemented its_number_of_patches(), its_num_open_edges()
Optimized its_split(), its_is_splittable() using a visitor pattern.
Reworked QHull integration into TriangleMesh:
1) Face normals were not right.
2) Indexed triangle set is newly emitted instead of duplicating
vertices for each face.
Fixed cut_mesh(): Orient the triangulated faces correctly.
1) Changed the name of the variable "brim_offset" to "brim_separation"
for clarity.
2) Added legacy conversion after loading an old 3MF that does not define
then new "brim_separation" variable: The "brim_separation" is being
filled in with the "elefant_foot_compensation" value to produce
equal brim separation to the old PrusaSlicer that saved that 3MF file.