Commit Graph

58 Commits

Author SHA1 Message Date
Vojtech Bubnik
e185bf58b7 Replaced "Simple shorthands for smart pointers" shptr, uqptr, wkptr
with their original names. Using weird shorthands makes the code
unreadable for anyone but the original author.

template<class T> using shptr = std::shared_ptr<T>;
template<class T> using uqptr = std::unique_ptr<T>;
template<class T> using wkptr = std::weak_ptr<T>;
2021-10-04 16:56:26 +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
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