diff pkg/imports/sr.go @ 4827:f4abfd0ee8ad remove-octree-debris

Renamed octree package to mesh as there is no octree any more.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Tue, 05 Nov 2019 14:30:22 +0100
parents 1fef4679b07a
children 046a07a33b19
line wrap: on
line diff
--- a/pkg/imports/sr.go	Tue Nov 05 13:01:37 2019 +0100
+++ b/pkg/imports/sr.go	Tue Nov 05 14:30:22 2019 +0100
@@ -35,8 +35,8 @@
 	shp "github.com/jonas-p/go-shp"
 
 	"gemma.intevation.de/gemma/pkg/common"
+	"gemma.intevation.de/gemma/pkg/mesh"
 	"gemma.intevation.de/gemma/pkg/models"
-	"gemma.intevation.de/gemma/pkg/octree"
 	"gemma.intevation.de/gemma/pkg/wkb"
 )
 
@@ -314,8 +314,8 @@
 		ldc /= 100
 		xform = chainTransforms(
 			xform,
-			func(v octree.Vertex) octree.Vertex {
-				return octree.Vertex{X: v.X, Y: v.Y, Z: v.Z + ldc}
+			func(v mesh.Vertex) mesh.Vertex {
+				return mesh.Vertex{X: v.X, Y: v.Y, Z: v.Z + ldc}
 			})
 		m.DepthReference = depthReference
 	}
@@ -324,7 +324,7 @@
 		return nil, common.ToError(err)
 	}
 
-	var xyz octree.MultiPointZ
+	var xyz mesh.MultiPointZ
 
 	if z != nil { // Scanning ZIP file for *.xyz file.
 		var xyzf *zip.File
@@ -392,7 +392,7 @@
 	feedback Feedback,
 	importID int64,
 	m *models.SoundingResultMeta,
-	xyz octree.MultiPointZ,
+	xyz mesh.MultiPointZ,
 	boundary polygonSlice,
 ) (interface{}, error) {
 
@@ -429,7 +429,7 @@
 	feedback.Info("Triangulate XYZ data.")
 
 	start = time.Now()
-	tri, err := octree.Triangulate(xyz)
+	tri, err := mesh.Triangulate(xyz)
 	if err != nil {
 		return nil, err
 	}
@@ -437,12 +437,12 @@
 	feedback.Info("Number triangles: %d.", len(tri.Triangles)/3)
 
 	var (
-		clippingPolygon         octree.Polygon
-		clippingPolygonBuffered octree.Polygon
+		clippingPolygon         mesh.Polygon
+		clippingPolygonBuffered mesh.Polygon
 		removed                 map[int32]struct{}
 		polygonArea             float64
 		clippingPolygonWKB      []byte
-		tin                     *octree.Tin
+		tin                     *mesh.Tin
 	)
 
 	if boundary == nil {
@@ -450,7 +450,7 @@
 		tooLongEdge := tri.EstimateTooLong()
 		feedback.Info("Eliminate triangles with edges longer than %.2f meters.", tooLongEdge)
 
-		var polygon octree.LineStringZ
+		var polygon mesh.LineStringZ
 		start = time.Now()
 		polygon, removed = tri.ConcaveHull(tooLongEdge)
 
@@ -503,7 +503,7 @@
 		tin := tri.Tin()
 		tin.EPSG = epsg
 
-		var str octree.STRTree
+		var str mesh.STRTree
 		str.Build(tin)
 
 		removed = str.Clip(&clippingPolygon)
@@ -529,7 +529,7 @@
 		start = time.Now()
 
 		tin := tri.Tin()
-		var virtual octree.STRTree
+		var virtual mesh.STRTree
 		virtual.BuildWithout(tin, removed)
 
 		feedback.Info("Building took %v", time.Since(start))
@@ -541,13 +541,13 @@
 
 		start = time.Now()
 
-		generated := make(octree.LineStringZ, 0, numPoints+clippingPolygon.NumVertices(0))
+		generated := make(mesh.LineStringZ, 0, numPoints+clippingPolygon.NumVertices(0))
 
-		octree.GenerateRandomVertices(
+		mesh.GenerateRandomVertices(
 			numPoints,
 			tin.Min, tin.Max,
 			virtual.Value,
-			func(vertices []octree.Vertex) {
+			func(vertices []mesh.Vertex) {
 				generated = append(generated, vertices...)
 			})
 
@@ -562,15 +562,15 @@
 			}
 			dupes[key] = struct{}{}
 			if z, ok := virtual.Value(x, y); ok {
-				generated = append(generated, octree.Vertex{X: x, Y: y, Z: z})
+				generated = append(generated, mesh.Vertex{X: x, Y: y, Z: z})
 			}
 		})
 
 		feedback.Info("Triangulate new point cloud.")
-		xyz = octree.MultiPointZ(generated)
+		xyz = mesh.MultiPointZ(generated)
 		start = time.Now()
 
-		tri, err = octree.Triangulate(xyz)
+		tri, err = mesh.Triangulate(xyz)
 		if err != nil {
 			return nil, err
 		}
@@ -585,7 +585,7 @@
 	tin = tri.Tin()
 	tin.EPSG = epsg
 
-	var str octree.STRTree
+	var str mesh.STRTree
 	str.Build(tin)
 	feedback.Info("Building clipping index took %v", time.Since(start))
 
@@ -597,7 +597,7 @@
 	feedback.Info("Number of triangles to clip %d.", len(removed))
 
 	start = time.Now()
-	final := octree.STRTree{Entries: 16}
+	final := mesh.STRTree{Entries: 16}
 	final.BuildWithout(tin, removed)
 
 	feedback.Info("Building final mesh took %v.", time.Since(start))
@@ -742,20 +742,20 @@
 	return &m, nil
 }
 
