Commit Graph

29 Commits

Author SHA1 Message Date
0110b4c9e2 Replaced the repeated application of Cursors (Sphere or Circle) in painting using 2D and 3D Capsules.
Previously, the Cursor (Sphere or Circle) was repeatedly applied between two mouse positions, creating brushstrokes with ripples on the edges between those mouse positions.
Now, a single capsule (3D or 2D) is applied between those mouse positions, which creates brushstrokes without these ripples.
2021-12-02 12:36:48 +01:00
bfb72a5200 Allowed painting in the FDM supports, seam, and multi-material gizmo to only triangles not clipped by a clipping plane. 2021-10-21 08:49:24 +02:00
e33c34327a Small refactoring into ClippingPlane to ensure that the normal is always a unit vector 2021-09-15 13:36:44 +02:00
01451d2e63 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
aae7e5f2a7 Fix of paint on supports don't work for object that has been scaled up #6718
The triangle-ray intersection function used a hard coded epsilon,
which did not work for triangle meshes, that were either too small
or too large. Newly the epsilon may be provided to the AABBTreeIndirect
search functions externally and IndexedMesh calculates a suitable
epsilon on demand from an average triangle mesh edge length.
2021-08-27 21:04:18 +02:00
8e009350b8 Painting gizmos and sinking objects:
1. Do not show what's below the bed when a gizmo is open
2. Triangulate the cut so people don't see inside
3. If regular clipping plane is used, the cuts are mutually clipped by one another
4. Painting itself ignores the hidden part of the object
2021-08-09 10:47:51 +02:00
39e17fd6b9 TriangleMeshSlicer: Got rid of admesh! 2021-05-18 15:05:30 +02:00
499d8405e9 WIP: Reworked slicing
1) Slicing code moved to TriangleMeshSlicer.cpp,hpp from TriangleMesh.cpp,hpp
2) Refactored to use as little as possible of admesh.
2021-05-17 20:25:59 +02:00
ca81fdfa0d Fix Gizmo preview with hollowed mesh 2021-03-08 17:38:10 +01:00
6a9eccf673 Rename EigenMesh3D to IndexedMesh and SupportConfig to SupportTreeConfig 2020-08-03 19:05:30 +02:00
27b3d906da EigenMesh3D does not store a copy of the mesh
Instead, it stores a pointer to extern TriangleMesh (which must not be destroyed before the EigenMesh3D object)
2020-05-27 00:51:11 +02:00
7eab7f416c Removed immediate OpenGL mode calls for clipping plane rendering 2020-05-21 10:25:31 +02:00
82cedcd870 FDM supports gizmo: caching triangle normals in order to increase performance 2020-05-18 16:08:21 +02:00
350e50bcff WIP: FDM supports gizmo now works with multiple part objects into some extent 2020-03-19 11:15:17 +01:00
744927413b WIP: Added a circle cursor and naive logic to select triangles inside
Deselection is possible when holding shift
Triangles obscured by the mesh are selected nonetheless (so far)
2020-03-19 11:15:17 +01:00
1ef8886391 WIP: First working implementation of the triangle selector for the FDM support gizmo 2020-03-19 11:15:17 +01:00
a69f1912b2 Removed an obsolete variable from MeshRaycaster 2019-12-12 13:19:16 +01:00
11feb259a3 Merge branch 'master' into lm_tm_hollowing 2019-12-12 11:37:33 +01:00
c153c16808 Added comments in MeshUtils.hpp
PIMPL in MeshRaycaster now uses std::unique_ptr instead of raw pointer
2019-12-10 09:53:34 +01:00
0cf10c144c Holes are now visible on slices in preview. 2019-11-13 15:55:37 +01:00
10f2d23ff6 Merge branch 'tm_openvdb_integration' into lm_tm_hollowing
* Refactor file names in SLA dir
2019-11-11 12:55:22 +01:00
14bd37048b Unified igl calls in MeshRaycaster and EigenMesh3D
MeshRaycaster is still aware of the clipping plane but it now uses EigenMesh3D internally
Public interface of both classes is unchanged
2019-11-08 20:18:14 +01:00
b9e86d21ec MeshUtils.cpp: MeshRaycaster is now aware of the clipping plane 2019-09-24 12:58:12 +02:00
ff9bdaa9fe Fixed typo 2019-09-17 15:48:39 +02:00
f8139337fd SLA gizmo no more uses IGL code directly, all was moved to the new MeshRaycaster class 2019-09-17 14:57:57 +02:00
9520a432fd MeshRaycaster class is now used in SLA gizmo when selecting by rectangle 2019-09-17 14:57:54 +02:00
e0b41068ae Added functions get_hit_pos, get_hit_normal, ready to implement intersect_ray 2019-09-17 14:57:49 +02:00
9776224b06 Unproject on mesh in the SLA gizmo is now performed by the MeshRaycaster class 2019-09-17 14:57:45 +02:00
44a4110bd8 Renamed MeshClipper.cpp/.hpp to MeshUtils.cpp/.hpp
More helper classes like the MeshClipper could live here
Moved ClippingPlane class in here to start
2019-09-13 12:03:53 +02:00