16 Commits

Author SHA1 Message Date
Lukas Matena
ec87263ce4 Multiple beds - updates, partially outside = on the bed 2024-11-20 16:04:15 +01:00
Lukas Matena
360f7a84b4 Polishing:
- virtual bed shows even when dragging which was already outside
- when loading old-arranged project with more than max number of beds, a virtual bed would still be offered
- loading a project file with multiple beds only showed 2 beds initially
- nonprintable objects are not considered into the bed creation logic
- drag and dropping an object does not change active bed
- shells in preview are now shown correctly when switching between beds
- spacing in x takes into account model size (except during the initial rearrange)
- update volumes outside state after project loading
- highlight of selected bed for default beds
2024-11-20 16:04:05 +01:00
Lukas Matena
accc4ce266 Multiple beds (part 1):
- create new bed when a volume is dragged into it
- limit maximum number of beds
- keep track of which ModelInstances are on which bed
- show list of beds and allow selecting an active one
- move objects from active bed to the first bed when passing Model to Print::apply (and back)
2024-11-20 13:36:12 +01:00
Martin Šach
0bf8a9b1c5 Fix includes 2024-08-14 00:04:11 +02:00
Martin Šach
919740fb3e Apply fix includes. 2024-07-08 15:37:02 +02:00
Martin Šach
96e3e77fef Prepare fe for include optimization.
- Add pragmas to keep necessary headers with symbols not explicitly
stated in the file.
- Use include paths that IWYU understands.
2024-07-08 15:37:02 +02:00
enricoturri1966
539c155c59 Code cleanup and techs removal - completed 2024-03-26 14:41:55 +01:00
enricoturri1966
55b674ca3b Code cleanup 2024-03-26 14:15:37 +01:00
enricoturri1966
160d9b0187 New gcode visualization integration - Modify pre-gcode preview to use the new toolpaths renderer, objects WIP 2024-03-26 14:12:32 +01:00
ps_copyright
f32859c302 final copyright headers 2023-09-01 14:49:07 +02:00
Vojtech Bubnik
c64dbacf88 WIP Extending the expressivity of ExtrusionRole
Changed GCodeExtrusionRole to enum class.
Follow-up to 5991850db1f2d09d1b7713f42300e2bfe4a42128
e50e96bb26eab4f9d56c98706c03166635cf4fff
2023-01-16 11:14:34 +01:00
Lukas Matena
4079eac29a Fixed a failing assert in BuildVolume.cpp 2022-06-16 16:35:06 +02:00
enricoturri1966
bc5ef11c05 Fix of toolpath outside print area wrongly reported - SPE-1135 2021-11-25 09:40:36 +01:00
Vojtech Bubnik
f5c23871e8 Follow-up to 77548df00ff24ef9aae0b5808876b7ac0ec7db17
(Fixed missing sinking property in objects list for multipart objects
with a part completely below the printbed):

It was not possible to slice an object with some part completely below
the print bed. The BuildVolume collision check newly supports
a "completely below print bed" return status,
Model evaluates this "completely below print bed status" allowing
objects with some volumes completely below the print bed to print.
2021-11-19 10:32:46 +01:00
Lukas Matena
a2c3a6ac2f Added missing includes (gcc9.4 without pch) 2021-11-16 16:09:30 +01:00
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