public override bool Equals(Object o)
 {
     if (this == o)
     {
         return(true);
     }
     if (o == null || GetType() != o.GetType())
     {
         return(false);
     }
     iText.Kernel.Colors.Gradients.GradientColorStop that = (iText.Kernel.Colors.Gradients.GradientColorStop)o;
     return(JavaUtil.FloatCompare(that.opacity, opacity) == 0 && JavaUtil.DoubleCompare(that.offset, offset) ==
            0 && JavaUtil.DoubleCompare(that.hintOffset, hintOffset) == 0 && JavaUtil.ArraysEquals(rgb, that.rgb) &&
            offsetType == that.offsetType && hintOffsetType == that.hintOffsetType);
 }
 /// <summary>Constructor that creates the stop with the same color as the another stop and new offset</summary>
 /// <param name="gradientColorStop">the gradient stop color from which the color value would be copied</param>
 /// <param name="offset">
 /// the new offset. Makes sense only if the
 /// <paramref name="offsetType"/>
 /// is not
 /// <see cref="OffsetType.AUTO"/>
 /// </param>
 /// <param name="offsetType">the new offset's type</param>
 public GradientColorStop(iText.Kernel.Colors.Gradients.GradientColorStop gradientColorStop, double offset,
                          GradientColorStop.OffsetType offsetType)
     : this(gradientColorStop.GetRgbArray(), gradientColorStop.GetOpacity(), offset, offsetType)
 {
 }