private static GradientRepeater CreateGradientRepeater(GradientRepeatType repeatType) { switch (repeatType) { case GradientRepeatType.NoRepeat: return(new GradientRepeaters.NoRepeat()); case GradientRepeatType.RepeatWrapped: return(new GradientRepeaters.RepeatWrapped()); case GradientRepeatType.RepeatReflected: return(new GradientRepeaters.RepeatReflected()); } throw ExceptionUtil.InvalidEnumArgumentException <GradientRepeatType>(repeatType, "repeatType"); }
private static GradientShape CreateGradientShape(GradientType gradientType, GradientRepeatType repeatType, PointDouble startPoint, PointDouble endPoint) { if (startPoint == endPoint) { return(null); } switch (gradientType) { case GradientType.LinearClamped: return(new GradientShapes.LinearStraight(startPoint, endPoint)); case GradientType.LinearReflected: return(new GradientShapes.LinearReflected(startPoint, endPoint)); case GradientType.LinearDiamond: return(new GradientShapes.LinearDiamond(startPoint, endPoint)); case GradientType.Radial: return(new GradientShapes.Radial(startPoint, endPoint)); case GradientType.Conical: if (repeatType != GradientRepeatType.NoRepeat) { return(new GradientShapes.Conical(startPoint, endPoint)); } return(new GradientShapes.ConicalNoRepeat(startPoint, endPoint)); case GradientType.Spiral: if (repeatType != GradientRepeatType.RepeatReflected) { return(new GradientShapes.Spiral(startPoint, endPoint)); } return(new GradientShapes.SpiralReflected(startPoint, endPoint)); case GradientType.SpiralCounterClockwise: if (repeatType != GradientRepeatType.RepeatReflected) { return(new GradientShapes.SpiralCCW(startPoint, endPoint)); } return(new GradientShapes.SpiralReflectedCCW(startPoint, endPoint)); } throw ExceptionUtil.InvalidEnumArgumentException <GradientType>(gradientType, "gradientType"); }
private bool IsAntialiasingRequiredForShape(GradientType gradientType, GradientRepeatType gradientRepeatType, PointDouble startPoint, PointDouble endPoint) { if (gradientRepeatType == GradientRepeatType.RepeatReflected) { VectorDouble num2 = (VectorDouble)(endPoint - startPoint); return(num2.Length < 8.0); } switch (gradientType) { case GradientType.LinearClamped: case GradientType.LinearReflected: case GradientType.LinearDiamond: case GradientType.Radial: return(gradientRepeatType == GradientRepeatType.RepeatWrapped); case GradientType.Conical: case GradientType.Spiral: case GradientType.SpiralCounterClockwise: return(true); } throw ExceptionUtil.InvalidEnumArgumentException <GradientType>(gradientType, "gradientType"); }