Commit Graph

193 Commits

Author SHA1 Message Date
Enrico Turri
0d6a013658 GCode Preview - Coloring by tool 2018-02-07 09:07:37 +01:00
Enrico Turri
6ff9021e04 GCode Preview - Legend texture shown only when gcode is available 2018-02-06 12:43:25 +01:00
Enrico Turri
a417cf955d GCode Preview - Code cleanup 2018-01-17 10:39:05 +01:00
Enrico Turri
c63e6b74fa GCode Preview - Added legend texture 2018-01-16 14:59:06 +01:00
Enrico Turri
0f4bec8af0 gcode preview - first installment - wip 2018-01-08 13:44:10 +01:00
bubnikv
673e98bc83 When the legacy OpenGL 1.2 is enforced, suppress anti aliasing as well.
Let's hope it will be a valid workaround for the reoccuring
buggy Intel HD Graphics driver issue.
2017-12-12 20:47:36 +01:00
bubnikv
743fc9dbd0 Workaround for buggy Intel HD Graphics OpenGL drivers:
Fall back to OpenGL 1.1 by a "use_legacy_opengl" preferences switch.
https://github.com/prusa3d/Slic3r/issues/233
https://github.com/prusa3d/Slic3r/issues/268
https://github.com/prusa3d/Slic3r/issues/619
2017-12-11 18:00:51 +01:00
bubnikv
ee645007f2 Another step towards C++ presets. 2017-10-25 12:53:31 +02:00
bubnikv
6d4ec5c989 Further fix of https://github.com/alexrj/Slic3r/issues/4085
making it safe in case wxWidgets do not report supporting multisampling,
but the OpenGL context actually does and it leaves the multi-sampling enabled.
This then may in theory lead to incorrect picking by color.
2017-09-12 10:14:24 +02:00
bubnikv
888a904c9b Workaround of
"GL_MULTISAMPLE and GL_ARRAY_BUFFER_ARB messages on failed launch"
https://github.com/alexrj/Slic3r/issues/4085

Also fixes
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=872273
2017-09-12 10:03:10 +02:00
bubnikv
ed46cfa19d Simplified the code base by requiring wxWidgets >= 3.0 2017-08-03 17:47:18 +02:00
bubnikv
3b51f64411 Fixing https://github.com/prusa3d/Slic3r/issues/432
Slic3r GUI not starting, error when using --gui (on linux)

Implements https://github.com/prusa3d/Slic3r/issues/407
Shortcuts: Movement in 3D Space
Assignment of the camera shortcuts is clear from the menu accelerators.

Implements https://github.com/prusa3d/Slic3r/issues/406
Shortcuts: Rotate +/- 45 degrees
l/r keys rotate the object

Also changed the accelerators for adding / removing duplicates from
Ctrl++/- to plain +/-, from Ctrl-Del to plain Del,
and added an 's' key accelerator for uniform scaling.
2017-07-21 16:29:40 +02:00
bubnikv
fdb5ed1fcb Fix for "Crash when deleting all objects"
https://github.com/prusa3d/Slic3r/issues/193
2017-06-13 13:42:38 +02:00
bubnikv
5cae4cc614 Fix of https://github.com/prusa3d/Slic3r/issues/285
Refactored Model.cpp/hpp to C++x11 loops,
simplified the mesh / bbox handling.
2017-06-13 11:35:24 +02:00
bubnikv
02ab92ea65 Little improvements of the 3D manipulation usablility:
Limit zoom out to 3x the "scene fit" amount.
Disable wheel scrolling when the middle button is pressed.
2017-06-09 15:02:11 +02:00
bubnikv
958c6553e7 Hopefully a fix of
"Layer editing does not trigger reslicing with Background Processing enabled"
https://github.com/prusa3d/Slic3r/issues/293
2017-06-09 13:27:35 +02:00
bubnikv
6ce832e439 The OpenGL Z-bufer has low precision, therefore a bounding box test
had to be relaxed.
2017-06-08 20:50:24 +02:00
bubnikv
27003dc0fd Possible fix of
https://github.com/prusa3d/Slic3r/issues/260
https://github.com/prusa3d/Slic3r/issues/272
by disabling opengl blending when picking.

