face_adjacency_rhino

compas.topology.face_adjacency_rhino(xyz, faces)[source]

Construct an adjacency dictionary of the given faces, assuming that the faces have arbitrary orientation.

Parameters
  • xyz (sequence[[float, float, float] | Point]) – The coordinates of the face vertices.

  • faces (sequence[sequence[int]]) – A list of faces with each face defined by a list of indices into the list of xyz coordinates.

Returns

dict[int, list[int]] – For every face a list of neighbouring faces.

Notes

If the number of faces is larger than one hundred (100), this function uses Rhino’s RTree for limiting the search for neighbours to the immediate surroundings of any given face.

Examples

>>> vertices = [[0.0, 0.0, 0.0], [1.0, 0.0, 0.0], [1.0, 1.0, 0.0], [0.0, 1.0, 1.0]]
>>> faces = [[0, 1, 2], [0, 3, 2]]
>>> face_adjacency_rhino(vertices, faces)  
{0: [1], 1: [0]}