public void Draw(
            IEntity entity,
            Graphics gc)
        {
            Condition.Requires(entity, nameof(entity)).IsNotNull();
            if (entity.Type != this.EntityType)
            {
                return;
            }

            Condition.Requires(gc, nameof(gc)).IsNotNull();

            var helper = new PointDrawingHelper(this._drawSettings, entity.X, entity.Y);

            gc.DrawLine(
                _pen,
                helper.GetMiddlePointLeft(),
                helper.GetMiddlePointRight());

            gc.DrawLine(
                _pen,
                helper.GetMiddlePointTop(),
                helper.GetMiddlePointDown());

            gc.DrawLine(
                _pen,
                helper.GetCornerPointLeftTop(),
                helper.GetCornerPointRightDown());

            gc.DrawLine(
                _pen,
                helper.GetCornerPointRightTop(),
                helper.GetCornerPointLeftDown());
        }
        public void Draw(IEntity entity, Graphics gc)
        {
            Condition.Requires(entity, nameof(entity)).IsNotNull();
            Condition.Requires(gc, nameof(gc)).IsNotNull();
            if (entity.Type != this.EntityType)
            {
                return;
            }

            var helper = new PointDrawingHelper(this._drawSettings, entity.X, entity.Y);

            var fireRectanleSize = new Size(
                (this._drawSettings.PointSize - 2) / 2,
                (this._drawSettings.PointSize - 2) / 2);

            var rectPositions = new[]
            {
                helper.GetCornerPointLeftTop(),
                helper.GetMiddlePointLeft(),
                helper.GetMiddlePointTop(),
                helper.GetCentrePoint()
            };

            rectPositions
            .ForEach(point =>
                     gc.FillEllipse(
                         this._fireBrush,
                         new Rectangle(point, fireRectanleSize)));
        }