317 Commits

Author SHA1 Message Date
Vojtech Bubnik
cc44089440 New BuildVolume class was created, which detects build volume type (rectangular,
circular, convex, concave) and performs efficient collision detection agains these build
volumes. As of now, collision detection is performed against a convex
hull of a concave build volume for efficency.

GCodeProcessor::Result renamed out of GCodeProcessor to GCodeProcessorResult,
so it could be forward declared.

Plater newly exports BuildVolume, not Bed3D. Bed3D is a rendering class,
while BuildVolume is a purely geometric class.

Reduced usage of global wxGetApp, the Bed3D is passed as a parameter
to View3D/Preview/GLCanvas.

Convex hull code was extracted from Geometry.cpp/hpp to Geometry/ConvexHulll.cpp,hpp.
New test inside_convex_polygon().
New efficent point inside polygon test: Decompose convex hull
to bottom / top parts and use the decomposition to detect point inside
a convex polygon in O(log n). decompose_convex_polygon_top_bottom(),
inside_convex_polygon().

New Circle constructing functions: circle_ransac() and circle_taubin_newton().

New polygon_is_convex() test with unit tests.
2021-11-16 10:15:51 +01:00
enricoturri1966
f7662682c8 Tech ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT - Modified ImGuiWrapper::slider_float() to create a compound widget where an additional button can be used to set the keyboard focus into the slider to allow the user to type in the desired value 2021-11-05 14:46:44 +01:00
enricoturri1966
4ff13a5d63 Tech ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - Reworked detection of collision with printbed. The detection uses now different algorithms in dependence of the printbed type (rectangular, circular, convex) to improve performance. 2021-10-06 13:47:54 +02:00
enricoturri1966
37219fe4f3 Fixed crash when turning on shells visibility in preview and the application was started with background processing active 2021-10-05 14:49:18 +02:00
enricoturri1966
1df91ea930 Follow-up of 67e519d3ab8f56d9ab5d6759d1b92ee9131ead8c - Use a platform-indipendent fix 2021-09-29 13:34:30 +02:00
enricoturri1966
d7216b5d68 Follow-up of f71cf324b9770fc9d9cc26510d1bbaac43cdbbd7 - Fixed shown tool position 2021-09-23 11:51:30 +02:00
enricoturri1966
f71cf324b9 Tech ENABLE_FIX_SEAMS_SYNCH - Fix the synchronization of seams with the horizontal slider in preview 2021-09-23 09:25:13 +02:00
enricoturri1966
2e9b07202a Fixed build when tech ENABLE_SEAMS_USING_BATCHED_MODELS is disabled 2021-09-15 10:52:16 +02:00
enricoturri1966
d52ee52098 Tech ENABLE_FIX_IMPORTING_COLOR_PRINT_VIEW_INTO_GCODEVIEWER set as default 2021-09-14 15:05:33 +02:00
enricoturri1966
fda8ef6fce #5471 - Make the View controls 'sticky' 2021-09-13 11:16:13 +02:00
Vojtech Bubnik
880feb3a3d GCodeViewer slight opitmization: reuse (move) G-code line indices
in G-code viewer.
2021-09-13 10:41:28 +02:00
enricoturri1966
8701dd0c76 Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into et_fix_options_z 2021-09-09 10:34:47 +02:00
enricoturri1966
d3382b666f Fixed build on MAC 2021-09-08 15:47:27 +02:00
Vojtech Bubnik
beee18f229 Follow-up to b5a007a683124ec3b01b61e892ed8eb39c034248
WIP to G-code export parallelization through pipelining:
GCodeProcessor is called during the G-code export,
the G-code is no more reopened and re-read, but it is pipelined
from the G-code generator.
2021-09-08 15:06:12 +02:00
enricoturri1966
a33a737f52 Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into et_fix_options_z 2021-09-08 14:33:20 +02:00
enricoturri1966
6f678c09d1 Tech ENABLE_FIX_PREVIEW_OPTIONS_Z - Enable fixing the z position of seams (and other options) in preview 2021-09-08 14:30:40 +02:00
enricoturri1966
9abebe5fbe Techs ENABLE_SEAMS_USING_MODELS and ENABLE_SEAMS_USING_BATCHED_MODELS - Fixed seams (and other options) zs to match toolpaths zs in preview 2021-09-08 13:04:43 +02:00
enricoturri1966
c12e5bb4ed Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into et_seams_as_batched_models 2021-09-08 11:37:05 +02:00
Vojtech Bubnik
32733b7db9 GCodeProcessor collects positions of line ends for GCodeViewer,
GCodeViewer no more parses G-code just to extract line end positions.
Removed start_mapping_gcode_window(), void stop_mapping_gcode_window(),
they are no more needed.
2021-09-07 15:42:56 +02:00
enricoturri1966
761c06ed92 GCodeViewer - Fixed crash when importing gcode generated with Simplify3D and switching to tool view 2021-09-07 12:25:30 +02:00
enricoturri1966
c1c8a60271 Changed color for toolpaths whose extrusion role is unknown 2021-09-07 11:13:12 +02:00
enricoturri1966
ad41c3f01c Tech ENABLE_SEAMS_USING_MODELS - Fixed crash when enabling visualization of tool change markers in preview 2021-09-06 13:15:36 +02:00
enricoturri1966
9c8c44e4dd ENABLE_SEAMS_USING_BATCHED_MODELS - Fixed preview legend update 2021-09-06 11:37:59 +02:00
Vojtech Bubnik
2e250c1463 Speed-up in GCodeViewer vertex buffer generator 2021-09-03 16:21:44 +02:00
enricoturri1966
7f2d1522ce Rendering seams (and other options) in preview using batched models on systems not supporting OpenGL 3.3 2021-09-03 15:35:44 +02:00
enricoturri1966
cc480afe9b Fixed build when tech ENABLE_GCODE_VIEWER_STATISTICS is enabled 2021-09-02 13:42:37 +02:00
enricoturri1966
95c05aae3b Fixed typo which broke export of toolpaths to obj file 2021-09-01 09:54:59 +02:00
enricoturri1966
d7bb4c36f5 Requires OpenGL 3.3 as a minimum to enable instanced rendering of seams and other options in preview 2021-09-01 09:34:07 +02:00
enricoturri1966
86ddac7b1e Fixed warning 2021-08-31 09:17:52 +02:00
enricoturri1966
ce3f51379a ENABLE_SEAMS_USING_MODELS -> Increased size of instances 2021-08-30 14:13:41 +02:00
enricoturri1966
7bd14bfaf7 ENABLE_SEAMS_USING_MODELS -> Fixed instances when horizontal slider is enabled for top layer only 2021-08-27 15:23:27 +02:00
enricoturri1966
9c4eeeaa18 Tech ENABLE_SEAMS_USING_INSTANCED_MODELS merged into tech ENABLE_SEAMS_USING_MODELS 2021-08-27 11:41:34 +02:00
enricoturri1966
03dc2f7c11 ENABLE_SEAMS_USING_INSTANCED_MODELS -> Completed implementation of rendering models using instancing 2021-08-27 10:16:50 +02:00
enricoturri1966
c471c3c7c4 Code cleanup and small refactoring 2021-08-26 14:37:09 +02:00
enricoturri1966
2980418706 ENABLE_SEAMS_USING_INSTANCED_MODELS -> WIP: Render models using glDrawElementsInstanced 2021-08-26 12:37:55 +02:00
enricoturri1966
34da899c66 Temporary tech ENABLE_SEAMS_USING_INSTANCED_MODELS -> WIP (still missing opengl calls) 2021-08-05 15:08:49 +02:00
enricoturri1966
252935dde7 Techs ENABLE_SEAMS_USING_MODELS + ENABLE_GCODE_VIEWER_STATISTICS -> Added instances counter 2021-08-05 10:19:02 +02:00
enricoturri1966
73464c76b9 Techs ENABLE_SEAMS_USING_MODELS + ENABLE_GCODE_VIEWER_STATISTICS -> Fixed detection of used memory to store instances data 2021-08-05 09:35:12 +02:00
enricoturri1966
8c4e203e1d Tech ENABLE_SEAMS_USING_MODELS -> Use new options visualization only if OpenGL 3.1 or greater is detected 2021-08-05 09:09:07 +02:00
enricoturri1966
fd81041adb Fixed build warnings on non-Windows OS 2021-08-05 08:10:42 +02:00
enricoturri1966
1b03eec234 Fixed build of tech ENABLE_SEAMS_USING_MODELS when tech ENABLE_GCODE_VIEWER_STATISTICS is disabled 2021-08-04 15:23:37 +02:00
enricoturri1966
55bac68603 Tech ENABLE_SEAMS_USING_MODELS - 1st installment 2021-08-04 15:13:43 +02:00
enricoturri1966
93db27f40c A bit of refactoring into GCodeViewer 2021-08-04 13:49:51 +02:00
enricoturri1966
329f9a77c2 Colors defined as std::array<float, 4> in GCodeViewer 2021-08-04 13:27:42 +02:00
enricoturri1966
599a4d97e3 Removed constness from a few renderXXX() methods 2021-08-04 12:47:36 +02:00
enricoturri1966
66d43b882e Fixed calls set_uniform(emission_factor, xx) to use floats 2021-08-04 11:58:50 +02:00
enricoturri1966
06b47d98fc Fixed build when tech ENABLE_GCODE_VIEWER_STATISTICS is enabled 2021-08-02 12:16:03 +02:00
enricoturri1966
c9dffd0c89 Preview legend: title of estimated print time section dependent on results 2021-07-23 14:49:24 +02:00
enricoturri1966
8ebb2e2a29 Fixed import of color print view from gcode files into GCodeViewer 2021-07-23 11:27:07 +02:00
enricoturri1966
15b8e68c59 Tech ENABLE_SEAMS_VISUALIZATION set as default 2021-07-22 12:58:33 +02:00