/// <summary> /// Applies the specified color scheme and uses the specified raster to define the /// minimum and maximum to use for the scheme. /// </summary> /// <param name="schemeType">ColorSchemeType.</param> /// <param name="min">THe minimum value to use for the scheme.</param> /// <param name="max">THe maximum value to use for the scheme.</param> public void ApplyScheme(ColorSchemeType schemeType, double min, double max) { if (Categories == null) { Categories = new ColorCategoryCollection(this); } else { Categories.Clear(); } IColorCategory eqCat = null, low = null, high = null; if (min == max) { // Create one category eqCat = new ColorCategory(min, max) { Range = { MaxIsInclusive = true, MinIsInclusive = true } }; eqCat.ApplyMinMax(EditorSettings); Categories.Add(eqCat); } else { // Create two categories low = new ColorCategory(min, (min + max) / 2) { Range = { MaxIsInclusive = true } }; high = new ColorCategory((min + max) / 2, max) { Range = { MaxIsInclusive = true } }; low.ApplyMinMax(EditorSettings); high.ApplyMinMax(EditorSettings); Categories.Add(low); Categories.Add(high); } Color lowColor, midColor, highColor; int alpha = Utils.ByteRange(Convert.ToInt32(_opacity * 255F)); switch (schemeType) { case ColorSchemeType.SummerMountains: lowColor = Color.FromArgb(alpha, 10, 100, 10); midColor = Color.FromArgb(alpha, 153, 125, 25); highColor = Color.FromArgb(alpha, 255, 255, 255); break; case ColorSchemeType.FallLeaves: lowColor = Color.FromArgb(alpha, 10, 100, 10); midColor = Color.FromArgb(alpha, 199, 130, 61); highColor = Color.FromArgb(alpha, 241, 220, 133); break; case ColorSchemeType.Desert: lowColor = Color.FromArgb(alpha, 211, 206, 97); midColor = Color.FromArgb(alpha, 139, 120, 112); highColor = Color.FromArgb(alpha, 255, 255, 255); break; case ColorSchemeType.Glaciers: lowColor = Color.FromArgb(alpha, 105, 171, 224); midColor = Color.FromArgb(alpha, 162, 234, 240); highColor = Color.FromArgb(alpha, 255, 255, 255); break; case ColorSchemeType.Meadow: lowColor = Color.FromArgb(alpha, 68, 128, 71); midColor = Color.FromArgb(alpha, 43, 91, 30); highColor = Color.FromArgb(alpha, 167, 220, 168); break; case ColorSchemeType.ValleyFires: lowColor = Color.FromArgb(alpha, 164, 0, 0); midColor = Color.FromArgb(alpha, 255, 128, 64); highColor = Color.FromArgb(alpha, 255, 255, 191); break; case ColorSchemeType.DeadSea: lowColor = Color.FromArgb(alpha, 51, 137, 208); midColor = Color.FromArgb(alpha, 226, 227, 166); highColor = Color.FromArgb(alpha, 151, 146, 117); break; case ColorSchemeType.Highway: lowColor = Color.FromArgb(alpha, 51, 137, 208); midColor = Color.FromArgb(alpha, 214, 207, 124); highColor = Color.FromArgb(alpha, 54, 152, 69); break; default: lowColor = midColor = highColor = Color.Transparent; break; } if (eqCat != null) { eqCat.LowColor = eqCat.HighColor = lowColor; } else { Debug.Assert(low != null, "low may not be null"); Debug.Assert(high != null, "high may not be null"); low.LowColor = lowColor; low.HighColor = midColor; high.LowColor = midColor; high.HighColor = highColor; } OnItemChanged(this); }
private void Configure() { _categories = new ColorCategoryCollection(this); _opacity = 1; EditorSettings = new RasterEditorSettings(); }
/// <summary> /// Applies the specified color scheme and uses the specified raster to define the /// minimum and maximum to use for the scheme. /// </summary> /// <param name="schemeType"></param> /// <param name="min">THe minimum value to use for the scheme</param> /// <param name="max">THe maximum value to use for the scheme</param> public void ApplyScheme(ColorSchemeType schemeType, double min, double max) { if (Categories == null) { Categories = new ColorCategoryCollection(this); } int alpha = ByteRange(Convert.ToInt32(_opacity * 255F)); // this part should be overridden in the type specific version Categories.Clear(); IColorCategory low = new ColorCategory(min, (min + max) / 2); low.Range.MaxIsInclusive = true; IColorCategory high = new ColorCategory((min + max) / 2, max); high.Range.MaxIsInclusive = true; low.ApplyMinMax(EditorSettings); high.ApplyMinMax(EditorSettings); Categories.Add(low); Categories.Add(high); switch (schemeType) { case ColorSchemeType.Summer_Mountains: low.LowColor = Color.FromArgb(alpha, 10, 100, 10); low.HighColor = Color.FromArgb(alpha, 153, 125, 25); high.LowColor = Color.FromArgb(alpha, 153, 125, 25); high.HighColor = Color.FromArgb(alpha, 255, 255, 255); break; case ColorSchemeType.FallLeaves: low.LowColor = Color.FromArgb(alpha, 10, 100, 10); low.HighColor = Color.FromArgb(alpha, 199, 130, 61); high.LowColor = Color.FromArgb(alpha, 199, 130, 61); high.HighColor = Color.FromArgb(alpha, 241, 220, 133); break; case ColorSchemeType.Desert: low.LowColor = Color.FromArgb(alpha, 211, 206, 97); low.HighColor = Color.FromArgb(alpha, 139, 120, 112); high.LowColor = Color.FromArgb(alpha, 139, 120, 112); high.HighColor = Color.FromArgb(alpha, 255, 255, 255); break; case ColorSchemeType.Glaciers: low.LowColor = Color.FromArgb(alpha, 105, 171, 224); low.HighColor = Color.FromArgb(alpha, 162, 234, 240); high.LowColor = Color.FromArgb(alpha, 162, 234, 240); high.HighColor = Color.FromArgb(alpha, 255, 255, 255); break; case ColorSchemeType.Meadow: low.LowColor = Color.FromArgb(alpha, 68, 128, 71); low.HighColor = Color.FromArgb(alpha, 43, 91, 30); high.LowColor = Color.FromArgb(alpha, 43, 91, 30); high.HighColor = Color.FromArgb(alpha, 167, 220, 168); break; case ColorSchemeType.Valley_Fires: low.LowColor = Color.FromArgb(alpha, 164, 0, 0); low.HighColor = Color.FromArgb(alpha, 255, 128, 64); high.LowColor = Color.FromArgb(alpha, 255, 128, 64); high.HighColor = Color.FromArgb(alpha, 255, 255, 191); break; case ColorSchemeType.DeadSea: low.LowColor = Color.FromArgb(alpha, 51, 137, 208); low.HighColor = Color.FromArgb(alpha, 226, 227, 166); high.LowColor = Color.FromArgb(alpha, 226, 227, 166); high.HighColor = Color.FromArgb(alpha, 151, 146, 117); break; case ColorSchemeType.Highway: low.LowColor = Color.FromArgb(alpha, 51, 137, 208); low.HighColor = Color.FromArgb(alpha, 214, 207, 124); high.LowColor = Color.FromArgb(alpha, 214, 207, 124); high.HighColor = Color.FromArgb(alpha, 54, 152, 69); break; default: break; } OnItemChanged(this); }