com.trgk.touchwave.utils.HSVRGB.java Source code

Java tutorial

Introduction

Here is the source code for com.trgk.touchwave.utils.HSVRGB.java

Source

/*
 * Copyright 2015 Hyun Woo Park
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or (at
 * your option) any later version.
 *
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 * As a special exception, the copyright holders of this library give you
 * permission to link this library with independent modules to produce an
 * executable, regardless of the license terms of these independent
 * modules, and to copy and distribute the resulting executable under
 * terms of your choice, provided that you also meet, for each linked
 * independent module, the terms and conditions of the license of that
 * module. An independent module is a module which is not derived from or
 * based on this library. If you modify this library, you may extend this
 * exception to your version of the library, but you are not obliged to
 * do so. If you do not wish to do so, delete this exception statement
 * from your version.
 */

package com.trgk.touchwave.utils;

import com.badlogic.gdx.graphics.Color;

public class HSVRGB {
    public static Color hsvToRgb(float hue, float saturation, float value, float alpha) {
        int h = (int) (hue * 6);
        float f = hue * 6 - h;
        float p = value * (1 - saturation);
        float q = value * (1 - f * saturation);
        float t = value * (1 - (1 - f) * saturation);

        switch (h) {
        case 0:
            return new Color(value, t, p, alpha);
        case 1:
            return new Color(q, value, p, alpha);
        case 2:
            return new Color(p, value, t, alpha);
        case 3:
            return new Color(p, q, value, alpha);
        case 4:
            return new Color(t, p, value, alpha);
        case 5:
            return new Color(value, p, q, alpha);
        default:
            throw new RuntimeException("Something went wrong when converting from HSV to RGB. Input was " + hue
                    + ", " + saturation + ", " + value);
        }
    }
}