Refactored ModelVolume::Type to enum class ModelVolumeType to be able
to forward declare it.
Refactored UI to use the ModelVolumeType instead of the untyped int.
Fix of SLA gizmo picking by rectangle: point is occluded only if an object
is half its radius away from the point center.
Don't show the temp G-code file name in the status bar when exporting.
Conditional compilation of an igl winding number tree for SLA support generator, as it is not used as of now and initialization of the tree is expensive.
Fixed issue with passing the new SLA point definition to the back end and back to the UI.
- point can be selected
- selection can be deleted, head diameter changed
- dragging of objects is not allowed with the gizmo being on
- added a modal dialog when automatic support generator is triggered
- backend to frontend data synchronization to inform the gizmo that new points have been generated
- fixed the inadvertent cancellation of background processing caused by the SLA gizmo touching frontend data during the process
- inactive instances of the object are hidden when the SLA gizmo is active
- fix of imgui combobox rendering
- unselected objects are hidden when SLA gizmo is active
- support volumes are hidden when editing mode is active
- 3mf support points format versioning
- semi-intelligent algorithm to place support points
- enhanced ImGui dialog with editing/non-editing mode
- support points can have different head diameter (only implemented in GUI so far)
- autogenerated points supporting emerging islands are annotated and the info is kept
Lazy "Place on face" gizmo update.
Caching of MeshObject::raw_mesh_bounding_box() for the object size display.
ModelObject::bounding_box(), raw_mesh_bounding_box(), full_raw_mesh_bounding_box() will not copy the mesh.
TriangleMesh::transformed_bounding_box(const Transform3d &trafo) will not copy the mesh data.
get_options_for_bundle() will not return reference to temp value
is_splittable() calls cheap mesh.has_multiple_patches()
- works with large meshes
- area discrimination takes into account scaling of the object
- planes are recalculated when some volume's type is changed (e.g. from a part to modifier mesh)