public static CellIndex Down(this CellIndex index, CellSize size)
 {
     return(new CellIndex(index.Row + size.Height, index.Col));
 }
 public static CellIndex Right(this CellIndex index, CellSize size)
 {
     return(new CellIndex(index.Row, index.Col + size.Width));
 }
 public static CellSize AddWidthMaxHeight(this CellSize a, CellSize b)
 {
     return(new CellSize(
                Math.Max(a.Height, b.Height),
                a.Width + b.Width));
 }
 public static CellSize AddWidth(this CellSize a, CellSize b)
 {
     return(new CellSize(a.Height, a.Width + b.Width));
 }
 public static CellSize AddHeightMaxWidth(this CellSize a, CellSize b)
 {
     return(new CellSize(
                a.Height + b.Height,
                Math.Max(a.Width, b.Width)));
 }
 public static CellSize Min(this CellSize a, CellSize b)
 {
     return(new CellSize(
                Math.Min(a.Height, b.Height),
                Math.Min(a.Width, b.Width)));
 }
 public CellRange(CellIndex topLeft, CellSize size)
 {
     TopLeft = topLeft;
     Size    = size;
 }