Mercurial > gemma
diff cmd/octreediff/main.go @ 2483:620038ade708 octree-diff
Incorporated fogleman's fast Delaunay triangulation adjuted to our vertex model.
License: MIT
Home: https://github.com/fogleman/delaunay
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Fri, 01 Mar 2019 15:33:27 +0100 |
parents | 242104c338ff |
children | 4fa92d468164 |
line wrap: on
line diff
--- a/cmd/octreediff/main.go Fri Mar 01 11:06:27 2019 +0100 +++ b/cmd/octreediff/main.go Fri Mar 01 15:33:27 2019 +0100 @@ -114,6 +114,21 @@ type pointMap map[point]float64 +func (pm pointMap) triangulate() { + start := time.Now() + points := make([]octree.Vertex, len(pm)) + var i int + for p, z := range pm { + points[i] = octree.Vertex{X: p.x, Y: p.y, Z: z} + i++ + } + _, err := octree.Triangulate(points) + if err != nil { + log.Printf("triangulate error: %v\n", err) + } + log.Printf("in memory triangulation (%d points) took %s\n", i, time.Since(start)) +} + func (pm pointMap) asWKB() []byte { size := 1 + 4 + 4 + len(pm)*(1+4+3*8) @@ -353,6 +368,8 @@ last = now log.Printf("num points: %d\n", len(result)) + result.triangulate() + data := result.asWKB() now = time.Now()