public CachedColorMap(ColorRamp ramp, StretchBase stretch, int desiredDestinationBins) { if (stretch == null) { throw new ArgumentNullException("stretch"); } m_ramp = ramp; m_map = new IntervalMap(stretch, desiredDestinationBins, false); // allow overflow m_bins = new int[m_map.Count + 1]; foreach (var interval in m_map.GetIntervals()) { m_bins[interval.Index] = m_ramp.GetColor(interval.StretchRatio).ToArgb(); } // overflow m_bins[m_bins.Length - 1] = m_bins[m_bins.Length - 2]; }
/// <summary> /// Loads the map. /// </summary> /// <param name="type">The type.</param> /// <returns></returns> public static ColorRamp LoadMap(Type type) { ColorRamp map = null; if (c_maps.ContainsKey(type)) { map = c_maps[type]; } else if (typeof(ColorRamp).IsAssignableFrom(type)) { try { map = Activator.CreateInstance(type) as ColorRamp; } catch { } if (map != null) { c_maps.Add(type, map); } } return(map); }