entente.restore_correspondence module¶
-
entente.restore_correspondence.
find_correspondence
(a, b, atol=0.0001, all_must_match=True, ret_unmatched_b=False, progress=True)[source]¶ Given a[0], a[1], …, a[k] and b[0], b[1], …, b[j], match each element of a to the corresponding element of b.
When all_must_match is True a and b must contain the same set of elements. b[find_correspondence(a, b)] equals a. Otherwise, return -1 for elements with no match in b.
Parameters: - a (np.arraylike) – kxn array.
- b (np.arraylike) – jxn array.
- atol (float) – Match tolerance.
- all_must_match (bool) – When True, a and b must contain the same elements.
- ret_unmatched_b (bool) – When True, return a tuple which also contains the indices of b which were not matched.
- progress (bool) – When True, show a progress bar.
Returns: Indices of b as kx1
Return type: np.ndarray
Note
This relies on a brute-force algorithm.
For the interpretation of atol, see documentation for np.isclose.
-
entente.restore_correspondence.
restore_correspondence
(shuffled_mesh, reference_mesh, atol=0.0001, progress=True)[source]¶ Given a reference mesh, reorder the vertices of a shuffled copy to restore correspondence with the reference mesh. The vertex set of the shuffled mesh and reference mesh must be equal within atol. Mutate reference_mesh. Ignore faces but preserves their integrity.
Parameters: - reference_mesh (lace.mesh.Mesh) – A mesh with the vertices in the desired order.
- shuffled_mesh (lace.mesh.Mesh) – A mesh with the same vertex set as reference_mesh.
- progress (bool) – When True, show a progress bar.
Returns: vx1 which maps old vertices in shuffled_mesh to new.
Return type: np.ndarray
Note
This was designed to assist in extracting face ordering and groups from a shuffled_mesh that “work” with reference_mesh, so the face ordering and groups can be used with different vertices.
It relies on a brute-force algorithm.