From 9252e9af1e06c81a3e246cc8a096239f71be7352 Mon Sep 17 00:00:00 2001 From: Minke Zhang Date: Tue, 27 Dec 2022 18:23:59 -0800 Subject: [PATCH] Fix collider benchmarks --- collider/collider.go | 2 +- collider/collider_test.go | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/collider/collider.go b/collider/collider.go index 16f3c86..b7861bc 100644 --- a/collider/collider.go +++ b/collider/collider.go @@ -80,6 +80,7 @@ func (c *C) InsertFeature(o feature.O) *feature.F { f := feature.New(o) feature.SetID(f, x) + c.features[x] = f if err := c.bvhFeatures.Insert(x, f.AABB()); err != nil { panic(fmt.Sprintf("cannot insert feature: %v", err)) } @@ -166,7 +167,6 @@ func (c *C) queryFeatures(q hyperrectangle.R, filter func(f *feature.F) bool) [] collisions = append(collisions, x) } } - return collisions } diff --git a/collider/collider_test.go b/collider/collider_test.go index 567f53d..20e87b8 100644 --- a/collider/collider_test.go +++ b/collider/collider_test.go @@ -345,6 +345,29 @@ func BenchmarkTick(b *testing.B) { Mask: mask.MSizeSmall, }) } + + // Add world borders. + // Add xmin border. + collider.InsertFeature(feature.O{ + Min: vector.V{-1, -1}, + Max: vector.V{0, max + 1}, + }) + // Add xmax border. + collider.InsertFeature(feature.O{ + Min: vector.V{max, -1}, + Max: vector.V{max + 1, max + 1}, + }) + // Add ymin border. + collider.InsertFeature(feature.O{ + Min: vector.V{0, -1}, + Max: vector.V{max, 0}, + }) + // Add ymax border. + collider.InsertFeature(feature.O{ + Min: vector.V{0, max}, + Max: vector.V{max, max + 1}, + }) + b.StartTimer() for i := 0; i < b.N; i++ { collider.Tick(33 * time.Millisecond)