public static pos GetDrawingPosition(PhysicalObject o) { switch(M.Rotation){ case 0: return o.p; case 1: return new pos(o.col,COLS-1 - o.row); case 2: return new pos(ROWS-1 - o.row,COLS-1 - o.col); case 3: default: return new pos(ROWS-1 - o.col,o.row); } }
public int DistanceFrom(PhysicalObject o) { return DistanceFrom(o.row,o.col); }
public static int DistanceFrom(this pos p,PhysicalObject dest) { return p.ManhattanDistanceFrom(dest.row,dest.col); }
public int DirectionOf(PhysicalObject obj) { return p.DirectionOf(obj.p); }