sclass ImageCategorizer { new L images; float allowedDistance = 0.1f; // allowed difference within category *() {} *(float *allowedDistance) {} int locateImage(RGBImage img) { for i over images: if (rgbDistance(images.get(i), img, allowedDistance) <= allowedDistance) ret i; ret -1; } int addImage(RGBImage img) { int i = locateImage(img); if (i >= 0) ret i; images.add(img); ret l(images)-1; } int numCategories() { ret l(images); } void clear() { images.clear(); } }