コード例 #1
0
ファイル: Circle.cs プロジェクト: hasanheroglu/QuadTree
        public override bool Intersects(Tree.Rectangle rectangle)
        {
            var distanceX      = Mathf.Abs(PosX - rectangle.PosX);
            var distanceY      = Mathf.Abs(PosY - rectangle.PosY);
            var cornerDistance = Mathf.Pow(distanceX - rectangle.Width, 2) + Mathf.Pow(distanceY - rectangle.Height, 2);

            if (PosX < rectangle.PosX + rectangle.Width &&
                PosX > rectangle.PosX - rectangle.Width &&
                PosY < rectangle.PosY + rectangle.Height &&
                PosY > rectangle.PosY - rectangle.Height)   //inside the rectangle
            {
                return(true);
            }

            if (distanceX > Radius + rectangle.Width || distanceY > Radius + rectangle.Height)
            {
                return(false);
            }

            if (distanceX <= Radius + rectangle.Width)
            {
                return(true);
            }

            if (distanceY <= Radius + rectangle.Height)
            {
                return(true);
            }

            return(cornerDistance <= Mathf.Pow(Radius, 2));
        }
コード例 #2
0
ファイル: Shape.Test.cs プロジェクト: adelinast/TreeShapes
        public void ShapeSetType()
        {
            //ACT
            Shape rectangle = new Tree.Rectangle();

            //ASSERT
            Assert.AreEqual(rectangle.GetShapeType(), ShapeType.RECTANGLE);
        }
コード例 #3
0
 public override bool Intersects(Tree.Rectangle rectangle)
 {
     return(!(
                PosX + Width < rectangle.PosX - rectangle.Width ||
                PosX - Width > rectangle.PosX + rectangle.Width ||
                PosY - Height > rectangle.PosY + rectangle.Height ||
                PosY + Height < rectangle.PosY - rectangle.Height
                ));
 }
コード例 #4
0
ファイル: Tree.cs プロジェクト: savorywatt/rtree
 private void mutate(OperationType operationType, Rectangle[] rects)
 {
     var operation = new Operation(OperationType.Add);
     operation.Rects = rects;
     lock (operation.Sync)
     {
         this.queue.Enqueue(operation);
         Monitor.Wait(operation.Sync);
     }
 }
コード例 #5
0
ファイル: Shape.Test.cs プロジェクト: adelinast/TreeShapes
        public void ShapeSetGetColor()
        {
            //ACT
            Shape rectangleRed = new Tree.Rectangle();

            rectangleRed.Color = Color.Red;

            //ASSERT
            Assert.AreEqual(rectangleRed.Color, Color.Red);
        }
コード例 #6
0
ファイル: Tree.cs プロジェクト: savorywatt/rtree
 public ICollection<Rectangle> Query(Rectangle rect)
 {
     return null;
 }
コード例 #7
0
ファイル: Entity.cs プロジェクト: hasanheroglu/QuadTree
 public abstract bool Intersects(Tree.Rectangle rectangle);