gui: fix zoom-to-mouse
Plater disappeared when zoom-to-mouse enabled and user tries to zoom
with a side view enabled (Ctrl+<3..6>).
Mouse/screen center position estimation in 3D is made by calculating
intersection of a mouse vector which comes 'through' the screen with an
XY plane. However, when screen is parallel to Z axis, intersection point
located at infinite which results in infinite camera translation vector.
This change switches mouse position estimation to use of projection
matrix like its done for camera panning.
* fix: replace extruder_clearance_max_radius with extruder_clearance_radius
* fix: add if m_plater before accessing preset_bundle
* fix: generate thumbnail only when callback is defined
* fix: change default gcode thumbnail format to png
* Fix model load in debug build
Debug build exit with error on model load due to failed assertion (file
path redacted):
orca-slicer: <...>/OrcaSlicer/src/libslic3r/Model.cpp:1361: void Slic3r::ModelObject::update_min_max_z(): Assertion `! this->instances.empty()' failed.
Assertion failed due to model->ensure_on_bed() being called for object
which yet to be load from file.
Do not call ensure_on_bed() for models read from file since they may be
read with no default instance.
ensure_on_bed() called later within withing Plater::load_model_objects()
for each object added.
* Rework according to code review comment
* gui: camera navigation style option
Add camera navigation style config option as a preparation for
introduction of touchpad style navigation
* gui: touchpa-friently 3d navigation
Implement FreeCAD-inspired touchpad-friendly camera operation mode:
- Shift+move: panning
- Alt+move: rotation
Set "Camera mode" to "Touchpad" in settings menu to activate this mode.
* cache current navigation style in class member variable
Cache current navigation style on canvas focus, do not
request settings value each mouse event.
* force focuse 3d preview on preferences window close
Explicitly force focus 3D preview pane on closing preferences window.
This allows preferences be updated only once without checking current
value each input event.
Another benefit is to have 3D view in focus is that user could
immediatelly use 3d-view shortcuts like Ctrl+<1..7> without clicking to
the 3D view first.
* gui: fix media eject on linux (#4700)
Removable media is not ejected on linux platform
Make get_removable_drive_from_path() check if path is a dir or not.
Trim last component in latter case only.
* Revert unnecessary style changes
* Make httpserver more generic and reusable
* Add OAuthJob
* Fix issue caused by the fact that the backing widget of the `TextCtrl` is no longer `wxTextCtrl`
* Implement login and token refresh
* Implement file upload
* Try fix build error
* Support BBL printers
* Show error message if user hasn't done OAuth
* Fix typo
* Update error message
* Disable unsupported options when SimplyPrint is selected
* Add new MyRRF custom printer
* hide user panel when networking plugin is not installed/used
* Fixed a bug that promption of installing plugin notification was not displayed when trying to switch to Bambu device tab
* replay missing_connection animated image when switching to device tab
* Change ensure_vertical_shell_thickness to enum value type. Allow users to turn off this feature completely
* add warning to the tooltip for None option
* Allow apply scarf joint seams to perimeters without sharp corners only
* 1. Fix an error when detect whether a loop is smooth
2. Expose scarf_angle_threshold to UI
* fix linux build error
* minor code changes
* Support slowdown speed for scarf joint only
* update tips
* improve the logic a bit
* Fixed a bug that scarf speed may not respected for overhangs
* Add a new scarf flow ratio option
* Remember z of previous layer
* Support travel to middle of the layer z
* Support sloped extrusion
* Implement sloped seam
* Reduce extra movements
* Don't clip loop if sloped seam is enabled
* Fix wipe
* Ensure `slope_max_segment_length`
* Add options
* Limit slope length to perimeter length
* Fix slope segmentation
* Rename the option to scarf joint seam
* Don't modify the slope option when turning on spiral vase
* Add a few suggestions when turnning on scarf joint
* Add option to add scarf joint to inner walls
* Apply seam gap at the end of the slope
* Add option to explicitly use the entire loop as scarf length
* Fix layer number
* Increase default scarf length to 20mm
* Better way of storing the global scarf state
* Better vase mode layer height recognition
* Move id should exclude seams
* Fix slope height with independent support layer height
* Fix linux build
* Allow controlling the scarf with modifier
* Scarf start height default to 0
* Allow enable scarf seam on contour only
* Fix type error
* Move the creation of sloped loop into ExtrusionEntity.cpp
* Fix error "vector too long"
* Detect seams properly
* The correct way of calculating the rate limit
* The correct way of calculating the rate limit
(cherry picked from commit 05961f7c98)
* Add pressure equalizer in print by object mode
* Remove the settings recommendation as it varies a lot depends on printer & filament
* Add a beta suffix
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Initial integration of ImGuizmo
* Fix mouse capture
* Fix frame update
* Update face color
* Show current camera rotation
* Fix coord mapping
* Update camera rotation from 3d navigator
* Use orthographic
* Render axis
* Make the axis color lighter if at back
* Show axis label
* Fix linux build
* Move to separate method
* Refine
* Add option to show/hide 3d navigator
* Add license info
* Handle dpi scaling
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>