-type vertexTransform func(octree.Vertex) octree.Vertex
+type vertexTransform func(mesh.Vertex) mesh.Vertex
 
-func identityTransform(v octree.Vertex) octree.Vertex { return v }
+func identityTransform(v mesh.Vertex) mesh.Vertex { return v }
 
-func negateZTransform(v octree.Vertex) octree.Vertex {
-	return octree.Vertex{X: v.X, Y: v.Y, Z: -v.Z}
+func negateZTransform(v mesh.Vertex) mesh.Vertex {
+	return mesh.Vertex{X: v.X, Y: v.Y, Z: -v.Z}
 }
 
 func chainTransforms(a, b vertexTransform) vertexTransform {
-	return func(v octree.Vertex) octree.Vertex { return b(a(v)) }
+	return func(v mesh.Vertex) mesh.Vertex { return b(a(v)) }
 }
 
-func loadXYZReader(r io.Reader, feedback Feedback, xform vertexTransform) (octree.MultiPointZ, error) {
-	mpz := make(octree.MultiPointZ, 0, 250000)
+func loadXYZReader(r io.Reader, feedback Feedback, xform vertexTransform) (mesh.MultiPointZ, error) {
+	mpz := make(mesh.MultiPointZ, 0, 250000)
 	s := bufio.NewScanner(r)
 
 	warnLimiter := common.WarningLimiter{Log: feedback.Warn, MaxWarnings: 100}
@@ -764,7 +764,7 @@
 
 	for line := 1; s.Scan(); line++ {
 		text := s.Text()
-		var p octree.Vertex
+		var p mesh.Vertex
 		// fmt.Sscanf(text, "%f,%f,%f") is 4 times slower.
 		idx := strings.IndexByte(text, ',')
 		if idx == -1 {
@@ -801,7 +801,7 @@
 	return mpz, nil
 }
 
-func loadXYZ(f *zip.File, feedback Feedback, xform vertexTransform) (octree.MultiPointZ, error) {
+func loadXYZ(f *zip.File, feedback Feedback, xform vertexTransform) (mesh.MultiPointZ, error) {
 	r, err := f.Open()
 	if err != nil {
 		return nil, err
@@ -810,7 +810,7 @@
 	return loadXYZReader(r, feedback, xform)
 }
 
-func loadXYZFile(f string, feedback Feedback, xform vertexTransform) (octree.MultiPointZ, error) {
+func loadXYZFile(f string, feedback Feedback, xform vertexTransform) (mesh.MultiPointZ, error) {
 	r, err := os.Open(f)
 	if err != nil {
 		return nil, err
@@ -859,11 +859,11 @@
 	ctx context.Context,
 	tx *sql.Tx,
 	feedback Feedback,
-	tree *octree.STRTree,
+	tree *mesh.STRTree,
 	id int64,
 ) error {
 
-	heights, err := octree.LoadClassBreaks(
+	heights, err := mesh.LoadClassBreaks(
 		ctx, tx,
 		"morphology_classbreaks",
 	)
@@ -879,7 +879,7 @@
 			heights = append(heights, h)
 		}
 	} else {
-		heights = octree.ExtrapolateClassBreaks(heights, minZ, maxZ)
+		heights = mesh.ExtrapolateClassBreaks(heights, minZ, maxZ)
 	}
 
 	/*
@@ -898,7 +898,7 @@
 	ctx context.Context,
 	tx *sql.Tx,
 	feedback Feedback,
-	tree *octree.STRTree,
+	tree *mesh.STRTree,
 	heights []float64,
 	id int64,
 ) error {
@@ -909,14 +909,14 @@
 			time.Since(total))
 	}()
 
-	box := octree.Box2D{
+	box := mesh.Box2D{
 		X1: tree.Min().X,
 		Y1: tree.Min().Y,
 		X2: tree.Max().X,
 		Y2: tree.Max().Y,
 	}
 
-	raster := octree.NewRaster(box, isoCellSize)
+	raster := mesh.NewRaster(box, isoCellSize)
 	raster.Rasterize(tree.Value)
 	areas := raster.Trace(heights)