Previous algorithms assume that they can get an invalid Voronoi diagram. Because of that, during the multi-material segmentation, a copy of the Voronoi diagram was created, and there were several attempts to fix missing vertices and edges. But as it shows, this wasn't a good enough approach and sometimes led to several issues like bleeding layers.
After generalization, our approach for detection and repairs of invalid Voronoi diagrams from Arachne, we could assume that multi-material segmentation gets non-invalid Voronoi diagrams.
With this assumption, we reimplement multi-materials segmentation to work directly on the Voronoi diagram. That should make multi-material segmentation more stable.
So, this should fix several issues like bleeding layers. Also, memory consumption should decrease by a lot. Also, there should be some speedup of multi-materials segmentation.
This reverts commit 69e0bc3064298fc58dd2a870801161821fa16da5.
The reason the original commit was reverted was to get cleaner git history after
merging master_27x into master. The change in this commit is implemented in master as b85e80c.
This reverts commit 6ff8537ff4fbd14ca09934cdb2bb987131a7b559. There is a non-trivial conflict
when merging to master, let's redo the commit after the merge so it is clear in history.
Description of bug:
During fixing of SPE-1845 there was made changes with 7280b2a0 commit.
But those changes destroyed a initial behavior. All presets are selected correctly now,
but user doesn't receive a notification about temporary installed presets, if any was.
(Error massage contains links to related options in Settings Tabs now)
+ Suppress a showing a SaveFileDialog in loop while name isn't correct.
+ ErrorDialog is extended to use specified function to process a clicked link
* AboutDialog, SysInfoDialog, ConfigSnapshotDialog, ConfigWizard: Set correct/scaled font.
* PreferencesDialog:
* Use SpinInput instead of wxSpinCtrl.
* Added layout of the activated tab.
* Remove "suppress_round_corners" option and ignore its value for whole application.
+ Plater: fixed obj_list() function to check existence of the control to avoid crash on recreate_GUI().
+ GLCanvas3D: Increased delta value between current and new values of the toolbar icon scale.
* Non-MSW specific: Next improvements for BG of the controls
+ Create wrap class BitmapToggleButton to correct create under all platforms
+ TabFilament: Fixes crash on recreating of the app
* Next improvements for background under nonMSW systems
+ Fixed Field::SpinCtrl::propagate_value
* DropDown: Implemented transparent background for rounded corners.
+ Tab: use TextInput and SwitchButton for substitutions
+ nonMSW specific: Don't set BackgroundColors for panels
* ObjectManipulation: Use TextInput instead wxTextCtrl
* Process rectangle/rounded controls
+ Preferences: Added "Suppress round corners" parameter
* Skinned UI: SwitchButton. Use it for CheckBox Field
* Skinned UI: SpinInput
+ ScalableBitmap/ScalableButton respects to different width and height of bitmap.
* Skinned UI: ComboBox
* Skinned UI: CheckBox