protected override double CalcArea()
        {
            double A = 0;

            for (int i = 0; i < _Vertices.Count; i++)
            {
                int j = IndexOfNextVertex(i);
                A += ((_Vertices[j].X - _Vertices[i].X) * (_Vertices[j].Y + _Vertices[i].Y));
            }

            if (A < 0)
            {
                _Vertices.Reverse();
            }

            A = 0;
            for (int i = 0; i < _Vertices.Count; i++)
            {
                int j = IndexOfNextVertex(i);
                A += ((_Vertices[j].X - _Vertices[i].X) * (_Vertices[j].Y + _Vertices[i].Y));
            }

            return(1d / 2 * A);
        }