ladybug_geometry.triangulation module

Core triangulation functions used by various geometry modules.

The functions here are derived from the earcut-python library available at

The earcut-python library is, itself, a pure Python port of the earcut JavaScript triangulation library maintained by Mapbox. The original project can be found at

The version here is based off of the JavaScript earcut 2.1.1 release, and is functionally identical.

ladybug_geometry.triangulation.earcut(data, hole_indices=None, dim=2)[source]

Triangulate a list of vertices that make up a shape, either with or without holes.

  • data – A flat array of vertex coordinates like [x0,y0, x1,y1, x2,y2, …].

  • hole_indices – A flat array of the starting indices for each hole. For example, [5, 8] for a 12-vertex input would mean one hole with vertices 5-7 and another with 8-11. If a single vertex is passed as as a hole, Earcut treats it as a Steiner point. If None, no holes will be assumed for the shape. (Default: None).

  • dim – An integer for the number of coordinates per vertex in the input array. For example, 3 means each vertex exists in 3D space with XX, Y, Z coordinates. (Default: 2 for 2D coordinates).