mirror of
https://github.com/JFormDesigner/FlatLaf.git
synced 2026-02-13 23:37:13 -06:00
ColorFunctions: moved methods applyFunctions() and clamp() down to nested classes
This commit is contained in:
@@ -25,39 +25,6 @@ import java.awt.Color;
|
|||||||
*/
|
*/
|
||||||
public class ColorFunctions
|
public class ColorFunctions
|
||||||
{
|
{
|
||||||
public static Color applyFunctions( Color color, ColorFunction... functions ) {
|
|
||||||
// if having only a single function of type Mix, then avoid four unnecessary conversions:
|
|
||||||
// 1. RGB to HSL in this method
|
|
||||||
// 2. HSL to RGB in Mix.apply()
|
|
||||||
// mix
|
|
||||||
// 3. RGB to HSL in Mix.apply()
|
|
||||||
// 4. HSL to RGB in this method
|
|
||||||
if( functions.length == 1 && functions[0] instanceof Mix ) {
|
|
||||||
Mix mixFunction = (Mix) functions[0];
|
|
||||||
return mix( color, mixFunction.color2, mixFunction.weight / 100 );
|
|
||||||
}
|
|
||||||
|
|
||||||
// convert RGB to HSL
|
|
||||||
float[] hsl = HSLColor.fromRGB( color );
|
|
||||||
float alpha = color.getAlpha() / 255f;
|
|
||||||
float[] hsla = { hsl[0], hsl[1], hsl[2], alpha * 100 };
|
|
||||||
|
|
||||||
// apply color functions
|
|
||||||
for( ColorFunction function : functions )
|
|
||||||
function.apply( hsla );
|
|
||||||
|
|
||||||
// convert HSL to RGB
|
|
||||||
return HSLColor.toRGB( hsla[0], hsla[1], hsla[2], hsla[3] / 100 );
|
|
||||||
}
|
|
||||||
|
|
||||||
public static float clamp( float value ) {
|
|
||||||
return (value < 0)
|
|
||||||
? 0
|
|
||||||
: ((value > 100)
|
|
||||||
? 100
|
|
||||||
: value);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a color that is a mixture of two colors.
|
* Returns a color that is a mixture of two colors.
|
||||||
* <p>
|
* <p>
|
||||||
@@ -149,6 +116,39 @@ public class ColorFunctions
|
|||||||
: (float) Math.pow( (value + 0.055) / 1.055, 2.4 );
|
: (float) Math.pow( (value + 0.055) / 1.055, 2.4 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Color applyFunctions( Color color, ColorFunction... functions ) {
|
||||||
|
// if having only a single function of type Mix, then avoid four unnecessary conversions:
|
||||||
|
// 1. RGB to HSL in this method
|
||||||
|
// 2. HSL to RGB in Mix.apply()
|
||||||
|
// mix
|
||||||
|
// 3. RGB to HSL in Mix.apply()
|
||||||
|
// 4. HSL to RGB in this method
|
||||||
|
if( functions.length == 1 && functions[0] instanceof Mix ) {
|
||||||
|
Mix mixFunction = (Mix) functions[0];
|
||||||
|
return mix( color, mixFunction.color2, mixFunction.weight / 100 );
|
||||||
|
}
|
||||||
|
|
||||||
|
// convert RGB to HSL
|
||||||
|
float[] hsl = HSLColor.fromRGB( color );
|
||||||
|
float alpha = color.getAlpha() / 255f;
|
||||||
|
float[] hsla = { hsl[0], hsl[1], hsl[2], alpha * 100 };
|
||||||
|
|
||||||
|
// apply color functions
|
||||||
|
for( ColorFunction function : functions )
|
||||||
|
function.apply( hsla );
|
||||||
|
|
||||||
|
// convert HSL to RGB
|
||||||
|
return HSLColor.toRGB( hsla[0], hsla[1], hsla[2], hsla[3] / 100 );
|
||||||
|
}
|
||||||
|
|
||||||
|
public static float clamp( float value ) {
|
||||||
|
return (value < 0)
|
||||||
|
? 0
|
||||||
|
: ((value > 100)
|
||||||
|
? 100
|
||||||
|
: value);
|
||||||
|
}
|
||||||
|
|
||||||
//---- interface ColorFunction --------------------------------------------
|
//---- interface ColorFunction --------------------------------------------
|
||||||
|
|
||||||
public interface ColorFunction {
|
public interface ColorFunction {
|
||||||
|
|||||||
Reference in New Issue
Block a user