When try to delete something from the cut object, than not just inform the users about an impossibility of this action,
but allow them to invalidate a cut information or delete all connectors from related objects, but leave the cut info.
* CutGizmo: Fixed a label scale
* Fixed deselection of selected connectors, when moving the camera
* Implemented update of the settings for selected connectors
* Connector selection: Ctrl shortcut is changed to Shift to compatibility of the selection/deselection with rectangle selection
* Suppress to split cut objects
* ObjectList:
* Use another icons to mark the cut objects and connectors
* For the cut object show parts, which are not connectors
* Set different colors for the Plugs and Dowels
* CutGizmo:
* Invalidate CutGizmo after changes in ObjectList or perform a cut
* CupPlane in Connectors mode: Unselect selection, when click on empty space
* Connectors mode: Fixed performance issue
+ Fixed a crash during change object selection, when CutGizmo is On
+ Fixed Undo/Redo (was accidentally broken with 7912613dc8e11db2ddea8018ce16b26a01756a3b)
* Suppress to delete/add a SolidPart/NegativeVolume from/for objects which are marked as "is cut"
* Suppress to delete Instances which are marked as "is cut"
* Allow delete an object which is marked as "is cut", but show warning message about break of the "cut consistency".
And if this deletion was performed, the all related objects will be unmarked.
* m_connectors_cnt is added into CutObjectBase class to correct synchronization of a connectors count between related objects
+ Added CutObjectBase class which contains cut attributes for object
+ ObjectList and ManipulationPanel :
* Disable all ManipulationEditors for solid/negative volumes of cut object
* Disable Scale/Size ManipulationEditors for objects/instances of objects which are CutParts of initial object
+ Scale/Rotation/Move gizmos are disabled for solid/negative volumes of cut object
+ Select whole CutParts of initial object when ScaleGizmo is active
* Added new cut() function witch respects to the rotation of the cut plane
* Added revert buttons to the GizmoCutDialog
* Fixed GLGizmoCenterMove::bounding_box(). Pad and supports don't added to the bb now
circular, convex, concave) and performs efficient collision detection agains these build
volumes. As of now, collision detection is performed against a convex
hull of a concave build volume for efficency.
GCodeProcessor::Result renamed out of GCodeProcessor to GCodeProcessorResult,
so it could be forward declared.
Plater newly exports BuildVolume, not Bed3D. Bed3D is a rendering class,
while BuildVolume is a purely geometric class.
Reduced usage of global wxGetApp, the Bed3D is passed as a parameter
to View3D/Preview/GLCanvas.
Convex hull code was extracted from Geometry.cpp/hpp to Geometry/ConvexHulll.cpp,hpp.
New test inside_convex_polygon().
New efficent point inside polygon test: Decompose convex hull
to bottom / top parts and use the decomposition to detect point inside
a convex polygon in O(log n). decompose_convex_polygon_top_bottom(),
inside_convex_polygon().
New Circle constructing functions: circle_ransac() and circle_taubin_newton().
New polygon_is_convex() test with unit tests.