public void DistanceAlongDiagonal()
 {
     var hypotenuse = (float)(2f.Sq() + 2d.Sq()).Sqrt();
     var newBox = new TwoDimensionalBoundingBox(2, 2, 2);
     var dist = newBox.BoundsDistance(6, 6);
     Assert.AreEqual(hypotenuse, dist);
 }
예제 #2
0
    private void DrawBoundingBox(TwoDimensionalBoundingBox bounds)
    {
        var startX = bounds.X - bounds.Radius;
        var endX = bounds.X + bounds.Radius;
        var startY = bounds.Y - bounds.Radius;
        var endY = bounds.Y + bounds.Radius;

        for (var x = startX; x <= endX; x++)
        {
            for (var subX = -1; subX < 2; subX++)
            {
                _texture.SetPixel((int)x, (int)startY + subX, BoundsColor);
                _texture.SetPixel((int)x, (int)endY + subX, BoundsColor);
            }
        }

        for (var y = startY; y <= endY; y++)
        {
            for (var subY = -1; subY < 2; subY++)
            {
                _texture.SetPixel((int)startX + subY, (int)y, BoundsColor);
                _texture.SetPixel((int)endX + subY, (int)y, BoundsColor);
            }
        }
    }
 public void Setup()
 {
     _box = new TwoDimensionalBoundingBox(10, 10, 10);
 }
 public void DistancePointInside()
 {
     var newBox = new TwoDimensionalBoundingBox(2, 2, 2);
     var dist = newBox.BoundsDistance(2, 4);
     Assert.AreEqual(-2, dist);
 }
 public void DistanceAlongStraightPath()
 {
     var newBox = new TwoDimensionalBoundingBox(2, 2, 2);
     var dist = newBox.BoundsDistance(6, 2);
     Assert.AreEqual(2, dist);
 }
 public void BoundsBoundsNonIntersections2D()
 {
     var newBox = new TwoDimensionalBoundingBox(-5, -5, 3);
     Assert.False(_box.Intersects(newBox));
 }
 public void BoundsBoundsInnerIntersection2D()
 {
     var newBox = new TwoDimensionalBoundingBox(11, 11, 2);
     Assert.True(_box.Intersects(newBox));
     Assert.True(newBox.Intersects(_box));
 }
 public void BoundsBoundsEdgeIntersection2D()
 {
     var newBox = new TwoDimensionalBoundingBox(15, 15, 10);
     Assert.True(_box.Intersects(newBox));
 }
예제 #9
0
 public void Setup()
 {
     _box = new TwoDimensionalBoundingBox(10, 10, 10);
     _tree = new Quadtree<TestObject>(_box, 2);
 }