242 Commits

Author SHA1 Message Date
enricoturri1966
403f6d45f9 Refactoring - Removed member variable GLVolume::force_transparent 2022-01-17 08:24:46 +01:00
enricoturri1966
88521bb839 Fixed GLVolumeCollection::update_colors_by_extruder by using ColorRGBs in place of ColorRGBAs 2022-01-14 14:13:43 +01:00
enricoturri1966
6201dad245 Tech ENABLE_COLOR_CLASSES set as default 2022-01-14 08:19:00 +01:00
enricoturri1966
a2dc1cd446 Fixed conflicts after merge with dev branch 2022-01-12 15:54:48 +01:00
enricoturri1966
b4308f4245 Tech ENABLE_MODIFIERS_ALWAYS_TRANSPARENT set as default 2022-01-12 12:35:36 +01:00
enricoturri1966
cd4094743e Tech ENABLE_COLOR_CLASSES - 1st installment -> Introduction of classes ColorRGB and ColorRGBA to unify color data definition and manipulation 2021-12-22 10:45:35 +01:00
enricoturri1966
b062a0f281 Fixed build when tech ENABLE_SMOOTH_NORMALS is enabled 2021-12-02 13:42:26 +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
YuSanka
d6306f00b7 Resin colors: Set default value when color wasn't set in config 2021-11-16 12:48:13 +01:00
enricoturri1966
9af9b9b35d Tech ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS set as default 2021-11-16 12:39:54 +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
YuSanka
e8be7b2ecd Implemented possibility to show resin colors from the Plater (Bottles with resin are colored now in preset combobox)
+ Added nsvgParseFromFileWithReplace() to replace some colors before parsing from SVG file
+ Thumbnails are saved with selected resin color in SL1 or SL1S files
+ "white" folder is deleted from "icons" now. THere is no needed anymore.
2021-11-09 17:01:50 +01:00
YuSanka
2fcab52f86 Added "Color" parameter for SLA material 2021-11-05 17:22:37 +01:00
enricoturri1966
e1b3ba063b Tech ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - Printbed collision detection made cheaper for rectangular beds and faster for circular beds 2021-10-26 08:45:21 +02:00
enricoturri1966
dcbb3bef45 Fixed crash in bed collision detection when there are sinking toolpaths 2021-10-25 09:57:51 +02:00
Vojtech Bubnik
0bc2448e22 Documented the new print bed collision detection algorithm requirements:
Only convex print bed is supported.
Optimization of collision detection by precomputing the print bed shape type.
2021-10-23 15:29:18 +02:00
Vojtech Bubnik
7e780380ee Fix of d43ae66ecaaac762b5ee452e6d500bbb81ccc496
reduced copy / paste redudancy by extracting a new function
    to produce convex hull: its_convex_hull()
2021-10-22 16:54:21 +02:00
Vojtech Bubnik
d43ae66eca reduced copy / paste redudancy by extracting a new function
to produce convex hull: its_convex_hull()
2021-10-22 14:02:53 +02:00
enricoturri1966
2c0815f537 Fixed conflicts after merge with master and ported changes into gouraud shaders to gouraud_mod shaders 2021-10-19 11:27:11 +02:00
Vojtech Bubnik
1f4f8ff3ad Fixed visualization of the "sinking contours" for complex objects. 2021-10-19 09:19:53 +02:00
enricoturri1966
7be17d89e6 Fixed conflicts after merge with master 2021-10-14 10:48:46 +02:00
enricoturri1966
b9ac80ccd4 #7076 - Modifiers and similar objects always rendered as transparent 2021-10-08 10:48:46 +02: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
4521945bb3 Tech ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - Faster printbed collision detection using the new function Geometry::intersect() 2021-10-04 14:07:45 +02:00
enricoturri1966
f84838028b Tech ENABLE_FIX_SINKING_OBJECT_OUT_OF_BED_DETECTION merged into tech ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS 2021-10-01 13:13:26 +02:00
enricoturri1966
6ff4d6c3f5 Tech ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - Fixed detection of collision with circular printbed for pre-gcode preview and sla preview 2021-10-01 12:15:14 +02:00
enricoturri1966
13ef817a99 Tech ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - Enable detection of collision with circular printbed in backend 2021-09-30 14:51:09 +02:00
enricoturri1966
430c7a69b3 Tech ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - Completed detection of collision with circular printbed for toolpaths and sla auxyliary volumes 2021-09-30 13:16:05 +02:00
enricoturri1966
7cfe082621 Tech ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - Enable detection of collision with circular printbed for toolpaths 2021-09-30 12:08:05 +02:00
enricoturri1966
448911df9f Tech ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - Removed unused code 2021-09-30 10:55:41 +02:00
enricoturri1966
4eb21d4787 Tech ENABLE_FIX_SINKING_OBJECT_OUT_OF_BED_DETECTION - Enable detection of collision with circular printbed also for SLA printers 2021-09-30 10:35:53 +02:00
enricoturri1966
e24bd2d2d4 Tech ENABLE_FIX_SINKING_OBJECT_OUT_OF_BED_DETECTION - Removed duplicated code 2021-09-30 10:23:38 +02:00
enricoturri1966
d854fd0b29 Tech ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - Fixed GLVolumeCollection::check_outside_state() for SLA printers 2021-09-21 15:48:17 +02:00
enricoturri1966
1dad3c20f7 Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into et_sinking_objects_collision 2021-09-21 13:52:10 +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
Vojtech Bubnik
8a2a9dba2f Eradicated admesh from TriangleMesh:
TriangleMesh newly only holds indexed_triangle_set and
TriangleMeshStats. TriangleMeshStats contains an excerpt of stl_stats.
TriangleMeshStats are updated when initializing with indexed_triangle_set.

