1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- /////////////////////////////////////////////////////////////////////////////////
- // Paint.NET //
- // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. //
- // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. //
- // See src/Resources/Files/License.txt for full licensing and attribution //
- // details. //
- // . //
- /////////////////////////////////////////////////////////////////////////////////
- using PaintDotNet.Measurement.Enum;
- using System;
- using System.ComponentModel;
- namespace PaintDotNet.Measurement.ObjInfo
- {
- [Serializable]
- public sealed class GradientInfo
- : ICloneable
- {
- private GradientType gradientType;
- private bool alphaOnly;
- public GradientType GradientType
- {
- get
- {
- return this.gradientType;
- }
- }
- public bool AlphaOnly
- {
- get
- {
- return this.alphaOnly;
- }
- }
- public GradientRenderer CreateGradientRenderer()
- {
- UserBlendOps.NormalBlendOp normalBlendOp = new UserBlendOps.NormalBlendOp();
- switch (this.gradientType)
- {
- case GradientType.LinearClamped:
- return new GradientRenderers.LinearClamped(this.alphaOnly, normalBlendOp);
- case GradientType.LinearReflected:
- return new GradientRenderers.LinearReflected(this.alphaOnly, normalBlendOp);
- case GradientType.LinearDiamond:
- return new GradientRenderers.LinearDiamond(this.alphaOnly, normalBlendOp);
- case GradientType.Radial:
- return new GradientRenderers.Radial(this.alphaOnly, normalBlendOp);
- case GradientType.Conical:
- return new GradientRenderers.Conical(this.alphaOnly, normalBlendOp);
- default:
- throw new InvalidEnumArgumentException();
- }
- }
- public override bool Equals(object obj)
- {
- GradientInfo asGI = obj as GradientInfo;
- if (asGI == null)
- {
- return false;
- }
- return (asGI.GradientType == this.GradientType && asGI.AlphaOnly == this.AlphaOnly);
- }
- public override int GetHashCode()
- {
- return unchecked(this.gradientType.GetHashCode() + this.alphaOnly.GetHashCode());
- }
- public GradientInfo(GradientType gradientType, bool alphaOnly)
- {
- this.gradientType = gradientType;
- this.alphaOnly = alphaOnly;
- }
- public GradientInfo Clone()
- {
- return new GradientInfo(this.gradientType, this.alphaOnly);
- }
- object ICloneable.Clone()
- {
- return Clone();
- }
- }
- }
|