#region License // Copyright (c) 2010, Jasper Yeh. // All rights reserved. // // Redistribution and use in source and binary forms, with or without modification, // are permitted provided that the following conditions are met: // // * Redistributions of source code must retain the above copyright notice, // this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above copyright notice, // this list of conditions and the following disclaimer in the documentation // and/or other materials provided with the distribution. // * Neither the name of ClearCanvas Inc. nor the names of its contributors // may be used to endorse or promote products derived from this software without // specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, // THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR // PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, // OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE // GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, // STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN // ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY // OF SUCH DAMAGE. #endregion using System.Collections.Generic; using System.Drawing; namespace Nullstack.ClearCanvasEx.ViewerEx.ColorMaps { public class ColorScheme { public static readonly ColorScheme HotMetalRed = new ColorScheme("Nullstack::HotMetalRed", SR.szHotMetalRed, Color.FromArgb(0x00, 0x00, 0x00), Color.FromArgb(0x55, 0x00, 0x00), Color.FromArgb(0x84, 0x00, 0x00), Color.FromArgb(0xAD, 0x00, 0x00), Color.FromArgb(0xD6, 0x00, 0x00), Color.FromArgb(0xFF, 0x00, 0x00), Color.FromArgb(0xFF, 0x29, 0x00), Color.FromArgb(0xFF, 0x52, 0x00), Color.FromArgb(0xFF, 0x80, 0x00), Color.FromArgb(0xFF, 0xA8, 0x00), Color.FromArgb(0xFF, 0xD4, 0x00), Color.FromArgb(0xFF, 0xFF, 0x00), Color.FromArgb(0xFF, 0xFF, 0x42), Color.FromArgb(0xFF, 0xFF, 0x7F), Color.FromArgb(0xFF, 0xFF, 0xBD), Color.FromArgb(0xFF, 0xFF, 0xFF)); public static readonly ColorScheme Bone = new ColorScheme("Nullstack::Bone", SR.szBone, Color.FromArgb(0x00, 0x00, 0x00), Color.FromArgb(0x10, 0x10, 0x18), Color.FromArgb(0x1D, 0x1D, 0x2E), Color.FromArgb(0x29, 0x29, 0x42), Color.FromArgb(0x39, 0x39, 0x56), Color.FromArgb(0x4A, 0x4A, 0x6B), Color.FromArgb(0x5A, 0x5E, 0x7B), Color.FromArgb(0x6A, 0x72, 0x8B), Color.FromArgb(0x74, 0x86, 0x95), Color.FromArgb(0x84, 0x9C, 0xA5), Color.FromArgb(0x94, 0xAD, 0xB5), Color.FromArgb(0xA5, 0xC3, 0xC6), Color.FromArgb(0xBA, 0xD1, 0xD1), Color.FromArgb(0xD0, 0xE1, 0xE1), Color.FromArgb(0xE7, 0xEF, 0xEF), Color.FromArgb(0xFF, 0xFF, 0xFF)); public static readonly ColorScheme Copper = new ColorScheme("Nullstack::Copper", SR.szCopper, Color.FromArgb(0x00, 0x00, 0x00), Color.FromArgb(0x14, 0x08, 0x09), Color.FromArgb(0x29, 0x18, 0x10), Color.FromArgb(0x42, 0x29, 0x18), Color.FromArgb(0x52, 0x31, 0x21), Color.FromArgb(0x6B, 0x42, 0x29), Color.FromArgb(0x84, 0x52, 0x31), Color.FromArgb(0x94, 0x5A, 0x39), Color.FromArgb(0xAD, 0x6B, 0x42), Color.FromArgb(0xBD, 0x78, 0x4A), Color.FromArgb(0xD4, 0x85, 0x82), Color.FromArgb(0xEB, 0x90, 0x5A), Color.FromArgb(0xFF, 0x9D, 0x64), Color.FromArgb(0xFF, 0xAD, 0x6B), Color.FromArgb(0xFF, 0xB8, 0x73), Color.FromArgb(0xFF, 0xC6, 0x7B)); public static readonly ColorScheme FluidJet = new ColorScheme("Nullstack::FluidJet", SR.szFluidJet, Color.FromArgb(0x00, 0x00, 0xBD), Color.FromArgb(0x00, 0x00, 0xFF), Color.FromArgb(0x00, 0x43, 0xFF), Color.FromArgb(0x00, 0x84, 0xFF), Color.FromArgb(0x00, 0xC1, 0xFF), Color.FromArgb(0x00, 0xFF, 0xFF), Color.FromArgb(0x44, 0xFF, 0xBB), Color.FromArgb(0x84, 0xFF, 0x84), Color.FromArgb(0xBD, 0xFF, 0x42), Color.FromArgb(0xFF, 0xFF, 0x00), Color.FromArgb(0xFF, 0xBD, 0x00), Color.FromArgb(0xFF, 0x84, 0x00), Color.FromArgb(0xFF, 0x40, 0x00), Color.FromArgb(0xFF, 0x00, 0x00), Color.FromArgb(0xBD, 0x00, 0x00), Color.FromArgb(0x84, 0x00, 0x00)); public static readonly ColorScheme Spectrum = new ColorScheme("Nullstack::Spectrum", SR.szSpectrum, Color.FromArgb(0xFF, 0x00, 0x00), Color.FromArgb(0xFF, 0x63, 0x00), Color.FromArgb(0xFF, 0xC0, 0x00), Color.FromArgb(0xDE, 0xFF, 0x00), Color.FromArgb(0x7E, 0xFF, 0x00), Color.FromArgb(0x21, 0xFF, 0x00), Color.FromArgb(0x00, 0xFF, 0x42), Color.FromArgb(0x00, 0xFF, 0xA0), Color.FromArgb(0x00, 0xFF, 0xFF), Color.FromArgb(0x00, 0x9C, 0xFF), Color.FromArgb(0x00, 0x42, 0xFF), Color.FromArgb(0x21, 0x00, 0xFF), Color.FromArgb(0x7F, 0x00, 0xFF), Color.FromArgb(0xDE, 0x00, 0xFF)); private readonly Color[] _colors; private readonly string _name; private readonly string _description; public ColorScheme(string name, string description, Color color1, Color color2, params Color[] colors) { var list = new List(2 + (colors != null ? colors.Length : 0)); list.Add(color1); list.Add(color2); if (colors != null) list.AddRange(colors); _colors = list.ToArray(); _name = name; _description = description; } public Color this[int index] { get { return _colors[index]; } } public int Count { get { return _colors.Length; } } public string Name { get { return _name; } } public string Description { get { return _description; } } } }