How to identify vertexes of a part for topological naming

I have looked for a method to calcuate a unique key for each vertex of a Part.

the key should be invariant against move/rotate scale of the part.

The key for a vertex v consists of 3 components:

1. the number of edges of v

2. (the sum of the length of all edges from v)/length of the sum of all edge-vectors

3. the sum of the scaler product of all normalized edge vectors (tangent vectors) with the

normalized sum of all these tangents

If this key is not unique for some points I use as the next key

the sum of the keys of all of its neighbors

This way higher keys can be build as sums of lower keys until each vertex has an unique key.

The keys are local - influence comes only from near vertexes, so modifications

of the part far from a point do not have an impact on the key of the vertex

keys do not contain cordinates or directions,

the do not change when the part is moved, rotated or mirrored

keys are easy to compute.

https://github.com/microelly2/freecad-n ... logy_v2.py