diff --git a/common/graph_rtree.go b/common/graph_rtree.go index d7d9684..a090214 100644 --- a/common/graph_rtree.go +++ b/common/graph_rtree.go @@ -4,9 +4,10 @@ import ( "github.com/dhconnelly/rtreego" "math" + "reflect" ) -func RtreegoRect(r Rectangle) *rtreego.Rect { +func RtreegoRect(r Rectangle) rtreego.Rect { dx := math.Max(0.00000001, r.Max.X - r.Min.X) dy := math.Max(0.00000001, r.Max.Y - r.Min.Y) rect, err := rtreego.NewRect(rtreego.Point{r.Min.X, r.Min.Y}, []float64{dx, dy}) @@ -18,11 +19,12 @@ func RtreegoRect(r Rectangle) *rtreego.Rect { type edgeSpatial struct { edge *Edge - rect *rtreego.Rect + rect rtreego.Rect } -func (e *edgeSpatial) Bounds() *rtreego.Rect { - if e.rect == nil { +func (e *edgeSpatial) Bounds() rtreego.Rect { + isEmpty := reflect.DeepEqual(rtreego.Rect{}, e.rect) + if isEmpty { r := e.edge.Src.Point.Rectangle() r = r.Extend(e.edge.Dst.Point) e.rect = RtreegoRect(r)