Commit Graph

57 Commits

Author SHA1 Message Date
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
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
Vojtech Bubnik
0d70a2be69 Renamed create_face_neighbors_index() to its_face_edge_ids().
Renamed its_create_neighbors_index() / its_create_neighbors_index_par() to its_face_neighbors() / its_face_neighbors_par().
New variant of its_face_edge_ids() to create edge IDs from face neighbors.
Fixed some incorrect use of _NDEBUG, it should be NDEBUG.
PrintObject::slice_support_volumes() returns newly Polygons, which are cheaper than ExPolygons.
Updated SeamPlacer and SupportMaterial to use regions defined as Polygons, not ExPolygons.
TriangleSelector::get_facets_strict() returning a patch with T-joints retriangulated.
New slice_mesh_slabs() - slicing projections of a triangle patch into top / bottom layers of slices, for MMU top / bottom segmentation.
TriangleMeshSlicer - use 64 mutexes instead of one when scattering sliced triangles into layers. This makes a big difference on modern many core desktop computers.
When applying MM segmented regions to input regions, the split regions are now re-merged with 10x higher positive offset epsilon to avoid creating gaps.
When testing for existence of paint-on supports or seam, use a more efficient has_facets() test, which does not deserialize into the expensive TriangleSelector tree structure.
GLIndexedVertexArray newly uses Eigen::AlignedBox<float, 3> for efficiency instead of our double based BoundingBoxf3.
Improved MMU painting refresh speed by optimizing generation of the vertex buffers.
Refactored MMU segmentation - projection of painted surfaces from top / bottom.
	1) Parallelized.
	2) Using the new slice_mesh_slabs() instead of projecting one triangle by the other and merging them with Clipper.