Also the limiting region for object movement has been rounded smoothly.
2017-06-08 12:23:50 +02:00
bubnikv
fe409a76a6 Fixed panning issues when the camera is parallel to the bed plane. 2017-06-08 12:01:35 +02:00
bubnikv
8b5f7f0fb2 Limit the object movement to the vincinity of the print bed. 2017-06-08 11:02:29 +02:00
bubnikv
88c9ae6ca6 Fix of
https://github.com/prusa3d/Slic3r/issues/315
a crash if the max_layer_height is left to a default value of zero.
2017-06-05 12:02:26 +02:00
bubnikv
efb1fd2066 Fixed order of loading the configs into Print / PrintObjects
and loading the 3d print path preview.
2017-05-30 17:24:50 +02:00
bubnikv
e000b22578 Implemented wipe tower print path preview. 2017-05-25 22:27:53 +02:00
bubnikv
7d64c465c0 New config field extruder_color for preview of extruder assignment. 2017-05-24 15:20:20 +02:00
bubnikv
6fa280be0b Finished the wipe tower UI. 2017-05-19 21:48:32 +02:00
bubnikv
cb0a66b743 Initial implementation of a wipe tower preview UI. 2017-05-17 16:53:40 +02:00
bubnikv
8040ef8efb Fixing a bug in the layer editor for high diameter nozzles.
https://github.com/prusa3d/Slic3r/issues/247
2017-04-11 11:16:47 +02:00
bubnikv
36416d77b8 Fixes of VBO rendering on Linux with wxWidgets & GTK 2017-03-30 10:25:52 +02:00
bubnikv
95b45da57c Fixed 3D view of the Cut dialog. 2017-03-28 14:18:13 +02:00
bubnikv
6b99cbdc02 Had the vertex buffer objects disabled for debugging purposes by mistake. 2017-03-21 08:59:48 +01:00
bubnikv
d8f0c0bdff Fixed bug in variable layer height editing: Make the OpenGL context
current.
2017-03-20 15:55:22 +01:00
bubnikv
045de596e2 Use OpenGL 2.0 shaders for the layer height rendering.
Use OpenGL 2.0 shaders for the print path rendering for performance reasons.
2017-03-20 12:05:20 +01:00
bubnikv
7f7d2da5fe Use Vertex Buffer Objects for rendering of 3D volumes if possible. 2017-03-16 14:02:28 +01:00
bubnikv
93cab990c7 Fixed some memory allocation issues of the new C++ 3d path preview
(reserved memory has to be shrank around the collected data).

