Add field 2d viewer

This commit is contained in:
Evgeny Redikultsev
2025-12-27 21:59:20 +05:00
parent d81b72d420
commit 3b95fab0b2
28 changed files with 726 additions and 29 deletions

View File

@@ -2,12 +2,49 @@
using System.Collections.Generic;
using System.Windows.Media;
using System.Text;
using System.Windows;
namespace FieldVisualizer.Entities.ColorMaps
{
public class ColorMap : IColorMap
{
private LinearGradientBrush _gradientBrush;
public string Name { get; set; }
public List<Color> Colors { get; set; }
public LinearGradientBrush GradientBrush
{
get
{
if (_gradientBrush == null)
{
_gradientBrush = CreateGradientBrush();
_gradientBrush.Freeze(); // very important for performance
}
return _gradientBrush;
}
}
protected virtual LinearGradientBrush CreateGradientBrush()
{
var brush = new LinearGradientBrush
{
StartPoint = new Point(0, 0),
EndPoint = new Point(1, 0) // horizontal
};
int count = Colors.Count;
for (int i = 0; i < count; i++)
{
brush.GradientStops.Add(
new GradientStop(
Colors[i],
(double)i / (count - 1)));
}
return brush;
}
}
}

View File

@@ -32,7 +32,7 @@ namespace FieldVisualizer.Entities.ColorMaps.Factories
{
ColorMap colorMap = new()
{
Name = "LiraSpectrumColorMap"
Name = "Lira Style Spectrum"
};
List<Color> colors = new();
byte Alpha = 0xff;
@@ -55,7 +55,7 @@ namespace FieldVisualizer.Entities.ColorMaps.Factories
{
ColorMap colorMap = new()
{
Name = "FullSpectrumColorMap"
Name = "Full Spectrum"
};
List<Color> colors = new List<Color>();
byte Alpha = 0xff;
@@ -78,7 +78,7 @@ namespace FieldVisualizer.Entities.ColorMaps.Factories
private static IColorMap GetRedToWhite()
{
ColorMap colorMap = new ColorMap();
colorMap.Name = "FullSpectrumColorMap";
colorMap.Name = "Red To White Spectrum";
List<Color> colors = new List<Color>();
byte Alpha = 0xff;
colors.AddRange(new Color[]{
@@ -91,7 +91,7 @@ namespace FieldVisualizer.Entities.ColorMaps.Factories
private static IColorMap GetRedToBlue()
{
ColorMap colorMap = new ColorMap();
colorMap.Name = "FullSpectrumColorMap";
colorMap.Name = "Red To Blue Spectrum";
List<Color> colors = new List<Color>();
byte Alpha = 0xff;
colors.AddRange(new Color[]{
@@ -104,7 +104,7 @@ namespace FieldVisualizer.Entities.ColorMaps.Factories
private static IColorMap GetBlueToWhite()
{
ColorMap colorMap = new ColorMap();
colorMap.Name = "FullSpectrumColorMap";
colorMap.Name = "Blue To White Spectrum";
List<Color> colors = new List<Color>();
byte Alpha = 0xff;
colors.AddRange(new Color[]{

View File

@@ -9,5 +9,6 @@ namespace FieldVisualizer.Entities.ColorMaps
{
string Name { get;}
List<Color> Colors { get; }
LinearGradientBrush GradientBrush { get; }
}
}