private static int[] getComplementarySizes(GridRelation gridRelation, int[] colRowSizes, FlowSizeSpec colFlowSpec, FlowSizeSpec rowFlowSpecs, boolean isColSizes) {
		/**
		 * RUBEN isColSizes=false not supported yet!
		 */
		int[] complementarySizes=new int[isColSizes?gridRelation.nRows:gridRelation.nCols];
		
		for(int i=1; i<gridRelation.nRows; i=i+2) {
			for(int j=1; j < gridRelation.nCols; j=j+2) {
				int complementaryIndex=isColSizes?i:j;
				if(gridRelation.groups[j]!=null) {
					Cell cell=gridRelation.groups[j][i];
					
					if(cell!=null) {
						int widthHeightInCell=0;
						if(isColSizes) {
							widthHeightInCell=minHeightFrom(cell, colRowSizes[j], colFlowSpec, rowFlowSpecs);
						} else {
							//how width is this cell?
							widthHeightInCell=minWidthFrom(cell, colRowSizes[i], colFlowSpec, rowFlowSpecs);
						}
						if(widthHeightInCell > complementarySizes[complementaryIndex] && widthHeightInCell>0) {
							//max
							complementarySizes[complementaryIndex] = widthHeightInCell;
						}
					}
				}
			}
			
		}
		return complementarySizes;
	}