public static void RemoveNodesForCollision(this NodeNetwork network, AxisAlignedRectangle collision)
        {
            var nodeCircle = new Circle {
                Radius = 20f
            };

            for (var i = network.Nodes.Count - 1; i >= 0; i--)
            {
                var node = network.Nodes[i];
                nodeCircle.Position = node.Position;

                if (collision.CollideAgainst(nodeCircle))
                {
                    network.Remove(node);
                }
            }
            network.UpdateShapes();
        }
Exemple #2
0
        public bool CollideAgainst(AxisAlignedRectangle axisAlignedRectangle)
        {
            if (mCollisionAxisAlignedRectangle != null)
            {
                return axisAlignedRectangle.CollideAgainst(mCollisionAxisAlignedRectangle);
            }
            else if (mCollisionCircle != null)
            {
                return axisAlignedRectangle.CollideAgainst(mCollisionCircle);
            }
            else if (mCollisionPolygon != null)
            {
                return mCollisionPolygon.CollideAgainst(axisAlignedRectangle);
            }
            else if (mCollisionLine != null)
            {
                return mCollisionLine.CollideAgainst(axisAlignedRectangle);
            }

            return false;
        }