]> git.jsancho.org Git - dungeon-master.git/blob - dungeon-master/geom/voronoi.scm
7a9c457a4674308023f702a71666c9c1b6ae4e26
[dungeon-master.git] / dungeon-master / geom / voronoi.scm
1 (define-module (dungeon-master geom voronoi)
2   #:use-module (ice-9 receive)
3   #:use-module (srfi srfi-1)
4   #:use-module (srfi srfi-9)
5   #:use-module (dungeon-master geom point)
6   #:use-module (dungeon-master geom triangle)
7   #:use-module (dungeon-master geom bowyer-watson)
8   #:export (make-voronoi-mesh
9             voronoi-mesh?
10             voronoi-mesh-triangles
11             voronoi-mesh-points
12             voronoi-mesh-frame))
13
14 "https://github.com/watabou/TownGeneratorOS/blob/master/Source/com/watabou/geom/Voronoi.hx"
15
16 (define-record-type <voronoi-mesh>
17   (make-raw-voronoi-mesh triangles points frame)
18   voronoi-mesh?
19   (triangles voronoi-mesh-triangles set-voronoi-mesh-triangles!)
20   (points voronoi-mesh-points set-voronoi-mesh-points!)
21   (frame voronoi-mesh-frame set-voronoi-mesh-frame!))
22
23 (define (make-voronoi-mesh vertices)
24   (receive (triangles points frame)
25       (bowyer-watson vertices)
26     (make-raw-voronoi-mesh triangles points frame)))