Commit Graph

290 Commits

Author SHA1 Message Date
Lukas Matena
c1e3be9b27 MeshUtils.cpp: MeshRaycaster is now aware of the clipping plane 2019-09-24 12:58:12 +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
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
bubnikv
6ba43ebacb Merge remote-tracking branch 'remotes/origin/master' into dev 2019-09-09 17:49:07 +02:00
Enrico Turri
eae02f6cad Fixed handling of mouse left up event when moving an object while the place on face gizmo is active 2019-09-09 14:56:55 +02:00
Lukas Matena
09e4ac42ba Fixed some more warnings (mostly GLGizmoSlaSupports.cpp) 2019-09-04 16:05:32 +02:00
Enrico Turri
308f601a99 Removed another bunch of compile warnings 2019-09-04 10:46:51 +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
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
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
Enrico Turri
7f589e79f7 Follow-up of 32dc4709a4 -> A more general fix 2019-08-26 09:06:21 +02:00
bubnikv
6adebb9c78 When synchronizing the front end with the back end after Undo / Redo
jump, postpone error messages, so they are displayed after
the Undo / Redo jump has been fully performed.
Otherwise there would be a message box opening, taking over the message
queue, and possibly performing actions as rendering on an inconsistent
application state.
2019-08-23 15:53:45 +02:00
bubnikv
12cb930634 A little optimizaiton 2019-08-23 13:27:19 +02:00
Lukas Matena
1d8e060b75 Followup of previous commits - removing some unnecessary code 2019-08-23 12:11:45 +02:00
Lukas Matena
bf232e1ade Fixed forward declaration of struct Slic3r::UndoRedo::Snapshot so MSVC does not complain 2019-08-23 10:34:16 +02:00
Lukas Matena
52933d1bab Recalculate SLA supports after undo/redo in case SLA gizmo was active and had supports when the snapshot was taken 2019-08-23 01:42:59 +02:00
Lukas Matena
b55a140ad4 SLA gizmo takes snapshots on opening and closing 2019-08-23 01:42:59 +02:00
Lukas Matena
c736b657d4 SLA gizmo now refuses to close with unsaved changes in editing mode 2019-08-23 01:42:59 +02:00
Lukas Matena
24b9c926c6 GLGizmoManager.cpp: Initial work on the possibility of a gizmo refusing to close 2019-08-23 01:42:59 +02:00
bubnikv
23b2b4c59f Merge remote-tracking branch 'remotes/origin/vb_picking_fix' 2019-08-08 09:50:02 +02:00
Lukas Matena
1789179506 GLGizmoSlaSupports.cpp: unproject_on_mesh does not throw exceptions but uses bool return value to signal success 2019-08-07 16:17:41 +02:00
bubnikv
841d0796b7 Fix of the SLA gizmo picking. 2019-08-07 15:36:09 +02:00
bubnikv
2d7f478dac Finished picking by color with a checksum in the alpha channel
to guard against unwanted alpha blending and / or multi sampling.
2019-08-07 14:15:38 +02:00
bubnikv
1ba9100994 Fix of gizmo deserialization after Undo / Redo: Deselect all gizmos
but the gizmo to be deserialized.
2019-07-31 14:00:43 +02:00
Lukas Matena
599f2e07db Config parameters accessible from SLA gizmo are now saved on the undo/redo stack 2019-07-31 12:40:47 +02:00
Lukas Matena
ab0d1af3ca Fixed a problem with deleting button in SLA gizmo 2019-07-31 10:33:03 +02:00
Lukas Matena
99f34f8321 SLA gizmo: fixed a crash with multiple selection 2019-07-31 10:18:49 +02:00
bubnikv
ca1c78b3fc Merge remote-tracking branch 'remotes/origin/et_custom_bed' 2019-07-30 16:48:47 +02:00
Lukas Matena
07608a80cd SLA gizmo - making sure the cone direction is correctly undone/redone 2019-07-30 14:51:57 +02:00
Lukas Matena
eeef3b42df SLA gizmo now uses the new separate undo/redo stack for manual editing mode 2019-07-29 13:07:49 +02:00
Lukas Matena
fe62362960 Hiding the sla support structures after undo/redo 2019-07-28 11:37:08 +02:00
Enrico Turri
9bcdb2ebd0 Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into et_custom_bed 2019-07-25 15:29:25 +02:00
Enrico Turri
4e4bdb5edd Removed obsolete code 2019-07-25 15:28:34 +02:00
Enrico Turri
1b5ba6c823 Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into et_custom_bed 2019-07-23 15:36:39 +02:00
Lukas Matena
0ae46b0635 SLA gizmo and undo/redo: 'autogenerated points' state is now correctly undone/redone 2019-07-23 15:23:38 +02:00
Lukas Matena
91a5d70a62 Fixed a few warnings in headers (meaning they were reported once for each include)
Fixed an identification of CXX compiler in cmake so that 'AppleClang' is recognized
2019-07-23 14:02:20 +02:00
Enrico Turri
9cb1a584e1 Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into et_custom_bed 2019-07-22 08:21:40 +02:00
enricoturri1966
33c0683d11 Reworked rendering of toolbars background texture 2019-07-20 12:02:29 +02:00
Enrico Turri
749bb2bfed Refactoring in GLTexture 2019-07-19 11:18:19 +02:00
bubnikv
a0ea96968d Storing the active printer technology onto the Undo / Redo stack,
remembering the last selected Printer profile for the SLA and FDM
technologies separately, and activating them on Undo / Redo.

