public void GenerateData() { _items = new BenchQuadtreeItem[TotalItems]; _movingItemsOriginal = new BenchQuadtreeItem[MovingItems]; _newRects = new RectangleF[MovingItems]; for (var i = 0; i < TotalItems; i++) { var item = BenchQuadtreeItem.Generate(i, _bounds, new SizeF(MaxItemSize), _random); _items[i] = item; if (i < MovingItems) { var movementVector = Vector2.Normalize(new Vector2((float)_random.NextDouble(), (float)_random.NextDouble())) * (float)_random.NextDouble() * MaximumMovementDistance; var newPosition = item.Collider.AxisAlignedBoundingArea.Position + movementVector; newPosition = Vector2.Max( Vector2.Min(newPosition, _bounds.Position + _bounds.Size.ToVector2() - item.Collider.AxisAlignedBoundingArea.Size.ToVector2()), _bounds.Position); _movingItemsOriginal[i] = item; _newRects[i] = new RectangleF(newPosition, item.Collider.AxisAlignedBoundingArea.Size); } } }
public void GenerateData() { _items = new List <BenchQuadtreeItem>(InsertedItems); for (var i = 0; i < InsertedItems; i++) { _items.Add(BenchQuadtreeItem.Generate(i, _treeBounds, new SizeF(MaxItemSize), _random)); } }
public void GenerateData() { _quadtree = new Quadtree <BenchQuadtreeItem>(new RectangleF(0, 0, 5000, 5000)); _items = new BenchQuadtreeItem[ItemCount]; for (var i = 0; i < ItemCount; i++) { var item = BenchQuadtreeItem.Generate(i, _quadtree.Bounds, new SizeF(ItemSize), _random); _quadtree.Insert(item); _items[i] = item; } // Since items are placed uniformly, it shouldn't matter which area this is. _queryArea = new RectangleF(500, 500, AreaSideLength, AreaSideLength); }