Initial implementation of the vertex buffer objects for the 3d path preview.
2017-03-15 20:45:03 +01:00
bubnikv
d18e10c7c9 Rewrote the OpenGL object rendering to indexed triangle / quad sets
for lower memory consumption.
Rewrote the print path 3D preview to generate these indexed triangle / quad
sets, possibly with at least as possible duplication of vertices,
with a crease angle of 45 degrees, leading to maximum 8% overshoots
at the corners.
2017-03-15 16:33:25 +01:00
bubnikv
e7a920fe16 Fixed some picking issues after porting GLVolumes to C++.
Initial interface for print paths visualization by VBOs.
2017-03-14 10:11:08 +01:00
bubnikv
e6fddd364d Volume rewritten from Perl to C++,
generation of vertex arrays from paths rewritten from Perl to C++,
parallelized.
2017-03-13 16:02:17 +01:00
bubnikv
d02ee5cf80 By @lordofhyphens:
only re-zoom if we have a valid bounding box, avoid a divide by 0 error.
2017-02-21 17:43:28 +01:00
bubnikv
8aae5bdb28 The variable layer editing shader was made OpenGL 2.0 compatible.
Fixed a bug in the scaling of colors for the variable layer editing.
2017-02-21 09:39:28 +01:00
bubnikv
8cfdc28f2b Implemented a level of detail on the variable layer height editing tool. 2017-02-20 21:54:53 +01:00
bubnikv
898deb48c4 Error reporting on initialization of the Layer Editing OpenGL shaders.
The shaders are initialized when the layer editing button is pressed
for the first time. If the initialization fails, a message box
is shown and the layer editing will stay disabled.
2017-02-19 18:01:03 +01:00
bubnikv
70229be9bc Added SystemInfo dialog,
a new SLIC3R_BUILD define to be replaced by the build script,
a menu item to open the "New Issue" github page.
2017-02-19 16:04:57 +01:00
bubnikv
89702a5b4e Fixing an update of the "Export G-code, Send to printer" and similar buttons.
It is a bug, which was lingering around for a long time, only now
the buggy function is called at a time point, where it really hurts.
https://github.com/prusa3d/Slic3r/issues/137
2017-02-17 15:11:59 +01:00
bubnikv
61f9414b09 Fixed a bug in manipulation of multi-component bodies. 2017-02-10 11:24:54 +01:00
bubnikv
db30cee6a9 Fixed the 'iso' camera orientation. 2017-02-09 21:40:07 +01:00
bubnikv
88e34ff5de Store / retrieve layer height profile from the AMF file.
Reset the layer height profile when changing a print profile to an incompatible one.
Reset button on the layer height bar.
Fixed an update issue on zooming by a scroll wheel.
Fixed an issue when loading an AMF file: Object names are now retained.
2017-02-09 14:56:13 +01:00
bubnikv
43ac693900 Added a tooltip overlay for the variable layer height edit tool.
Short methods of PrintState made inline.
Added layer height profile to a Model class.
2017-02-07 18:17:12 +01:00
bubnikv
8474f77db4 Enabled the variable layer height in the builds by default. 2017-02-03 15:53:31 +01:00
bubnikv
081c1d681c Fixed preview of ExtrusionMultiPath instances. 2017-01-20 20:20:41 +01:00
bubnikv
c0b3de6248 Hopefully fixes https://github.com/prusa3d/Slic3r/issues/90
Latest master segfaults with perl 5.24.1 #90
The fix achives similar goal to https://github.com/alexrj/Slic3r/pull/3575
but it is simpler.
2017-01-20 16:56:37 +01:00
bubnikv
479f716625 Improvements in the manual layer width editor. 2016-12-21 16:00:41 +01:00
bubnikv
955bc957ba New supports now do rafts at least to the extent the test cases run through.
New supports enabled, old supports will go away soon.
2016-12-20 12:19:13 +01:00
bubnikv
ff0a8956ee Fixed previous checkin. 2016-12-14 15:42:38 +01:00
bubnikv
c79e1cc89b Fixed UI bug on OSX, experimental features made switchable through
environment.
2016-12-14 15:36:18 +01:00
bubnikv
46b44fc141 User interface of the variable layer thickness. Certainly not finished yet,
but sufficient for evaluation of the prints.
2016-12-12 18:02:24 +01:00
Alessandro Ranellucci
9e8dae817d Fixes and improvements to the view selection menu, cherry picked from @alexrj a7693c4719c0e0e0129aea7461706d2ed53a52cc 2016-12-08 14:51:35 +01:00
bubnikv
7e1af658b6 Initial experiments with vertex / fragment shaders,
prototype to visualize layer thickness.
2016-12-02 11:14:24 +01:00
bubnikv
50f06a0fe8 Increased the gimbal lock threshold to 170 degrees from 150 degrees.
This makes it possible to look at the bottom of an object.
2016-11-16 09:24:27 +01:00
bubnikv
b8590180d8 Fix of https://github.com/prusa3d/Slic3r/issues/20
Slicing preview incorrect in terms of visible solid layers
2016-11-08 15:33:13 +01:00
bubnikv
51c8d73b11 Fixed a division by zero in 3D scene, if there is nothing to show.
Improved Prusa3D icon.
2016-10-24 17:32:22 +02:00
bubnikv
53907a9cfe Fix of a crash when setting a viewport over an empty platter.
Exported bounding box 'empty' method to perl.
2016-10-18 16:44:05 +02:00
bubnikv
ee4b9ab82f Select standard camera views (left / right / top / bottom / front / rear / default)
by menu.
2016-10-05 14:13:07 +02:00
bubnikv
ae2bae137a Added a low layer slider into the 3D preview window.
This is to limit the preview to a span of layers.
2016-10-03 17:01:29 +02:00
bubnikv
6e97b9bb73 Optimization of the layer offsets in 3D visualization. 2016-09-15 12:26:53 +02:00
bubnikv
a53bd3dfe9 Generate multiple vertex lists rather than requesting a single huge
memory block.
2016-09-15 00:06:42 +02:00
bubnikv
2a5095a1ea OpenGL support through GLEW. Only active if compiled with SLIC3R_GUI=1. 2016-09-14 16:31:26 +02:00
bubnikv
4c67230436 Documented the purpose of various perl modules. 2016-09-14 11:22:41 +02:00
bubnikv
55218c8c4d Documented.
Fixed rough Z buffer quantization issues with ortographic camera.
Initial implementation of a perspective camera.
2016-09-14 09:38:59 +02:00
bubnikv
ab9e3b718c Support multi sampled anti-aliasing with wxWidgets 3.0.3. 2016-05-27 23:38:45 +02:00
Alessandro Ranellucci
f7e97f7e9b Refactor cutting logic, don't slice in 3DScene 2015-12-19 23:15:37 +01:00
Alessandro Ranellucci
e0678d3a38 Bugfix: skirt was floating in 3D preview when raft layers were enabled. #2843 2015-05-24 15:47:07 +02:00
Alessandro Ranellucci
c64308a5e7 Render brim and skirt in 3D toolpaths preview. #2649 2015-05-18 00:49:16 +02:00
Alessandro Ranellucci
80b169aa75 Pan & zoom for toolpaths preview 2015-05-16 00:33:22 +02:00
Alessandro Ranellucci
70c032868a Prevent OpenGL scene from Z clipping 2015-03-01 19:58:05 +01:00
Alessandro Ranellucci
69ea88473d Workaround for the Clipper issue causing extra points in grid segments 2015-02-22 17:09:08 +01:00
Alessandro Ranellucci
d44bf38906 Sync viewport of 3D views. #2628 2015-02-16 00:37:36 +01:00
Alessandro Ranellucci
9abcd5816c Little test for mixing objects and toolpaths 2015-01-25 15:36:20 +01:00
Alessandro Ranellucci
c264969962 Bugfix: crash when rendering lines with zero length in 3D preview. #2569 2015-01-25 15:21:45 +01:00
Alessandro Ranellucci
a5c0ffe963 Faster loading of 3D preview and much less memory used 2015-01-24 23:35:29 +01:00
Alessandro Ranellucci
c9cdae1a96 Wrong file included in previous commit 2015-01-19 15:32:39 +01:00
Alessandro Ranellucci
229039d3b8 Fixed test and implementation of ooze prevention standby points (wrong test caused wrong implementation). #2103 2015-01-19 15:31:12 +01:00
Alessandro Ranellucci
3d500ca317 Skip geometry from unfinished steps in 3D rendering 2015-01-18 21:31:09 +01:00
Alessandro Ranellucci
428f831886 Scroll 3D preview layers with a slider 2015-01-18 20:48:54 +01:00
Alessandro Ranellucci
f2818ddbe0 Live 3D toolpaths preview. 2015-01-18 19:36:47 +01:00
Alessandro Ranellucci
2bbb6c570b Ported toolpaths rendering to C++ 2015-01-18 01:07:22 +01:00
Alessandro Ranellucci
bfbcbd55d8 Render infill and support material as well 2015-01-18 01:07:22 +01:00
Alessandro Ranellucci
d781371d66 Join extrusions properly in 3D preview 2015-01-18 01:07:22 +01:00
Alessandro Ranellucci
e0a3d2577c Initial work for 3D rendering of toolpaths 2015-01-15 20:06:30 +01:00
Alessandro Ranellucci
18e815d032 More efficient 3D preview of slices 2015-01-15 18:49:07 +01:00
Alessandro Ranellucci
3ee0fc5b1c Ability to select object parts by clicking in the 3D view in the object editor 2015-01-13 20:55:19 +01:00
Alessandro Ranellucci
d46d5c955b One more refactoring in 3DScene (select group/drag group) 2015-01-13 20:55:19 +01:00
Alessandro Ranellucci
9c8f8f8ded Refactoring: make Slic3r::GUI::3DScene::Base model-independent 2015-01-13 20:55:19 +01:00
Alessandro Ranellucci
fb08588007 Renamed PreviewCanvas to 3DScene 2015-01-09 01:30:04 +01:00