Lukas Matena
f60ff1c7ce
Fixup of previous commit: actually adding new source files
2019-12-13 15:08:44 +01:00
Lukas Matena
2cb30f3641
First prototype of CGAL hole-drilling
2019-12-13 13:42:10 +01:00
Lukas Matena
9805b02a25
Removed an obsolete variable from MeshRaycaster
2019-12-12 13:19:16 +01:00
Lukas Matena
537260494d
Merge branch 'master' into lm_tm_hollowing
2019-12-12 11:37:33 +01:00
Lukas Matena
c284a65caa
Warning fix: removed needless tautological check
2019-12-12 10:45:30 +01:00
Lukas Matena
135660decf
SLA gizmos fix: clipping of points/holes always used coords from the first instance
...
Few warnings fixed
2019-12-12 10:40:28 +01:00
Lukas Matena
e747577271
Added a validation check to reject wipe tower in sequential prints
...
This scenario was never supported (#3283 )
2019-12-11 08:12:19 +01:00
Lukas Matena
f6e217171a
Added comments in MeshUtils.hpp
...
PIMPL in MeshRaycaster now uses std::unique_ptr instead of raw pointer
2019-12-10 09:53:34 +01:00
Lukas Matena
4ba7cb7ede
Fix of the wipe tower starting point
...
see issues #2968 , #3234 and #3248
2019-12-04 13:47:02 +01:00
Lukas Matena
3ef34848c7
Fix of skirt: wipe tower was not correctly processed when rotated
2019-12-04 13:45:42 +01:00
Lukas Matena
a6e737f05a
Various small changes in hollowing gizmo:
...
- changed layout of controls
- fixed supports appearing when they shouldn't
- fixed clipping plane (holes were hidden at a bit different position of the plane then appropriate)
- when hollowing is done, clipping plane is automatically moved to show the cavity
- the dialog should no longed overlap bottom-left corner controls
- gizmo controls now correspond to config values in ObjectSettings box and both update each other
- added undo/redo support when manipulating holes
2019-12-03 10:45:49 +01:00
Lukas Matena
14d56929e7
SLA drain holes can be removed by right click, Ctrl+A selects all holes
2019-11-29 14:12:31 +01:00
Lukas Matena
735f82c019
Hollowing gizmo has now its own shortcut [H], fixed a situation with supports showed in editing mode
2019-11-29 13:56:39 +01:00
Lukas Matena
53976de250
Merge branch 'master' into lm_hollow_gizmo
2019-11-29 10:20:37 +01:00
Lukas Matena
f2a810f335
Merge branch 'lm_tm_hollowing' into lm_hollow_gizmo
2019-11-29 10:20:32 +01:00
Lukas Matena
73af7c64b8
SLATreeSupports generator now takes account for holes and can build supports through them
2019-11-29 10:19:02 +01:00
Lukas Matena
bc0db7dc91
Quickly added a hole height setting
2019-11-22 15:45:48 +01:00
Lukas Matena
c6e112a060
Merge branch 'lm_tm_hollowing' into lm_hollow_gizmo
2019-11-22 12:04:54 +01:00
Lukas Matena
2c1d256b0c
EigenMesh3D raycaster should now be able to pick a correct intersection on the object or inside a hole
2019-11-22 11:14:38 +01:00
Lukas Matena
9dd18a8d6d
Started work on extending EigenMesh3D to account for possible drain holes when raycasting
2019-11-19 11:33:49 +01:00
Lukas Matena
bbb519ad0e
Fixed a typo in MeshUtils.hpp
2019-11-16 08:22:39 +01:00
Lukas Matena
88514eeb0e
Merge branch 'lm_low_wipe_tower'
2019-11-14 10:37:04 +01:00
Lukas Matena
53cdb8ef53
No sparse layers option marked as EXPERIMENTAL
2019-11-14 10:05:02 +01:00
Lukas Matena
73ae733484
New icon for the hollowing gizmo
2019-11-12 15:04:40 +01:00
Lukas Matena
b6edd5ddb9
SLA support points gizmo renders the holes and does not allow to place a support point in them
2019-11-12 11:48:12 +01:00
Lukas Matena
b4795e1292
Unified igl calls in MeshRaycaster and EigenMesh3D
...
MeshRaycaster is still aware of the clipping plane but it now uses EigenMesh3D internally
Public interface of both classes is unchanged
2019-11-08 20:18:14 +01:00
Lukas Matena
645f13a0ae
Drain holes are now saved in ModelObject
...
Internal changes in GLGizmoHollow.cpp
2019-11-08 14:05:56 +01:00
Lukas Matena
9836533cb3
Hollowing task triggered by the gizmo now spawns a UI job to not block the UI thread
...
The AABB tree calculation is still done in the UI thread, so it gets blocked for some time
2019-11-07 14:25:03 +01:00
Lukas Matena
eaf815ca4b
Merge branch 'lm_hollow_gizmo' into lm_tm_hollowing
2019-11-05 14:41:06 +01:00
Lukas Matena
013e613221
Hollowing gizmo can now actually trigger the hollowing and render result
2019-11-05 14:40:22 +01:00
Lukas Matena
7542580ac1
Merge branch 'tm_openvdb_integration' into lm_hollow_gizmo
2019-11-05 11:16:51 +01:00
Lukas Matena
3fe160e60a
Added possibility to change hole height and taper
...
The parameters are yet not saved in ModelObject and they are common for all holes
2019-11-05 10:17:30 +01:00
Lukas Matena
04bcdff110
Added new hollowing gizmo
...
Basically just copied SLA support gizmo and removed all functionality that will not be needed
2019-11-05 10:17:27 +01:00
Lukas Matena
d632d91e79
WipeTower.cpp: The M220 B/R gcode is only emitted for Marlin firmware flavor
...
The extended gcode is now only supported by Prusa (https://github.com/prusa3d/PrusaSlicer/issues/3114 )
A pull request https://github.com/MarlinFirmware/Marlin/pull/15739 aims to extend the gcode in upstream Marlin as well
2019-10-31 15:08:20 +01:00
Lukas Matena
8b5561aec7
Fixed several warnings
2019-10-29 10:40:34 +01:00
Lukas Matena
62c90abbc0
Fix of SPE-1041: set_state function for gizmos is called even if they are turned on/off by the undo/redo action
2019-10-25 13:10:33 +02:00
Lukas Matena
fb7bba2b5a
CMakeLists.txt: turning off -W-ignored-attributes, there are loads of those with newer GCC, originating from Eigen ( https://eigen.tuxfamily.org/bz/show_bug.cgi?id=1221 )
2019-10-17 09:56:38 +02:00
Lukas Matena
605f0ecd54
Revert "CMakeLists.txt: turning off Wno-ignored-attributes on GCC and Clang again"
...
That change breaks compilation on the old buildserver (gcc 5.4). We'll deal with the warning later somehow.
This reverts commit 50448bf4dd .
2019-10-16 12:53:25 +02:00
Lukas Matena
50448bf4dd
CMakeLists.txt: turning off Wno-ignored-attributes on GCC and Clang again
...
Eigen still produces tons of those warnings on newer gcc
2019-10-15 15:10:52 +02:00
Lukas Matena
0dfbfa62df
wxExtensions.cpp: BitmapChoiceRenderer now updates config immediately after its combobox closes
...
This was needed because for some reason, the combobox would not lose focus when mouse left the ObjectList on Linux (KILL_FOCUS forces the update).
The update could be bypassed on Win too by changing extruder and hitting shortcut to reslice.
2019-10-10 11:03:55 +02:00
Lukas Matena
7b45014721
GCode.cpp: Removed a failing assert that was no longer needed
...
The situation it checked happens when the wipe tower is lower than the tallest print object.
The function processes that correctly.
2019-10-10 09:54:27 +02:00
Lukas Matena
59a6318931
Merge branch 'lm_wipe_tower_in_skirt'
2019-10-08 14:13:07 +02:00
Lukas Matena
cf030e8958
Simplified inclusion of the wipe tower into skirt calculation
2019-10-08 14:12:40 +02:00
Lukas Matena
fdf9272fbe
Wipe tower brim width is now part of WipeTowerData class, so it can be used wherever needed
2019-10-08 13:50:51 +02:00
Lukas Matena
9a9c3bac39
Fixup of 47a8b49
2019-10-08 11:05:59 +02:00
Lukas Matena
61cee54dd3
Merge branch 'master' into lm_low_wipe_tower
2019-10-01 13:24:25 +02:00
Lukas Matena
38d8854a48
Print::validate() - check for empty print has been moved at the beginning of the function
...
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.
2019-10-01 12:48:58 +02:00
Lukas Matena
b5e3899267
Wipe tower: Sparse layers are not included in filament consumption in case that the 'no sparse layers' option is set
2019-10-01 11:41:37 +02:00
Lukas Matena
5ded376fe2
An attempt to fix #2997
...
More fixes might be needed on the other platforms
2019-09-28 09:57:26 +02:00
Lukas Matena
d57a09558e
Several fixes of previous commits related to KDTreeIndirect.hpp and ShortestPath.cpp/.hpp
2019-09-27 13:30:07 +02:00
Lukas Matena
5123673b3a
CMakeLists: filename fix so everything works on case-sensitive filesystems
2019-09-27 11:42:52 +02:00
Lukas Matena
661c91a821
Fixing Linux build
...
GCC 4.8 does not fully support C++11 and in-class char array initialization
2019-09-27 11:31:16 +02:00
Lukas Matena
dbc51a140d
Fixed erroneous use of logical OR where bitwise OR was meant
...
Also, PrintBase::SlicingStatus enum had two entries assigned to 0 - removed the one that was never used
2019-09-25 12:18:30 +02:00
Lukas Matena
1d18339e62
PRUS.cpp: Fixed an always-true condition in extract_model_from_archive
...
SupportMaterial.cpp: Simplified one condition (also solves a -Wmaybe-uninitialized warning on gcc)
2019-09-24 18:09:48 +02:00
Lukas Matena
b67d8c1614
Fixed memsetting non-trivially-copyable types
...
Types stl_stats, stl_normal and SurfaceFillParams should not be zeroed by memset
This is not correct and also triggered warnings on gcc
2019-09-24 17:09:07 +02:00
Lukas Matena
7861fa5086
Whitespace changes to supress misleading indentation warnings
...
These appear in newer gcc when spaces and tabs are mixed
2019-09-24 16:01:01 +02:00
Lukas Matena
c1e3be9b27
MeshUtils.cpp: MeshRaycaster is now aware of the clipping plane
2019-09-24 12:58:12 +02:00
Lukas Matena
656569b0e9
Fix of https://github.com/prusa3d/PrusaSlicer/issues/2953
...
printf-like function argument mismatch: num was long, which was obfuscated by the auto keyword
2019-09-20 16:47:10 +02:00
Lukas Matena
abaebb489a
Added a config option to not print sparse layers on the wipe tower
2019-09-20 10:54:20 +02:00
Lukas Matena
04f051ff61
Wipe tower now doesn't print sparse layers, it is instead lower than the object
2019-09-20 10:54:20 +02:00
Lukas Matena
b241ba16ed
Fixed layer profile equality check for wipe tower validation (fixup of b43003d)
2019-09-20 10:53:50 +02:00
Lukas Matena
76a657ce52
Plater.cpp - better added a range-check when selecting filament color in purging volumes dialog
2019-09-18 12:54:21 +02:00
Lukas Matena
741e98804c
Purging volumes dialog now uses filament colour in case extruder color is undefined
2019-09-18 11:47:19 +02:00
Lukas Matena
dd7eb0b186
Merge branch 'lm_raycasting_refactoring' into dev
2019-09-17 14:59:14 +02:00
Lukas Matena
6bcafd7c83
SLA gizmo no more uses IGL code directly, all was moved to the new MeshRaycaster class
2019-09-17 14:57:57 +02:00
Lukas Matena
1dfd8a0e62
MeshRaycaster class is now used in SLA gizmo when selecting by rectangle
2019-09-17 14:57:54 +02:00
Lukas Matena
3694bf3da9
Added functions get_hit_pos, get_hit_normal, ready to implement intersect_ray
2019-09-17 14:57:49 +02:00
Lukas Matena
b6292247e8
Unproject on mesh in the SLA gizmo is now performed by the MeshRaycaster class
2019-09-17 14:57:45 +02:00
Lukas Matena
ee7132a23d
Fixup of 4f89672 + allowing negative support_contact_z
2019-09-13 15:47:00 +02:00
Lukas Matena
2c0b5e6a0a
Merge branch 'lm_clipping_plane_refactoring' into dev
2019-09-13 12:13:22 +02:00
Lukas Matena
70c0c87598
Renamed MeshClipper.cpp/.hpp to MeshUtils.cpp/.hpp
...
More helper classes like the MeshClipper could live here
Moved ClippingPlane class in here to start
2019-09-13 12:03:53 +02:00
Lukas Matena
9782701dd4
Calculating the transformations is now only performed by the MeshClipper
...
Attempted to get mirroring right (that never worked correctly with the clipping plane in the sla gizmo)
The transformation of the support mesh is kind of a mystery to me, hopefully it is right
Also cleaned the code a bit (removed commented-out code, unused variables, etc)
2019-09-13 12:03:53 +02:00
Lukas Matena
546917830b
Initial implementation of MeshClipper class
...
So far the work is shared between the old code in GLGizmoSlaSupports.cpp and the new class
2019-09-13 12:03:53 +02:00
Lukas Matena
cf23146ee3
Refactoring the SLA clipping plane
...
The plane is now internally stored as a plane in world coordinates
2019-09-13 12:03:53 +02:00
Lukas Matena
2fef16c39a
Fix of #1266 and #2258
...
In case there were empty object layers supposed to be floating on supports which were set to use a specific extruder, wipe tower was missing layer required to do the toolchange, leading to a crash
Such cases are now detected and layers that need it are additionally assigned as wipe tower layers
Also tracked as SPE-526
2019-09-10 13:13:21 +02:00
Lukas Matena
4fc20090c8
GUI_ObjectList.cpp: Max layer height defaults to 0.75*nozzle_diameter as it should ( #2892 )
2019-09-10 12:34:03 +02:00
Lukas Matena
c5f78dd6e2
Some more warnings fixed (WipeTower.cpp/.hpp)
2019-09-10 12:08:43 +02:00
Lukas Matena
86b258f727
Fixed many warnings in following files:
...
src/slic3r/Config/Snapshot.cpp
src/slic3r/GUI/Field.cpp
src/slic3r/GUI/GLToolbar.cpp
src/slic3r/GUI/GUI_ObjectList.cpp
src/slic3r/GUI/GUI_ObjectList.hpp
src/slic3r/GUI/Plater.cpp
src/slic3r/GUI/Plater.hpp
src/slic3r/GUI/PresetBundle.cpp
src/slic3r/GUI/Tab.cpp
src/slic3r/GUI/wxExtensions.cpp
2019-09-10 12:08:43 +02:00
Lukas Matena
a62bba2508
CoolingBuffer.cpp: Fixed a crash when encountering an invalid toolchange
...
This can happen if the user enters invalid toolchange through the custom gcodes
Such toolchange is now simply ignored by the CoolingBuffer, exporting gcode is NOT stopped, a log error is emitted
2019-09-10 11:46:18 +02:00
Lukas Matena
4dbc8b22a5
Updated tooltip
2019-09-09 16:39:26 +02:00
Lukas Matena
97a02f4412
Merge branch 'lm_custom_toolchange'
2019-09-09 16:12:09 +02:00
Lukas Matena
822bc7a91c
Fix of previous commit, tooltip update
2019-09-09 16:02:39 +02:00
Lukas Matena
499fdeddd1
Custom toolchange gcode is searched for tool-changing command
...
If the custom toolchange gcode switches extruder to the one that is expected, PrusaSlicer does not issue its own T command
Otherwise, this command is inserted just after the custom gcode, even in case it is not empty
This should prevent issues such as #2884 and #2886 from being reported
2019-09-09 13:05:18 +02:00
Lukas Matena
a985a2720f
Fixed some more warnings, moved function to get ExtrusionRole name into ExtrusionEntity.hpp
...
So it can be called from wherever it may be needed
2019-09-06 15:55:07 +02:00
Lukas Matena
3f988b314c
Fixed several warnings (Config.hpp and few other files)
2019-09-06 15:55:07 +02:00
Lukas Matena
6cc29c308c
Fill.cpp: Fixed a typo
2019-09-05 16:03:44 +02:00
Lukas Matena
09e4ac42ba
Fixed some more warnings (mostly GLGizmoSlaSupports.cpp)
2019-09-04 16:05:32 +02:00
Lukas Matena
570bec299f
Merge branch 'master' into dev
2019-09-04 15:50:18 +02:00
Lukas Matena
326eb5e343
GUI_ObjectList.cpp: Fixed a crash when deleting instances.
...
Deleting second-but-last instance deletes the whole Instances node, we must select object node in that case.
2019-09-04 15:15:35 +02:00
Lukas Matena
805a5d22a1
Fixed couple of warnings in WipeTower.cpp, ToolOrdering.cpp and GCode.cpp
2019-09-04 14:56:35 +02:00
Lukas Matena
fd47891793
GLGizmoSlaSupports.cpp: Snapshot label now differs for turning the gizmo on/off
...
This behaviour was broken by recent merge
2019-09-03 10:16:06 +02:00
Lukas Matena
b89d9c7aff
Merge branch 'lm_gizmomanagerrefactoring' into dev
2019-09-03 08:29:31 +02:00
Lukas Matena
66d74bc591
Merge branch 'lm_layer_height_validation' into dev
2019-09-02 16:31:59 +02:00
Lukas Matena
7d54b04699
Merge branch 'lm_wiping_dialog_colors' into dev
2019-09-02 16:31:22 +02:00
Lukas Matena
9ac6909d30
Fixed couple of warnings in GUI_ObjectList.cpp and GUI_ObjectSettings.cpp
2019-09-02 16:27:48 +02:00
Lukas Matena
942f959e87
Fixed couple of warnings
...
Turned several includes into forward declarations
Removed several sprintf calls in favor of std::to_string
2019-09-02 16:27:48 +02:00
Lukas Matena
19ab746a38
Merge branch 'master' into lm_gizmomanagerrefactoring
2019-09-02 14:31:03 +02:00
Lukas Matena
d8a274c5ab
Nearly finished refactoring of GLGizmoManager
2019-09-02 14:30:15 +02:00
Lukas Matena
409a7c7734
SLA gizmo open/close should be saved on undo/redo stack
2019-09-02 14:30:15 +02:00
Lukas Matena
b6d35c9840
Started an attempt to refactor GLGizmoManager
2019-09-02 14:30:12 +02:00