When switching the technologies, user is asked whether to discard
the modified profiles or not.
2019-07-18 17:41:47 +02:00
Lukas Matena
2b9d285a16 'Place on face' gizmo fix (it used invalid pointer after undo/redo was implemented) 2019-07-17 15:39:58 +02:00
Lukas Matena
81dde630ea SLA support points edits are now pushed onto undo/redo stack 2019-07-17 15:39:58 +02:00
Enrico Turri
f97a61cdcf Fixed use of translate macros 2019-07-17 14:13:50 +02:00
Enrico Turri
401707a6fe Another refactoring of GLGizmosManager 2019-07-17 12:43:27 +02:00
Enrico Turri
da1fa0b6e3 Refactoring of GLGizmosXX classes to cleanup their interface 2019-07-17 12:06:23 +02:00
Enrico Turri
21624f5305 Framework to serialize gizmos into undo/redo stack
Serialization into undo/redo of Cut gizmo

Refactoring of GLGizmosManager
2019-07-17 08:38:48 +02:00
bubnikv
ab7ecc1819 Merge remote-tracking branch 'remotes/origin/vb_undo_redo' 2019-07-15 11:34:18 +02:00
YuSanka
4d8a028262 Finally fix for settings item selection 2019-07-12 13:56:56 +02:00
Enrico Turri
cc70c8dff9 Tech ENABLE_SVG_ICONS set as default 2019-07-12 10:13:35 +02:00
Enrico Turri
d4914441f3 Modified logic to add snapshots to undo/redo stack using GLCanvas::do_xxxxxx() methods 2019-07-09 10:18:57 +02:00
bubnikv
270fec84d3 Fix of the Undo / Redo for Cut.
Added some more operations (for example Rotation) to the Undo / Redo.
2019-07-05 19:46:48 +02:00
bubnikv
4e2fda3315 Undo / Redo fixes 2019-07-05 19:06:19 +02:00
bubnikv
c7cc760067 Merge remote-tracking branch 'origin/master' into vb_undo_redo 2019-07-04 20:22:15 +02:00
Enrico Turri
2356fe5a13 Added member BoundingBoxf3 m_bounding_box to GLIndexedVertexArray and removed member BoundingBoxf3 bounding_box from GLVolume 2019-07-01 13:26:06 +02:00
Enrico Turri
4269c8b23c Removed GLVolume non-VBO rendering 2019-07-01 12:28:16 +02:00
Vojtech Kral
61080bcff6 Merge branch 'bugfixes': avrdude warnings cleanup 2019-06-28 15:21:45 +02:00
bubnikv
27ee68d2f9 WIP Undo / Redo: ModelID / ModelBase renamed to ObjectID / ObjectBase 2019-06-27 11:02:45 +02:00
BeldrothTheGold
d818d1b429 Add debug option to display picking pass to screen 2019-06-25 19:25:03 -06:00
Vojtech Kral
4fb904357f Warnings cleanup in BonjourDialog, ConfigWizard, FirmwareDialog,
GLGizmoCut, ImGuiWrapper
2019-06-25 18:16:53 +02:00
Enrico Turri
5766e9e915 Fixed conflicts after merge with branch et_perpsective_camera 2019-06-24 11:08:42 +02:00
Enrico Turri
00b9a3ad32 ENABLE_COMPRESSED_TEXTURES set as default 2019-06-24 09:54:58 +02:00
Enrico Turri
96276394d1 Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into et_experiments 2019-06-24 08:15:41 +02:00
Enrico Turri
da8179d9c7 More camera related functionalities moved from GLCanvas3D to Camera 2019-06-19 14:18:51 +02:00
Enrico Turri
28dd52d88b Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into et_perspective_camera 2019-06-19 08:17:58 +02:00
bubnikv
c95a324c3f Merge branch 'vb_admesh_fix' 2019-06-18 08:54:50 +02:00
Enrico Turri
5ee695b629 #2506 - Fixed crash while manually editing SLA supports 2019-06-18 08:53:13 +02:00
Enrico Turri
1a91add2e6 Tighter camera frustrum to reduce z-fighting 2019-06-14 10:38:09 +02:00
Enrico Turri
7bfb0aaac0 Fixed method Camera::get_dir_forward() 2019-06-13 08:38:49 +02:00
bubnikv
0bb8ee149e Sharing TriangleMesh objects between the front end (UI) and back end
(background processing)
2019-06-11 17:08:47 +02:00
bubnikv
0cb5b57c5c SLA gimzmo: Sharing the Mesh's indexed triangle set with IGL AABB
structure directly, without having to make a copy.
2019-06-10 22:43:21 +02:00
bubnikv
8da54139c4 WIP: Admesh - replacement of C memory allocation with std vectors 2019-06-04 22:06:42 +02:00
Enrico Turri
886da08f89 Texture compression set as an option 2019-05-28 12:53:16 +02:00
Lukas Matena
66a56941a5 SLA dialog: Prevented the slider to have zero width, even in case the text width is calculated incorrectly 2019-05-27 15:36:51 +02:00
Enrico Turri
bf9740188a Code cleanup 2019-05-24 15:22:27 +02:00
Enrico Turri
734d946912 1) Added Scale to print volume menu item to objects list context menu
2) Disable [F] key when scale sizmo is dragging
2019-05-24 14:42:59 +02:00
Enrico Turri
c92940c985 Fixed conflicts after cherry-picking 844e99f84e 2019-05-24 14:42:46 +02:00
Enrico Turri
77efc33670 Fixed scaling of multiple selection 2019-05-22 13:57:39 +02:00
Lukas Matena
03a62e5721 Fixed rendering of support points in SLA gizmo for mirrored objects 2019-05-20 16:33:57 +02:00
Enrico Turri
5f6c7853d4 Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer 2019-05-14 11:57:48 +02:00
Enrico Turri
14c4469cbf Added Esc shortcut and menu item for command deselect all 2019-05-14 11:57:39 +02:00
bubnikv
cd13b90457 Merge branch 'lm_sla_dialog_scaling' 2019-05-14 11:19:08 +02:00
Lukas Matena
1e99454602 Hopefully fixed SLA dialog scaling issues on OSX 2019-05-13 15:10:01 +02:00
Lukas Matena
76c3da9aba An attempt to fix the SLA gizmo dialog so it does not crop long description on the sliders 2019-05-13 15:10:01 +02:00
Enrico Turri
f55e494899 Constrained gizmo-scaling -> Fixed grabbers offsets transformation for volumes 2019-05-13 09:02:33 +02:00
Enrico Turri
9a16af5251 Merge branch 'master' of https://github.com/prusa3d/Slic3r into et_copy_and_paste 2019-05-13 08:30:30 +02:00
YuSanka
cd82b03a0e Localization improvements : Empty spaces at the end of phrase are removed from dictionary.
+ new POT
2019-05-11 23:29:25 +02:00
Enrico Turri
11c7accabf Constrained gizmo-scaling -> small refactoring 2019-05-10 14:44:10 +02:00
Enrico Turri
38e8f345f5 Constrained gizmo-scaling -> fixed offset for uniform scale 2019-05-10 14:04:43 +02:00
Enrico Turri
efcc38f717 Constrained gizmo-scaling -> keep initial ctrl key status while dragging 2019-05-10 13:50:25 +02:00
Enrico Turri
86d466688b Merge branch 'master' of https://github.com/prusa3d/Slic3r into et_copy_and_paste 2019-05-10 13:08:19 +02:00
Enrico Turri
d69c98b48d Constrained gizmo-scaling -> code cleanup and simplification 2019-05-10 13:07:59 +02:00
Enrico Turri
baa8bace8d Removed duplicated line 2019-05-10 11:44:47 +02:00
Enrico Turri
f0da19446b Merge branch 'lm_arrange_wipe_tower' of https://github.com/prusa3d/Slic3r 2019-05-10 11:14:42 +02:00
Enrico Turri
128da453d5 1st installment of constrained gizmo-scaling 2019-05-10 11:13:55 +02:00
bubnikv
b7361200bf Some more localization improvements. 2019-05-09 19:24:21 +02:00
bubnikv
8126ec33fc Fixed localization of 3D scene toolbar tips. 2019-05-09 17:18:03 +02:00
bubnikv
054a3258d3 Merge branch 'master' of https://github.com/prusa3d/Slic3r 2019-05-07 15:45:17 +02:00
Enrico Turri
2ce0c575f6 Fixed objects rendering when turning off sla supports gizmo 2019-05-07 15:37:41 +02:00
Lukas Matena
e9a53e49db Arrange is accounting for the wipe tower now 2019-05-06 08:14:45 +02:00
Lukas Matena
5f226c5d7f Allow wipe tower rotation by the rotation gizmo 2019-05-06 08:14:45 +02:00
bubnikv
31e724abac Merge branch 'master' into vb_wold_object_manipulation 2019-05-04 20:59:57 +02:00
YuSanka
8e007c5b6a Localization improvements 2019-05-04 02:07:07 +02:00
bubnikv
1c6006f657 Merge remote-tracking branch 'remotes/origin/master' into vb_wold_object_manipulation 2019-05-03 12:37:43 +02:00
bubnikv
0ab96ed6b5 Changed the "non-uniform scaling is not possible" message. 2019-05-03 12:36:26 +02:00
bubnikv
ebb7981d16 Merge remote-tracking branch 'remotes/origin/master' into vb_wold_object_manipulation 2019-04-29 17:39:28 +02:00
bubnikv
e5c97364a4 Fix of anisotropic scaling from the 3D scene. 2019-04-29 16:01:52 +02:00
Enrico Turri
6ec9d6ba3f Merge branch 'master' of https://github.com/prusa3d/Slic3r into et_selection_rectangle 2019-04-29 09:02:50 +02:00
Enrico Turri
2c9e3819c1 Darker colors for axes arrows, transformation visual hints and gizmo grabbers 2019-04-29 09:02:04 +02:00
Enrico Turri
fdf1b8af81 Rectangle selection -> Removed cursor change 2019-04-29 08:26:08 +02:00
Enrico Turri
ec2f319a3d Rectangle selection in 3D scene -> rendering 2019-04-25 09:10:03 +02:00
Enrico Turri
9d070410c2 Refactoring of GLSelectionRectangle 2019-04-24 16:01:27 +02:00
Enrico Turri
d79a2b8d2d GLCanvas3D -> added support for cursor change and change cursor when using SLA support gizmo rectangle selection 2019-04-24 15:43:52 +02:00
Enrico Turri
9710140948 int GLCanvas3D::m_hover_volume_id replaced with std::vector<int> GLCanvas3D::m_hover_volume_idxs 2019-04-24 15:07:28 +02:00
Lukas Matena
ae692635da Selection rectangle moved into a separate class 2019-04-24 13:25:41 +02:00
bubnikv
5d2537af35 WIP: Transformations of an instance in world coordinate system
from the side panel.
2019-04-24 11:01:59 +02:00
Lukas Matena
55c07394e5 Added dialog with shortcuts to the SLA gizmo, tried to improve the dialog look 2019-04-18 15:46:35 +02:00
Lukas Matena
0c1e223414 SLA gizmo clipping plane is now not necessarily perpendicular to camera direction 2019-04-17 14:27:20 +02:00
Lukas Matena
8df2a19974 SLA clipping plane can now be controlled by Ctrl + mouse wheel rotation 2019-04-17 14:27:20 +02:00
Enrico Turri
50516e3b7d Attempt to fix Ctrl+C from 3D scene on Mac 2019-04-17 10:27:33 +02:00
Lukas Matena
19759b4315 SLA gizmo clipping - changed color on the cuts of supports, turned their rendering in editing mode (when the supports are not shown) 2019-04-17 09:39:51 +02:00
Lukas Matena
63ce3c3150 SLA gizmo now does not make redundant copies of the object and supports meshes 2019-04-16 09:04:04 +02:00
Lukas Matena
f33e9bf609 TriangleMeshSlicer is now initialized by const-pointer to the mesh, responsibility for calling require_shared_vertices is left to the caller 2019-04-16 09:04:04 +02:00
Lukas Matena
a177a7e1da SLA gizmo clipping now also triangulates the cuts on support structure 2019-04-16 09:04:04 +02:00
Enrico Turri
d8f28bc31a Follow-up of 1fbdf7bdaa -> Fixed grabbers size for move gizmo and grabbers dragging size 2019-04-15 15:05:26 +02:00
bubnikv
80afb6da78 Fixed SLA clippling plane & picking. 2019-04-12 16:08:40 +02:00
Lukas Matena
4abcf7bec4 SLA gizmo dialog height increased so the new clipping plane slider fits 2019-04-12 14:25:41 +02:00
bubnikv
112f218c03 Merge branch 'lm_sla_gizmo_clipping_plane' 2019-04-11 15:45:49 +02:00
bubnikv
4a210aeecf Vojtech's improvements in the SLA preview cutting dialog. 2019-04-11 15:44:32 +02:00
Lukas Matena
096d23f971 SLA gizmo fix: Discarding manual edits on autogenerated points removed all the points from the gizmo cache 2019-04-10 15:27:44 +02:00
Lukas Matena
678c513cb9 Merge branch 'master' into lm_sla_gizmo_clipping_plane 2019-04-10 13:43:02 +02:00
Lukas Matena
e6439ad010 SLA gizmo fix: recalculation of the mesh was sometimes skipped 2019-04-10 13:33:58 +02:00
bubnikv
7b8b8b97ef Fixed Cmd-A selection in the SLA gizmo. 2019-04-10 10:16:04 +02:00
Lukas Matena
f71e14a4d9 SLA gizmo now uses ctrl to add to selection and alt to remove from selection 2019-04-08 15:34:42 +02:00
Lukas Matena
837bc43c9f SLA gizmo on_set_state code is now called through CallAfter to prevent repeated wxMessageDialog appearances (seen on OSX) 2019-04-08 11:56:13 +02:00
Lukas Matena
eadf7daa37 Merge branch 'master' into lm_sla_gizmo_clipping_plane 2019-04-08 10:50:10 +02:00
Lukas Matena
09cf1b9b00 Allowed general object transformation and SLA z-shift (clipping plane) 2019-04-08 10:31:53 +02:00
Lukas Matena
7531f2d5e7 Selection rectangle now respects the clipping plane position 2019-04-08 10:31:22 +02:00
Lukas Matena
bbda1896f9 The gizmo is now able to triangulate and show the cut, the triangulated cut is cached 2019-04-08 10:31:19 +02:00
Lukas Matena
9b7857aaab SLA gizmo clipping plane logic moved to fragment shader
This means the clipping now works again with both legacy and modern OpenGL
2019-04-08 10:31:16 +02:00
Lukas Matena
273fcf68a1 SLA gizmo now uses glClipPlane instead of touching projection matrix
Messing with the projection matrix invalidates the z-buffer
This currently only works in OpenGL legacy mode
2019-04-08 10:31:13 +02:00
Lukas Matena
bc9164e40c SLA gizmo now respects the clipping plane when rendering points and raycasting mouse onto mesh 2019-04-08 10:31:10 +02:00