2021-06-20 15:21:12 +02:00
tamasmeszaros
97529ff6b7 Add parallel version of neighbors index creation, make it default 2021-06-08 10:34:32 +02:00
tamasmeszaros
b4d540ec4c Improve its_split for large number of parts 2021-06-08 10:34:32 +02:00
tamasmeszaros
c4507842a0 Add new (winner) neighbor index based on measurements 2021-06-08 10:34:32 +02:00
tamasmeszaros
b14b000c73 Add triangle mesh split to perf comparison 2021-06-08 10:34:32 +02:00
tamasmeszaros
c8be2cdceb Added measuring sandbox for neighbors index creation 2021-06-08 10:34:32 +02:00
tamasmeszaros
19e1d877aa Don't use sla::EncodedRaster in SLAImport, revive opencsg sandbox 2020-08-27 23:14:42 +02:00
Vojtech Bubnik
ac1f24e5c9 AABB: Some further polishing and a reference to an SSE implementation
of the 3D Box vs. ray intersection implementation.
2020-05-22 11:35:49 +02:00
Vojtech Bubnik
99514ba42b WIP: AABBTreeIndirect - optimized ray_box_intersect_invdir() test,
sandbox for comparing the AABBTreeIndirect with libigl::AABB
2020-05-22 09:29:21 +02:00
tamasmeszaros
bd76c345f2 Handle CGAL exceptions and add tests for mesh boolean operations
Add conversion to exact predicates exact construction kernel format for consecutive booleans (experiments)
2020-02-05 17:40:05 +01:00
tamasmeszaros
70ecb634b7 fix gui artifacts on Windows 2020-01-16 15:38:59 +01:00
tamasmeszaros
a1dc7a5c41 Fix build issues on Windows 2020-01-16 14:25:01 +01:00
tamasmeszaros
fada7224f1 MeshBooleans with CGAL only 2020-01-16 14:31:31 +01:00
tamasmeszaros
402ae12db2 Fix algorithm switching 2020-01-15 12:54:30 +01:00
tamasmeszaros
3ab246df6b Remove completely redundant code 2020-01-15 12:45:01 +01:00
tamasmeszaros
a36c7c76cc Fix scene not being centered 2020-01-15 10:39:07 +01:00
tamasmeszaros
e159344ce5 further fixes for X window crashes. 2020-01-09 11:22:24 +01:00
tamasmeszaros
7d55df052f repaint causes crash on linux 2020-01-08 09:39:48 +01:00
tamasmeszaros
451f04b590 Fix linux assertion 2019-12-20 20:18:23 +01:00
tamasmeszaros
3a185d7f57 fix windows widgets while playback 2019-12-20 19:57:34 +01:00
tamasmeszaros
083b557ec2 Display switching 2019-12-20 18:30:24 +01:00
tamasmeszaros
93d0bbd7ef Add boilerplate for shader based csg 2019-12-20 12:25:44 +01:00
tamasmeszaros
4f97a7122f Fix closing while playback 2019-12-20 01:21:25 +01:00
tamasmeszaros
d3925abb13 Add some comments. 2019-12-19 16:10:34 +01:00
tamasmeszaros
bb8a6b898f Save and load window size. Add fps average output. 2019-12-19 15:26:04 +01:00
tamasmeszaros
8126cdd507 Add command line options. Rename GLScene to Engine 2019-12-19 14:51:38 +01:00
tamasmeszaros
bf44da0e37 Make it work with mesa sw renderer 2019-12-19 01:55:46 +01:00
tamasmeszaros
fafc2a3510 Recording and playback works 2019-12-18 16:24:41 +01:00
tamasmeszaros
472c4c885d Separate fps counter and remove glut dependency 2019-12-18 12:00:28 +01:00
tamasmeszaros
acfaff3741 Dont use glut for fps measure. 2019-12-17 18:39:01 +01:00
tamasmeszaros
558529146c Fix opencsg example on Win32 2019-12-17 16:28:38 +01:00
tamasmeszaros
695950b2e6 further simplification 2019-12-17 10:19:46 +01:00
tamasmeszaros
bb3b39016f Add ctl and fix applying opencsg params on the fly. 2019-12-16 18:49:44 +01:00
tamasmeszaros
47ec708c3a Fix event dispatching to handlers 2019-12-16 15:55:49 +01:00
tamasmeszaros
5aaddd82a4 Remove bloat, add some clipping plane functionality. 2019-12-16 15:36:43 +01:00
tamasmeszaros
878f8a8ead Add convexity to csgsettings. Defer all rendering to Display. 2019-12-16 14:04:26 +01:00
tamasmeszaros
b1186e339d Added opencsg parameter console 2019-12-16 12:36:44 +01:00
tamasmeszaros
66759e10e3 Add opencsg demo sandbox 2019-12-16 11:13:20 +01:00
Lukas Matena
537260494d Merge branch 'master' into lm_tm_hollowing 2019-12-12 11:37:33 +01:00
tamasmeszaros
fc19666fa2 Add dll copy after targets for gmp and mpfr 2019-12-10 17:42:25 +01:00
tamasmeszaros
c8a088e652 Fix CGAL import with shared boost 2019-12-10 15:10:39 +01:00
tamasmeszaros
d620f6fb5d Add the sandbox example for cgal dependent mesh boolean 2019-12-09 15:34:48 +01:00
tamasmeszaros
d63ae1c608 Simple openvdb conversion test. 2019-10-29 16:27:53 +01:00
tamasmeszaros
1cc7bd9976 Fix openvdb dependency in libslic3r 2019-10-25 15:48:01 +02:00
tamasmeszaros
4554da29ab Add OpenVDB to dependencies
* Add Linux openvdb integration
* Add Mac openvdb integration and enable in ALL
* Create openvdb sandbox to test integration.
* Additional fixes in the patches
* Remove slabasebed sandbox as it has no relevance now
* Provide FindOpenVDB module and fix build issues
2019-10-25 13:15:21 +02:00
tamasmeszaros
e675a5d5c6 Reworked pad creation algorithm with new parameters:
* brim size
* force pad around object everywhere
2019-10-01 14:58:37 +02:00
tamasmeszaros
7e0199746e more clang warnings enabled, performance measuring
Succesfull build on mingw-w64


fix sandboxes


Mingw fixes and full parallel support tree gen.
2019-08-16 16:17:37 +02:00
tamasmeszaros
ddd0a9abb6 SPE-742: Builtin pad feature in zero elevation mode. 2019-06-11 12:40:07 +02:00