Exemplo n.º 1
0
        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);
                }
            }
        }
Exemplo n.º 2
0
        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));
            }
        }
Exemplo n.º 3
0
        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);
        }