Step to repro:
1. Select system "Some_preset" preset
2. Make some changes
3. Save preset with "Some_preset - Copy" name.
=> "Some_preset - Copy" is selected, there is/are marked option(s) only different from system preset.
repeate 1-3 steps
=> "Some_preset - Copy" is selected, there is/are marked option(s) different from DEFAULT preset.
Fixes issue with incorrect characters in time strings on UI.
Fix platform dependency
Fix return value with incorrect strings.
Just use strptime and strftime on all platforms.
Emulate strptime on msvc... because they don't have it and their get_time is buggy.
Layer newly remembers bounding boxes of slices,
the bounding boxes are used by G-code generator & newly the support
generator.
Slices are stored as ExPolygons, not ExPolygonCollection.
This prevents a crash when the print is empty and the wipe tower enabled - validation of the wipe tower attempted to access extruders().front(), which was empty.
No other checks need to be done with the empty print anyway.
and for separation of concerns:
The final G-code preview no more uses ExtrusionPaths structure
to hold the G-code path data extracted by parsing the G-code.
Instead, the ExtrusionPath class has been trimmed down back to
the original size before the G-code preview was introduced,
and a new GCodePreviewData::Extrusion::Path class was created to hold
the additional path data as the extruder ID, color change ID
and fan speed.
- Replace hidapi/linux/hid.c with the hidraw variant (link to udev)
- Add CMakeLists.txt for hidapi, refactor
- Add udev rules file (no installation so far)
Implemented using hidapi library (https://github.com/libusb/hidapi) and https://github.com/koenieee/CrossplatformSpacemouseDriver/tree/master/SpaceMouseDriver as reference
Unsolved issues:
- When manipulating the SpaceNavigator wxWidgets generates a mouse wheel event that needs to be filtered out
- wxWidgets does not detect devices being connected/disconnected to the pc
- Current state forces a continuous rendering
- Current state misses dependence on camera zoom
- Non intuitive movement limits
- Translation and rotation speed factors are hardcoded
- Number of device buttons hardcoded
for islands with another islands in their holes.
Improvement of chaining of infill lines for 3D honeycomb, Gyroid and
Honeycomb infill: New TSP chaining algorithm is used.
producing better shortest path estimate than the "closest next neighbor"
heuristics. The new greedy algorithm utilizes KD tree for closest
end point search, and builds a graph to detect loops.
PerimeterGenerator newly uses the optimized TSP algorithm.
ExtrusionEntity has been refactored / simplified.