func Render(lines ln.Paths, matrix ln.Matrix) ln.Paths { scene := ln.Scene{} sphere := ln.NewSphere(ln.Vector{}, 1) earth := Earth{sphere, lines} shape := ln.NewTransformedShape(&earth, matrix) scene.Add(shape) eye := ln.LatLngToXYZ(35.7806, -78.6389, 1).Normalize().MulScalar(2.46) center := ln.Vector{} up := ln.Vector{0, 0, 1} return scene.Render(eye, center, up, 60, 1, 0.1, 100, 0.01) }
func getPaths(line *shp.PolyLine) ln.Paths { var result ln.Paths parts := append(line.Parts, line.NumPoints) for part := 0; part < len(parts)-1; part++ { var path ln.Path a := parts[part] b := parts[part+1] for i := a; i < b; i++ { pt := line.Points[i] path = append(path, ln.LatLngToXYZ(pt.Y, pt.X, 1)) } result = append(result, path) } return result }