vcglib/vcg/complex/algorithms
jmespadero 97a521fd23
Edge orientation coherence
Sort edges in output of IntersectionPlaneMesh() to remove duplicate vertex and maintain orientation coherence in the edges.

Before this change, the vertex list contains duplicates and the edge list is not sorted, so there is no easy way to build the polylines of the cut. Calling RemoveDuplicateVertex() will produce a edge list with no coherence, like this example:

```
edge [0 1] goes from [0.12843863 0.38690682 0.1] to [0.13383933 0.3839188  0.1]
edge [2 3] goes from [0.14307424 0.38100217 0.1] to [0.13592989 0.38318165 0.1]
edge [3 1] goes from [0.13592989 0.38318165 0.1] to [0.13383933 0.3839188  0.1]
```

The output is correct, but somehow confusing because edges in the polyline(s) are not in order. After the proposed change, the output will be: 

```
edge [0 1] goes from [0.12843863 0.38690682 0.1] to [0.13383933 0.3839188  0.1]
edge [1 3] goes from [0.13383933 0.3839188  0.1] to [0.13592989 0.38318165 0.1]
edge [3 2] goes from [0.13592989 0.38318165 0.1] to [0.14307424 0.38100217 0.1]
```
2021-11-05 10:43:29 +01:00
..
create removed memset from isosurfacing classes 2021-10-19 18:56:48 +02:00
local_optimization remove sprintf from edge collapse algorithms 2021-10-20 08:48:06 +02:00
parametrization corrected some simple warning and avoided collapse of edges of triangular faces for polygons 2021-08-31 21:38:59 +10:00
tetra seed tetfuse + tetra3 utility functions 2018-05-10 16:02:26 +02:00
update Update curvature_fitting.h 2021-10-14 23:02:13 +02:00
align_global.h fix meshtree params 2021-09-16 18:58:41 +02:00
align_pair.h remove memset from align_pair.h and marching_cubes.h 2021-10-19 11:57:02 +02:00
attribute_seam.h Huge reordering of header file inclusion order 2017-03-14 07:48:48 +01:00
autoalign_4pcs.h Huge copyright sanitization of the header files of vcg folder. 2016-06-13 05:29:25 +00:00
bitquad_creation.h Huge copyright sanitization of the header files of vcg folder. 2016-06-13 05:29:25 +00:00
bitquad_optimization.h Huge copyright sanitization of the header files of vcg folder. 2016-06-13 05:29:25 +00:00
bitquad_support.h Huge copyright sanitization of the header files of vcg folder. 2016-06-13 05:29:25 +00:00
clean.h fix append and SplitManifoldComponents when wedge text coords are enabled 2021-05-17 17:36:32 +02:00
clip.h Huge copyright sanitization of the header files of vcg folder. 2016-06-13 05:29:25 +00:00
closest.h Added functions for FaceType in the EmptyTMark class 2016-10-18 13:38:10 +02:00
clustering.h Huge reordering of header file inclusion order 2017-03-14 07:48:48 +01:00
convex_hull.h typo in comment 2020-08-21 08:38:59 +02:00
crease_cut.h Updated the functions that cuts along crease edges to use the new faceedge selections 2018-05-05 00:37:33 +02:00
curve_on_manifold.h refactoring 2021-06-11 17:28:26 +02:00
cut_tree.h Cleaned up the CoM (curve on manifold) class and revised the sample using it 2018-05-05 00:38:41 +02:00
cylinder_clipping.h removed deprecated std::unary_function 2020-10-16 14:15:40 +02:00
dual_meshing.h Added missing requirement 2018-11-29 00:33:32 +01:00
edge_collapse.h bug fix on isotropic remeshing collapse strategy 2020-11-13 15:30:38 +01:00
geodesic.h fix a bug that causing heap priority to be inconsistent after updating vertex quality [using windows runtime this would cause an assertion to fail] 2019-12-11 10:23:26 +01:00
halfedge_quad_clean.h Huge copyright sanitization of the header files of vcg folder. 2016-06-13 05:29:25 +00:00
harmonic.h fix const correctnes of face/component.h 2021-03-24 19:15:10 +01:00
hole.h remove sprintf from hole.h, plymc.h and volume.h 2021-10-19 18:25:28 +02:00
implicit_smooth.h Removed hard coded eigenlib path from the include. So you are free to use the version of eigen you prefer. 2017-01-26 15:31:53 +01:00
inertia.h random const correctness 2021-01-28 21:30:24 +01:00
inside.h Huge copyright sanitization of the header files of vcg folder. 2016-06-13 05:29:25 +00:00
intersection.h Edge orientation coherence 2021-11-05 10:43:29 +01:00
isotropic_remeshing.h fix const correctnes of face/component.h 2021-03-24 19:15:10 +01:00
local_optimization.h Cleaning unused stuff and better comments 2017-02-21 17:47:29 +01:00
mesh_assert.h all complex.h files are self-sufficient 2021-03-24 17:47:49 +01:00
mesh_to_matrix.h added std namespace for max function on line 281 2021-08-31 21:40:01 +10:00
meshtree.h remove sprintf from meshtree and perfect_sparial_hashing 2021-10-20 09:38:07 +02:00
nring.h Huge reordering of header file inclusion order 2017-03-14 07:48:48 +01:00
occupancy_grid.h format occupancy_grid.h 2021-09-15 23:47:42 +02:00
outline_support.h Added some missing templates to outline_support.h 2019-01-31 14:21:28 +01:00
overlap_estimation.h Huge copyright sanitization of the header files of vcg folder. 2016-06-13 05:29:25 +00:00
point_matching_scale.h remove memcpy from point_matching_scale.h 2021-10-19 15:06:28 +02:00
point_outlier.h fix omp compile error on windows (no unsigned int supported by MSVC) 2020-02-21 11:03:47 +01:00
point_sampling.h Fixed 2 more instances of the Marsienne Twister 2021-08-24 09:26:28 +10:00
pointcloud_normal.h hardcoded floats to Scalar; fix some warnings (#158) 2021-01-28 12:46:13 +01:00
polygon_polychord_collapse.h Huge reordering of header file inclusion order 2017-03-14 07:48:48 +01:00
polygon_support.h get birth faces indices in ImportFromPolyMesh function 2021-07-07 16:45:15 +02:00
polygonal_algorithms.h corrected some simple warning and avoided collapse of edges of triangular faces for polygons 2021-08-31 21:38:59 +10:00
quadrangulator.h removed deprecated std::unary_function 2020-10-16 14:15:40 +02:00
ransac_matching.h Huge copyright sanitization of the header files of vcg folder. 2016-06-13 05:29:25 +00:00
refine.h codespell - see #92 2021-03-25 15:19:14 +01:00
refine_loop.h removed deprecated std::unary_function 2020-10-16 14:15:40 +02:00
skeleton.h Refactoring of the voronoi processing framework 2016-12-20 09:12:50 +01:00
smooth.h solved bug non-referenced vertices in hc laplacian smoothing 2019-12-18 15:47:29 +01:00
stat.h complex/algorithms/stat.h const correctness 2021-04-26 14:31:04 +02:00
symmetry.h Update symmetry.h 2020-02-11 19:33:01 +01:00
tetra_implicit_smooth.h tetra smooth 2018-05-23 17:51:20 +02:00
textcoord_optimization.h codespell - see #92 2021-03-25 15:19:14 +01:00
voronoi_processing.h Moved delaunay mesh creation function from voronoi remesher to voronoi processing 2020-02-13 19:00:30 +01:00
voronoi_remesher.h Moved delaunay mesh creation function from voronoi remesher to voronoi processing 2020-02-13 19:00:30 +01:00
voronoi_volume_sampling.h minor fix 2019-01-30 14:45:49 +01:00