public void set(Point2f pixel, Spectrum spectrum) { // update maximum if (!Helper.CLAMPING) { if (spectrum.r > max.r) max.r = spectrum.r; if (spectrum.g > max.g) max.g = spectrum.g; if (spectrum.b > max.b) max.b = spectrum.b; } // no values smaller than 0 if (spectrum.r < 0) spectrum.r = 0; if (spectrum.g < 0) spectrum.g = 0; if (spectrum.b < 0) spectrum.b = 0; if (Helper.CLAMPING) { if (spectrum.r > 1) spectrum.r = 1; if (spectrum.g > 1) spectrum.g = 1; if (spectrum.b > 1) spectrum.b = 1; } this.image[(int) pixel.getX() - 1][(int) pixel.getY() - 1] = spectrum; if (Helper.SHOW_PROGRESS) { int i = (int) pixel.getX() - 1; int j = (int) pixel.getY() - 1; if (Helper.CLAMPING) this.img.setRGB( i, height - 1 - j, ((int) (255.f * this.image[i][j].r) << 16) | ((int) (255.f * this.image[i][j].g) << 8) | ((int) (255.f * this.image[i][j].b))); else this.img.setRGB( i, height - 1 - j, ((int) (255.f * this.image[i][j].r / max.r) << 16) | ((int) (255.f * this.image[i][j].g / max.g) << 8) | ((int) (255.f * this.image[i][j].b / max.b))); } }