public static void print_gradient_definition(GradientBase element)
    {
        if (element is LinearGradient)
        {
            LinearGradient grad = (LinearGradient)element;
            Console.WriteLine("\tLinear Gradient: " + grad.getId()
                              + " start: " + toString(grad.getXPoint1()) + ", " +
                              toString(grad.getYPoint1())
                              + " end: " + toString(grad.getXPoint2()) + ", " +
                              toString(grad.getYPoint2())
                              );
        }
        else if (element is RadialGradient)
        {
            RadialGradient grad = (RadialGradient)element;
            Console.WriteLine("\tRadial Gradient: " + grad.getId()
                              + " center: " + toString(grad.getCenterX()) + ", " +
                              toString(grad.getCenterY())
                              + " focal: " + toString(grad.getFocalPointX()) + ", " +
                              toString(grad.getFocalPointY())
                              );
        }

        for (int k = 0; k < element.getNumGradientStops(); ++k)
        {
            GradientStop stop = element.getGradientStop(k);
            if (stop == null)
            {
                continue;
            }
            Console.WriteLine("\t\tstop " + k.ToString() + " id: " + stop.getId() + " stop-color: " +
                              stop.getStopColor());
        }
    }