package de.tudarmstadt.informatik.hostage.ui2.helper;

import android.graphics.Color;

/**
 * Idea from http://ridiculousfish.com/blog/posts/colors.html
 * Created by Fabio Arnold on 25.02.14.
 */
public class ColorSequenceGenerator {
	private static final int BIT_COUNT = 30; // sadly there is no unsigned type in java
	public static int getColorForIndex(int index) {
		int reverseIndex = 0;
		for (int i = 0; i  < BIT_COUNT; i++) {
			reverseIndex = (reverseIndex << 1) | (index & 1);
			index >>= 1;
		}
		float hue = ((float)reverseIndex / (float)(1 << BIT_COUNT) + 0.6f) % 1.0f;

		float[] hsv = new float[3];
		hsv[0] = 360.0f * hue;
		hsv[1] = 0.7f; // not fully saturated
		hsv[2] = 1.0f;

		return Color.HSVToColor(hsv);
	}
}
