vcglib/vcg/complex
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
..
algorithms Edge orientation coherence 2021-11-05 10:43:29 +01:00
all_types.h bootstrapping tetra 2018-05-01 17:02:47 +02:00
allocate.h remove memcpy on allocate.h 2021-10-19 15:31:06 +02:00
append.h fix append texcoords 2021-07-05 13:02:13 +02:00
base.h missing include in complex/base.h 2021-10-14 17:06:30 +02:00
complex.h missing header include 2018-05-04 18:19:54 +02:00
exception.h first complex.h files made self-sufficient 2021-03-24 14:53:00 +01:00
foreach.h cleanups 2021-03-24 17:59:53 +01:00
used_types.h code cleanups - remove unneeded semicolons 2021-06-21 11:25:51 +02:00