43 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
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
cf380fb456 Tech ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - Out of bed detection for circular printbeds 2021-09-21 13:51:57 +02:00
enricoturri1966
1f3252dd78 Revert of b140709fa8aa313278455995de30f88e9a442120 and new implementation of fixing picking for sinking objects 2021-07-21 11:56:39 +02:00
enricoturri1966
75677ba810 Tech ENABLE_SEQUENTIAL_LIMITS -> 1st installment of visualization of objects clearance for sequential prints 2021-05-11 13:12:25 +02:00
enricoturri1966
3e09334162 Removed mutable members from class Bed3D 2021-04-20 08:53:56 +02:00
Vojtech Bubnik
2e55898d78 Removal of not numerically robust libraries "poly2tree" and "polypartition".
Adjustment of GUI/3DBed.cpp,hpp to use the more stable triangulation algoritm
derived from SGI glut.
Fix of an extremely slow bridging calculation, caused by an extremely
slow bridged area detection function, of which the results were never used.
Fixes "slicing fails or takes too long #5974"
2021-02-09 18:36:28 +01:00
enricoturri1966
a20ce2f484 ENABLE_GCODE_VIEWER set as default in 3DBed.hpp/.cpp 2020-11-16 17:29:21 +01:00
enricoturri1966
0348986bda Follow-up of 9d4344a78ce56ecf722e946f2c1796a9e1df96e8 -> ensure printbed always rendered as custom in gcode preview mode 2020-07-29 14:20:01 +02:00
enricoturri1966
aa04f0e555 ENABLE_GCODE_VIEWER -> Completed implementation of new GLModel class 2020-05-27 08:06:02 +02:00
enricoturri1966
314995fa0b ENABLE_SHADERS_MANAGER set as default 2020-05-22 16:08:02 +02:00
enricoturri1966
cbfb09a241 Fixed build for all 4 cases of tech ENABLE_SHADERS_MANAGER and ENABLE_GCODE_VIEWER enabled/disabled and code cleanup 2020-05-20 17:03:53 +02:00
enricoturri1966
c7c87973b7 First installment of tech ENABLE_SHADERS_MANAGER, using class GLShadersManager as a central point to manage OpenGL shaders 2020-05-20 14:11:22 +02:00
enricoturri1966
8d5cea82f4 Tech ENABLE_GCODE_VIEWER -> Bed axes rendered using the new OpenGL model class 2020-05-12 11:33:50 +02:00
Lukas Matena
46ade45ced The bed texture is not shown when looking from below and FDM/SLA support gizmo is active 2020-04-14 13:18:08 +02:00
Enrico Turri
847efec2ed ENABLE_6DOF_CAMERA set as default 2020-02-13 12:13:54 +01:00
Enrico Turri
b368f8ff24 Fixed conflicts after merge with master 2020-01-17 14:58:19 +01:00
Enrico Turri
62e60bcb43 Six degrees of freedom camera - 1st installment 2020-01-15 12:49:34 +01:00
Enrico Turri
051fcd4e24 Configurable system printers bed textures and models 2020-01-09 10:27:42 +01:00
Enrico Turri
f2b8607d11 Fixed positioning of gizmos' imgui dialogs 2019-12-12 13:38:08 +01:00
Enrico Turri
3537f74936 Printbed axes renderable on demand 2019-11-28 11:51:00 +01:00
Enrico Turri
2dec84a429 Added model and texture for Mini and Ender3 printer printbeds 2019-11-15 09:28:51 +01:00
Enrico Turri
77857f7292 Refactoring into rendering pipeline 2019-07-26 09:45:22 +02:00
Enrico Turri
bc680b8376 Draw lighter gridlines when rendering default procedural texture on print bed when seen from above and custom model is present 2019-07-25 10:38:18 +02:00
Enrico Turri
9625fe8f5b Render custom bed model on custom beds 2019-07-25 09:45:43 +02:00
Enrico Turri
1483a7fd51 Render custom bed model on prusa beds 2019-07-24 14:02:36 +02:00
Enrico Turri
395e794b9e Refactoring in Bed3D 2019-07-24 11:04:04 +02:00
Enrico Turri
7e7550b416 Custom bed texture applied to custom bed shapes 2019-07-24 10:11:17 +02:00
Enrico Turri
84d61e28fd Tech ENABLE_TEXTURES_FROM_SVG set as default 2019-07-19 09:52:01 +02:00
Enrico Turri
f61d43de07 Render custom bed textures in svg format on prusa beds 2019-07-18 14:39:19 +02:00
Enrico Turri
9ba5568539 Fixed conflicts after merge with master 2019-07-08 09:23:37 +02:00
Enrico Turri
7a7316fcbf Fixed compile warnings in Bed3D 2019-07-03 09:19:07 +02:00
Enrico Turri
4269c8b23c Removed GLVolume non-VBO rendering 2019-07-01 12:28:16 +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
ac8de0bcaf Follow-up of 1a91add2e60f3a4d22cdd6c8a10e57dc8095e0a2 -> Improvements to tighter camera frustrum to reduce z-fighting 2019-06-14 15:37:29 +02:00
Enrico Turri
1a91add2e6 Tighter camera frustrum to reduce z-fighting 2019-06-14 10:38:09 +02:00
Enrico Turri
836f2d777f Update 3D scene when all compressed texture data are sent to GPU 2019-06-05 10:07:59 +02:00
Enrico Turri
e6af0d3dc4 Temporary low-res texture shown while generating compressed data on the CPU 2019-06-02 11:01:51 +02:00
Enrico Turri
68805fc63a Small refactoring in Bed3D and GLShader 2019-02-27 15:19:03 +01:00
Enrico Turri
11fc849b1a Printbed textures generated from svg files 2019-02-20 15:23:23 +01:00
Enrico Turri
cb1ef36ceb ENABLE_UNIQUE_BED set as default 2019-02-20 13:50:35 +01:00
Enrico Turri
75df722fee Bed and Axes classes moved from GLCanva3d to Plater to have a unique instance of them shared by all views 2019-02-19 15:15:27 +01:00