public static ScanPoint operator +(ScanPoint p1, ScanPoint p2)
{
if (p1.OnShots.Count == p2.OnShots.Count
&& p1.OffShots.Count == p2.OffShots.Count
&& p1.Analogs.Count == p2.Analogs.Count)
{
ScanPoint temp = new ScanPoint();
temp.ScanParameter = p1.ScanParameter;
for (int i = 0 ; i < p1.OnShots.Count ; i++)
temp.OnShots.Add((Shot)p1.OnShots[i] + (Shot)p2.OnShots[i]);
for (int i = 0 ; i < p1.OffShots.Count ; i++)
temp.OffShots.Add((Shot)p1.OffShots[i] + (Shot)p2.OffShots[i]);
for (int i = 0 ; i < p1.Analogs.Count ; i++)
temp.Analogs.Add((double)p1.Analogs[i] + (double)p2.Analogs[i]);
return temp;
}
else
{
if (p1.OnShots.Count == 0) return p2;
if (p2.OnShots.Count == 0) return p1;
return null;
}
}