Commit graph

34 commits

Author SHA1 Message Date
Filip Sykala
faa63f3182 Merge branch 'master' into fs_emboss
# Conflicts:
#	src/libslic3r/Format/3mf.cpp
2022-02-10 14:04:02 +01:00
enricoturri1966
be6922795d Tech ENABLE_GLINDEXEDVERTEXARRAY_REMOVAL - Replace GLIndexedVertexArray with GLModel: MeshClipper::m_vertex_array 2022-02-10 08:24:36 +01:00
Filip Sykala
53ee0092b0 Create emboss object on cursor position 2022-01-28 18:00:10 +01:00
Lukáš Hejl
7bb38840e1 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
Vojtech Bubnik
d8590ac0a8 Tiny eigen vectorization beautification. 2021-11-19 10:56:07 +01:00
enricoturri1966
2682915a5d - Fixed reset direction of view clipping not aligning cut surface correctly when viewed from Left or Right 2021-11-01 11:08:02 +01:00
Lukas Matena
284721e0de Fix of (selection rectangle in SLA gizmo incorrectly handles transformations) 2021-09-22 21:31:33 +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
Lukas Matena
d9f2fd7501 Fixed shifted clippimg plane triangulation on scaled meshes,
fighting z-fighting has to be done in world coords.
2021-08-27 19:46:44 +02:00
Lukas Matena
24d2f510c5 Fixed painting on surfaces close to the bed (broken since 1360446) 2021-08-23 09:47:37 +02:00
Lukas Matena
3605016696 Speed-up of clipping plane 2021-08-11 15:06:29 +02:00
Lukas Matena
13604469fd 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
Lukas Matena
fd024eadcd Removed gluProject and gluUnProject calls 2021-05-28 16:44:13 +02:00
Vojtech Bubnik
78c0199523 TriangleMeshSlicer: Optimized out unnecessary transformations. 2021-05-18 16:12:49 +02:00
Vojtech Bubnik
70b4915f9c TriangleMeshSlicer: Got rid of admesh! 2021-05-18 15:05:30 +02:00
Vojtech Bubnik
308d6b7809 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
tamasmeszaros
06bf02df69 Fix Gizmo preview with hollowed mesh 2021-03-08 17:38:10 +01:00
tamasmeszaros
1eec6c473c Rename EigenMesh3D to IndexedMesh and SupportConfig to SupportTreeConfig 2020-08-03 19:05:30 +02:00
Lukas Matena
2cc1dffc82 Fix of several issues related to gizmos updating and undo/redo
Common gizmos data cannot be used in on_set_state method
Also prevented calling render on empty GLVertexArrays
2020-06-03 15:33:39 +02:00
Lukas Matena
6e597bb1ee Removed immediate OpenGL mode calls for clipping plane rendering 2020-05-21 10:25:31 +02:00
Lukas Matena
e312f3be43 FDM supports gizmo: caching triangle normals in order to increase performance 2020-05-18 16:08:21 +02:00
Lukas Matena
2e71dcefc3 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
Lukas Matena
08daddb5de WIP: First working implementation of the triangle selector for the FDM support gizmo 2020-03-19 11:15:17 +01:00
bubnikv
4e11552da9 Spiral vase improvements and bugfixes.
Fixes Connecting / expanding Bottom Layers to Vase Perimeter 
Fixes Slicing error in vase mode 
Fixes Slicing Issue (Vase Mode, 0.6mm dmr nozzle) 
Fixes Top fill pattern isn't used in spiral vase mode 
Fixes Cisar's vase doesn't slice correctly, creates artefacts 

When the model is sliced, all the contours are newly oriented
counter-clockwise (even holes), merged and then only the largest area
contour is retained. In perimeter generator, if the largest contour
splits into multiple perimeters, newly only the largest area perimeter
is retained in spiral vase mode. These two changes solve  and similar.

The infill is newly calculated only for the bottom solid layers
if the spiral vase mode is active (removes various unwanted infill
along the vase walls), and the last bottom solid layer is switched
to a top solid pattern (solves ).

The thin walls are newly enforced to be disabled in spiral vase mode,
and the "ensure vertical shell wall" is enforced in spiral vase mode
to extend the bottom of the vase to the vase hull (fixes ).
2020-02-08 21:36:43 +01:00
Lukas Matena
9805b02a25 Removed an obsolete variable from MeshRaycaster 2019-12-12 13:19:16 +01:00
Lukas Matena
537260494d Merge branch 'master' into lm_tm_hollowing 2019-12-12 11:37:33 +01:00
Lukas Matena
f6e217171a 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
Lukas Matena
b4795e1292 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
Lukas Matena
c1e3be9b27 MeshUtils.cpp: MeshRaycaster is now aware of the clipping plane 2019-09-24 12:58:12 +02:00
Lukas Matena
6bcafd7c83 SLA gizmo no more uses IGL code directly, all was moved to the new MeshRaycaster class 2019-09-17 14:57:57 +02:00
Lukas Matena
1dfd8a0e62 MeshRaycaster class is now used in SLA gizmo when selecting by rectangle 2019-09-17 14:57:54 +02:00
Lukas Matena
3694bf3da9 Added functions get_hit_pos, get_hit_normal, ready to implement intersect_ray 2019-09-17 14:57:49 +02:00
Lukas Matena
b6292247e8 Unproject on mesh in the SLA gizmo is now performed by the MeshRaycaster class 2019-09-17 14:57:45 +02:00
Lukas Matena
70c0c87598 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
Renamed from src/slic3r/GUI/MeshClipper.cpp (Browse further)