Could be done by general Polygon2d triangulation (opensolid/geometry#29), but might be able to get away with a simpler approach - e.g. the Boost.Polygon library doesn't support triangulation but does support converting a polygon (possibly with holes) into a list of trapezoids, which can then trivially be converted into pairs of triangles. This means that triangles may not always meet properly at vertices, but for now if regions are only ever used for flat surfaces (e.g. planar base surfaces for extrusions or revolutions) then that should be fine.
Could be done by general
Polygon2dtriangulation (opensolid/geometry#29), but might be able to get away with a simpler approach - e.g. the Boost.Polygon library doesn't support triangulation but does support converting a polygon (possibly with holes) into a list of trapezoids, which can then trivially be converted into pairs of triangles. This means that triangles may not always meet properly at vertices, but for now if regions are only ever used for flat surfaces (e.g. planar base surfaces for extrusions or revolutions) then that should be fine.