--- /dev/null
+(define-module (dungeon-master geom voronoi)
+ #:use-module (ice-9 receive)
+ #:use-module (srfi srfi-1)
+ #:use-module (srfi srfi-9)
+ #:use-module (dungeon-master geom point)
+ #:use-module (dungeon-master geom triangle)
+ #:use-module (dungeon-master geom bowyer-watson)
+ #:export (make-voronoi-mesh
+ voronoi-mesh?
+ voronoi-mesh-triangles
+ voronoi-mesh-points
+ voronoi-mesh-frame))
+
+"https://github.com/watabou/TownGeneratorOS/blob/master/Source/com/watabou/geom/Voronoi.hx"
+
+(define-record-type <voronoi-mesh>
+ (make-raw-voronoi-mesh triangles points frame)
+ voronoi-mesh?
+ (triangles voronoi-mesh-triangles set-voronoi-mesh-triangles!)
+ (points voronoi-mesh-points set-voronoi-mesh-points!)
+ (frame voronoi-mesh-frame set-voronoi-mesh-frame!))
+
+(define (make-voronoi-mesh vertices)
+ (receive (triangles points frame)
+ (bowyer-watson vertices)
+ (make-raw-voronoi-mesh triangles points frame)))