2D Graphics C#

//GNU General Public License version 2 (GPLv2)
//http://dotwayutilities.codeplex.com/license
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Media;
using System.ComponentModel;
namespace Dotway.WPF.Controls.Utilities
{
    /// 
    /// Color representation in r,g,b with values [0.0 - 1.0].
    /// 

    public struct RGB
    {
        public RGB(Color color)
        {
            r = 0.0;
            g = 0.0;
            b = 0.0;
            R = color.R / 255.0;
            G = color.G / 255.0;
            B = color.B / 255.0;
        }
        /// 
        /// Each value must be in the span 0 - 255.
        /// 

        /// 
        /// 
        /// 
        public RGB(byte red, byte green, byte blue)
        {
            r = 0.0;
            g = 0.0;
            b = 0.0;
            R = red / 255.0;
            G = green / 255.0;
            B = blue / 255.0;
        }
        /// 
        /// Each value must be in the span 0.0 - 1.0.
        /// 

        /// 
        /// 
        /// 
        public RGB(double red, double green, double blue)
        {
            r = 0.0;
            g = 0.0;
            b = 0.0;
            R = red;
            G = green;
            B = blue;
        }        
        private double r;
        public double R
        {
            get { return r; }
            set
            {
                if (value >= 0.0 && value <= 1.0)
                {
                    r = value;
                }
                else
                {
                    throw new ArgumentOutOfRangeException("R is not in the span [0, 1]");
                }
            }
        }
        private double g;
        public double G
        {
            get { return g; }
            set
            {
                if (value >= 0.0 && value <= 1.0)
                {
                    g = value;
                }
                else
                {
                    throw new ArgumentOutOfRangeException("G is not in the span [0, 1]");
                }
            }
        }
        private double b;
        public double B
        {
            get { return b; }
            set
            {
                if (value >= 0.0 && value <= 1.0)
                {
                    b = value;
                }
                else
                {
                    throw new ArgumentOutOfRangeException("B is not in the span [0, 1]");
                }
            }
        }
    }
}