@@ -0,0 +1,1575 @@
+package renderfarm;%0A%0Aimport java.util.Map;%0A%0Apublic class RayTracerRequest %7B%0A%0A  private static final String MODEL_FILENAME_PARAM = %22f%22;%0A  private static final String SCENE_COLUMNS_PARAM = %22sc%22;%0A  private static final String SCENE_ROWS_PARAM = %22sr%22;%0A  private static final String WINDOW_COLUMNS_PARAM = %22wc%22;%0A  private static final String WINDOW_ROWS_PARAM = %22wr%22;%0A  private static final String COLUMNS_OFFSET_PARAM = %22coff%22;%0A  private static final String ROWS_OFFSET_PARAM = %22roff%22;%0A%0A  private int scols;%0A  private int srows;%0A  private int wcols;%0A  private int wrows;%0A  private int coff;%0A  private int roff;%0A  private String fileName;%0A%0A  public RayTracerRequest(Map%3CString,String%3E params) %7B%0A    this.scols = Integer.parseInt(params.get(SCENE_COLUMNS_PARAM));%0A    this.srows = Integer.parseInt(params.get(SCENE_ROWS_PARAM));%0A    this.wcols = Integer.parseInt(params.get(WINDOW_COLUMNS_PARAM));%0A    this.wrows = Integer.parseInt(params.get(WINDOW_ROWS_PARAM));%0A    this.coff = Integer.parseInt(params.get(COLUMNS_OFFSET_PARAM));%0A    this.roff = - Integer.parseInt(params.get(ROWS_OFFSET_PARAM));%0A    this.fileName = params.get(MODEL_FILENAME_PARAM);%0A  %7D%0A%0A  public int getSceneColumns() %7B%0A    return this.scols;%0A  %7D%0A%0A  public int getSceneRows() %7B%0A    return this.srows;%0A  %7D%0A%0A  public int getWindowColumns() %7B%0A    return this.wcols;%0A  %7D%0A%0A  public int getWindowRows() %7B%0A    return this.wrows;%0A  %7D%0A%0A  public int getColumnsOffset() %7B%0A    return this.coff;%0A  %7D%0A%0A  public int getRowsOffset() %7B%0A    return this.roff;%0A  %7D%0A%0A  public String getFileName() %7B%0A    return this.fileName;%0A  %7D%0A%7D%0A

add a useful wrapper for ray tracer requests