コード例 #1
0
ファイル: CachedColorRamp.cs プロジェクト: PCLC7Z2/cloudae
        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];
        }
コード例 #2
0
        /// <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);
        }