public override void AddPoints(MatrixValue M)
{
var p = data;
var min = double.MaxValue;
var max = double.MinValue;
for (var i = 1; i <= M.DimensionX; i++)
{
for (var j = 1; j <= M.DimensionY; j++)
{
var value = M[j, i].Abs();
p.Add(new HeatPoint
{
Row = j,
Column = i,
Magnitude = value
});
if (value > max)
max = value;
else if (value < min)
min = value;
}
}
var gap = max - min;
for (var i = 0; i != p.Count; i++)
p[i] = new HeatPoint { Column = p[i].Column, Row = p[i].Row, Magnitude = (p[i].Magnitude - min) / gap };
Minimum = min;
Maximum = max;
MinX = 1;
MaxX = M.DimensionX;
MinY = 1;
MaxY = M.DimensionY;
}