Commit Graph

43 Commits

Author SHA1 Message Date
537df6b503 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
d03fd2f63e 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
d383c0ccf4 Tech ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - Out of bed detection for circular printbeds 2021-09-21 13:51:57 +02:00
bc68e06292 Revert of b140709fa8 and new implementation of fixing picking for sinking objects 2021-07-21 11:56:39 +02:00
daf230695d Tech ENABLE_SEQUENTIAL_LIMITS -> 1st installment of visualization of objects clearance for sequential prints 2021-05-11 13:12:25 +02:00
8af953c9d2 Removed mutable members from class Bed3D 2021-04-20 08:53:56 +02:00
60cc12002e 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
3cddbad0af ENABLE_GCODE_VIEWER set as default in 3DBed.hpp/.cpp 2020-11-16 17:29:21 +01:00
aeb1c2f4dd Follow-up of 9d4344a78c -> ensure printbed always rendered as custom in gcode preview mode 2020-07-29 14:20:01 +02:00
ce42c67a2a ENABLE_GCODE_VIEWER -> Completed implementation of new GLModel class 2020-05-27 08:06:02 +02:00
1eb6ec97ed ENABLE_SHADERS_MANAGER set as default 2020-05-22 16:08:02 +02:00
2e64da5c1d 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
4194c347ab 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
b62ba8a42d Tech ENABLE_GCODE_VIEWER -> Bed axes rendered using the new OpenGL model class 2020-05-12 11:33:50 +02:00
319e74d4ce 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
ddf6501acd ENABLE_6DOF_CAMERA set as default 2020-02-13 12:13:54 +01:00
f131909353 Fixed conflicts after merge with master 2020-01-17 14:58:19 +01:00
94a95f9786 Six degrees of freedom camera - 1st installment 2020-01-15 12:49:34 +01:00
2c95a1f0d7 Configurable system printers bed textures and models 2020-01-09 10:27:42 +01:00
c850d600c3 Fixed positioning of gizmos' imgui dialogs 2019-12-12 13:38:08 +01:00
c80919aabc Printbed axes renderable on demand 2019-11-28 11:51:00 +01:00
4a0ae0c628 Added model and texture for Mini and Ender3 printer printbeds 2019-11-15 09:28:51 +01:00
b70057bdda Refactoring into rendering pipeline 2019-07-26 09:45:22 +02:00
df38793663 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
70dda0737e Render custom bed model on custom beds 2019-07-25 09:45:43 +02:00
4058eac7df Render custom bed model on prusa beds 2019-07-24 14:02:36 +02:00
587422f334 Refactoring in Bed3D 2019-07-24 11:04:04 +02:00
314ee4ae55 Custom bed texture applied to custom bed shapes 2019-07-24 10:11:17 +02:00
d40b4ae13c Tech ENABLE_TEXTURES_FROM_SVG set as default 2019-07-19 09:52:01 +02:00
9c9b29a8a9 Render custom bed textures in svg format on prusa beds 2019-07-18 14:39:19 +02:00
85e9318081 Fixed conflicts after merge with master 2019-07-08 09:23:37 +02:00
af90012cd6 Fixed compile warnings in Bed3D 2019-07-03 09:19:07 +02:00
e9909eb95e Removed GLVolume non-VBO rendering 2019-07-01 12:28:16 +02:00
9d732e318d Fixed conflicts after merge with branch et_perpsective_camera 2019-06-24 11:08:42 +02:00
0af66cfe82 ENABLE_COMPRESSED_TEXTURES set as default 2019-06-24 09:54:58 +02:00
d5a17b11c8 Follow-up of 1a91add2e6 -> Improvements to tighter camera frustrum to reduce z-fighting 2019-06-14 15:37:29 +02:00
9877945e2a Tighter camera frustrum to reduce z-fighting 2019-06-14 10:38:09 +02:00
9f4881e88b Update 3D scene when all compressed texture data are sent to GPU 2019-06-05 10:07:59 +02:00
9211475bdf Temporary low-res texture shown while generating compressed data on the CPU 2019-06-02 11:01:51 +02:00
49a5c0465b Small refactoring in Bed3D and GLShader 2019-02-27 15:19:03 +01:00
1be5c11f52 Printbed textures generated from svg files 2019-02-20 15:23:23 +01:00
bea4d1313b ENABLE_UNIQUE_BED set as default 2019-02-20 13:50:35 +01:00
727dc40cee 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