X-Git-Url: https://git.jsancho.org/?p=dungeon-master.git;a=blobdiff_plain;f=dungeon-master%2Fgeom%2Fvoronoi.scm;fp=dungeon-master%2Fgeom%2Fvoronoi.scm;h=7a9c457a4674308023f702a71666c9c1b6ae4e26;hp=0000000000000000000000000000000000000000;hb=695ecf94f5bb10ced4e66b0b4d036de9965c02ca;hpb=4e1254800a1c453aba76b8ccd5b632f38a71aed7 diff --git a/dungeon-master/geom/voronoi.scm b/dungeon-master/geom/voronoi.scm new file mode 100644 index 0000000..7a9c457 --- /dev/null +++ b/dungeon-master/geom/voronoi.scm @@ -0,0 +1,26 @@ +(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 + (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)))