Mael Rouxel-Labbé
aa6ef78eb3
Various fixes/improvements:
...
- Fix using Delaunay flips after angle smoothing (must be after area smoothing)
- Fix parameter passing to explicit curvature flow formulation
- Use early exits
- Clarify function names
2019-06-05 15:58:24 +02:00
Mael Rouxel-Labbé
bd7fd4a91e
Clean useless code
2019-06-05 10:39:08 +02:00
Mael Rouxel-Labbé
9bc8c6dfcf
Fix smoothing with constraints
2019-06-05 09:39:05 +02:00
Mael Rouxel-Labbé
465aacc2f1
Work towards fixing implicit formulation of curvature flow-based shape smoothing
...
Constrained and border vertices likely still broken
2019-06-04 17:06:08 +02:00
Mael Rouxel-Labbé
7d5f9447a5
Fix explicit formulation of curvature flow-based smoothing
2019-06-04 17:02:32 +02:00
Mael Rouxel-Labbé
7beeb16f05
Partial clean/fix of shape smoothing tests/demo
2019-06-04 17:02:11 +02:00
Mael Rouxel-Labbé
737e94676c
Code cleaning
2019-06-03 12:22:07 +02:00
Mael Rouxel-Labbé
6e3f2c3510
Factorize smoothers and clean obsolete code
2019-05-29 15:59:50 +02:00
Mael Rouxel-Labbé
a15625ceb0
Use ceres in smooth_areas() and factorize a lot of code with smooth_angles()
2019-05-28 13:06:39 +02:00
Mael Rouxel-Labbé
51fab60def
Misc minor changes
2019-05-27 14:51:18 +02:00
Mael Rouxel-Labbé
00cddd0f57
Fix AABB tree type
...
Can't use face_graph AABB tree because the mesh is modified
2019-05-27 14:49:09 +02:00
Mael Rouxel-Labbé
e264ead877
Do not assert if meeting a degenerate face
2019-05-24 13:34:58 +02:00
Mael Rouxel-Labbé
cb1d28bf85
Misc cleaning
2019-05-24 13:34:50 +02:00
Mael Rouxel-Labbé
39790a9b1c
Use a NP to decide whether to reject moves/projections based on post-move sanity
2019-05-24 13:33:53 +02:00
Mael Rouxel-Labbé
ea7885e348
Add new named parameter: use_safety_constraints
...
Used in PMP::smooth_areas() / PMP::smooth_angles()
2019-05-24 13:32:18 +02:00
Mael Rouxel-Labbé
712aa7a99e
Use existing kernel/PMP implementations to evaluate angles/aspect ratios
2019-05-24 12:27:17 +02:00
Mael Rouxel-Labbé
cfbe885115
Add aspect_ratio() to measure.h
...
Needs proper testing, proper documentation(, proper name?)
2019-05-24 12:25:55 +02:00
Mael Rouxel-Labbé
dbe69b2706
Clean measure.h (cosmetic changes only)
2019-05-24 10:45:33 +02:00
Mael Rouxel-Labbé
a7b1da8b05
More fixes to 'smooth_angles()' (fixes to rejection conditions)
2019-05-24 10:32:47 +02:00
Mael Rouxel-Labbé
336c1144a2
Fix smooth_angles()
...
About a complete rewrite due to many bugs (wrong move vector, wrong
gram schmidt algorithm, etc.)
Should also result in a pretty nifty speed up since we avoid recomputing
the same things (angles, incident edgesn etc.) thrice
2019-05-21 15:26:09 +02:00
Mael Rouxel-Labbé
a0ee943881
Misc minor changes
2019-05-21 13:19:14 +02:00
Mael Rouxel-Labbé
b927780d4d
Remove unused function
2019-05-21 11:54:09 +02:00
Mael Rouxel-Labbé
567a9fc611
Move call to 'reserve()' out of a filling loop
2019-05-20 15:47:59 +02:00
Mael Rouxel-Labbé
c7278e4ad7
Use std::begin/end
2019-05-20 15:44:42 +02:00
Mael Rouxel-Labbé
414b234cf6
Document "no degen faces" preconditions and check it in the code
2019-05-20 15:44:09 +02:00
Mael Rouxel-Labbé
8a0656435f
Rename tparam 'PolygonMesh' to 'TriangleMesh'
2019-05-20 15:43:28 +02:00
Mael Rouxel-Labbé
4ade582173
Fix calling 'reserve' within a loop filling the vector
2019-05-20 15:42:38 +02:00
Mael Rouxel-Labbé
e5465dc587
Fix some warnings + code improvements
...
for(:) loop, pre-increment, don't take const& on light types, etc.
2019-05-20 15:41:43 +02:00
Mael Rouxel-Labbé
2d88e227c9
Fix using invalid facerange ('remove_degen_faces(fr)' and then using 'fr')
...
Actually, just get rid of the whole remove_degen_faces(). That's the user's
responsability to use a proper, clean input mesh.
2019-05-20 15:37:10 +02:00
Mael Rouxel-Labbé
af8e6813ae
Fix not using the VPM when building the AABB traits
2019-05-20 15:36:03 +02:00
Mael Rouxel-Labbé
54260a934f
CGAL_assertion ----> assert in tests
2019-05-20 12:52:48 +02:00
Mael Rouxel-Labbé
69b7ba013a
Pass the geomtraits to the smoother
2019-05-20 12:52:06 +02:00
Mael Rouxel-Labbé
69d1b31f26
BOOST_FOREACH(,) > for(:)
2019-05-20 12:51:33 +02:00
Mael Rouxel-Labbé
bcec5d8fe4
Cosmetic changes
2019-05-20 12:50:40 +02:00
Mael Rouxel-Labbé
a120290675
Merge branch 'PMP-smoothing-kkatrio-old' into PMP-smoothing-kkatrio
2019-05-15 14:31:00 +02:00
Laurent Rineau
423c4fbd11
Merge pull request #3266 from MaelRL/PMP-Snap_boundary-GF
...
PMP: boundary snapping
2019-05-14 16:48:00 +02:00
Laurent Rineau
47aa42490b
Merge pull request #3911 from MaelRL/CGAL-Fix_duplicate_non_manifold_vertices-5.0-GF
...
PMP: Fix duplicate_non_manifold_vertices() with pinched vertices (5.0)
2019-05-14 16:30:25 +02:00
Laurent Rineau
d82109cdac
Merge pull request #3910 from maxGimeno/Polgon_mesh_slicer-Fix_orientation-GF
...
PMP::Orient polylines of Polgon Mesh Slicer ccw.
2019-05-13 17:43:57 +02:00
Maxime Gimeno
910d6d076b
use CGAL_USE()
2019-05-13 16:40:07 +02:00
Mael Rouxel-Labbé
2a6409b3af
Lock some vertices that shouldn't move in non-conformal snapping
...
Vertex-vertex snapping can make such that a sequence of points p0 --> p1 --> p2
become p0==p2 --> p1 --> p2 == p0. In this case, we don't want to authorize p1
to move anymore.
2019-05-08 13:34:16 +02:00
Sébastien Loriot
c49f173d83
polyline orientation depend on supporting mesh
2019-05-08 10:13:40 +02:00
Andreas Fabri
1a1f336f2c
Open with std::ios::binary; isspace needs an unsigned char
2019-05-07 11:41:16 +02:00
Maxime Gimeno
cfea874cc1
take the right vectors
2019-05-07 11:24:30 +02:00
Maxime Gimeno
962bac73b2
don't test if not closed
2019-05-07 11:12:59 +02:00
Maxime Gimeno
a059b7aa38
don't touch polylines <=2 points
2019-05-07 10:52:18 +02:00
Maxime Gimeno
cc4bc212f9
Don't use c++11 in tests
2019-05-07 10:41:13 +02:00
Mael Rouxel-Labbé
713f5a2d45
Resolve conflicts between master and 4.14-based branch that fixes manifoldness
...
Conflicts resulting from the switch to C++11 (BOOST_FOREACH disappearing etc.)
2019-05-07 10:34:16 +02:00
Maxime Gimeno
29ba7a8992
check that there are at least 2 points in the polyline before testing
2019-05-07 10:19:44 +02:00
Maxime Gimeno
fe675e87b1
Fix test and update doc.
2019-05-07 09:58:27 +02:00
Maxime Gimeno
0105eefe45
Add a test to detect if the result of the slicer is cw oriented when seen from the positive side of the slice-plane. If it is, reverse the orientation. Add assertions in the test.
2019-05-07 09:40:47 +02:00