Admesh triangle mesh fixing is newly only used when loading an STL.
AMF / 3MF / OBJ file formats are already indexed triangle sets, thus
they are no more converted to admesh stl_file format, nor fixed
through admesh repair machinery. When importing AMF / 3MF / OBJ files,
volume is calculated and if negative, all faces are flipped. Also
a bounding box and number of open edges is calculated.

Implemented its_number_of_patches(), its_num_open_edges()
Optimized its_split(), its_is_splittable() using a visitor pattern.

Reworked QHull integration into TriangleMesh:
    1) Face normals were not right.
    2) Indexed triangle set is newly emitted instead of duplicating
       vertices for each face.

Fixed cut_mesh(): Orient the triangulated faces correctly.
2021-09-20 17:12:22 +02:00
enricoturri1966
1af0c5c73b Tech ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - Call GLVolumeCollection::check_outside_state() only when needed 2021-09-20 13:40:34 +02:00
enricoturri1966
5a84b46ec9 Fix of detection of the out of bed state for sinking objects 2021-09-16 13:38:02 +02:00
enricoturri1966
94f92dee84 Use std::optional to replace dirty flags for bounding boxes in GLVolume 2021-09-16 10:46:56 +02:00
enricoturri1966
9d5a3a00ef Hotfix for missing wipe tower after adding an object for an MMU printer 2021-09-15 11:36:58 +02:00
enricoturri1966
f132ca9c3c Tech ENABLE_SINKING_CONTOURS set as default 2021-09-14 15:45:21 +02:00
Vojtech Bubnik
9d29eddf16 WIP: admesh eradication
follow-up to 58d8ab3deaaac1049439728d5a0f46c4b6a592f5
2021-09-14 14:51:40 +02:00
Vojtech Bubnik
58d8ab3dea Removed the PRUS format parser. WIP: admesh eradication:
stl_stats are newly only accessed by TriangleMesh::stats(),
most of the direct access to TriangleMesh::stl is gone with the exception
of parsing input files (3MF, AMF, obj).
2021-09-14 11:58:14 +02:00
Lukas Matena
4ac013ec9c Fixed painting gizmos with modifiers below the bed:
- When a modifier was below the bed and all the object parts above, it would clip
  the modifier but not triangulate the cut.
- When an object part was below, it would triangulate all modifiers with
  opaque orange color.

Both should now be fixed.
2021-09-13 09:02:11 +02:00
enricoturri1966
8bd0f8ada9 Removed duplicated method GLVolumeCollection::check_outside_state() 2021-09-10 08:27:03 +02:00
enricoturri1966
b3010a817b Do not allow objects to be placed fully below bed 2021-08-24 07:46:59 +02:00
enricoturri1966
120be3a76d Fixed compile warning 2021-08-18 13:04:45 +02:00
Lukas Matena
3cf6d1c888 Revert 740067c and e645f4a
740067c: "Fixed cut contours in gizmo cut after deleting an object"
e645f4a: "Fixed cut contours after cutting an object in gizmo cut"
2021-08-18 11:44:21 +02:00
enricoturri1966
740067c576 Fixed cut contours in gizmo cut after deleting an object 2021-08-18 10:23:18 +02:00
enricoturri1966
9767747b3b #6796 - Fixed crash when selecting Thick Bridges option and then slicing 2021-08-18 09:54:21 +02:00