mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-03-07 12:21:52 +09:00
colourutil update
This commit is contained in:
@@ -40,7 +40,7 @@ object CIELabUtil {
|
|||||||
return lab.toColor()
|
return lab.toColor()
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Sweet Lab linear gradient */
|
/** Tend to have more natural (or less saturated) colour */
|
||||||
fun getGradient(scale: Float, fromCol: Color, toCol: Color): Color {
|
fun getGradient(scale: Float, fromCol: Color, toCol: Color): Color {
|
||||||
val from = fromCol.toLab()
|
val from = fromCol.toLab()
|
||||||
val to = toCol.toLab()
|
val to = toCol.toLab()
|
||||||
@@ -92,9 +92,9 @@ fun RGB.toLab() = this.toXYZ().toLab()
|
|||||||
fun CIELab.toColor() = this.toXYZ().toColor()
|
fun CIELab.toColor() = this.toXYZ().toColor()
|
||||||
fun CIELab.toRGB() = this.toXYZ().toRGB()
|
fun CIELab.toRGB() = this.toXYZ().toRGB()
|
||||||
|
|
||||||
internal val D65 = CIEXYZ(0.95047f, 1f, 1.08883f)
|
internal val D65 = CIEXYZ(0.95047f, 1f, 1.08883f) // D50 in this case will make the colour excessively blue, dunno why tho
|
||||||
val epsilon = 216f/24389f
|
const val epsilon = 216f/24389f
|
||||||
val kappa = 24389f/27f
|
const val kappa = 24389f/27f
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Range:
|
* Range:
|
||||||
|
|||||||
@@ -37,6 +37,18 @@ object CIELuvUtil {
|
|||||||
return luv.toColor()
|
return luv.toColor()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Tend to have more vivid (or saturated) colour */
|
||||||
|
fun getGradient(scale: Float, fromCol: Color, toCol: Color): Color {
|
||||||
|
val from = fromCol.toLuv()
|
||||||
|
val to = toCol.toLuv()
|
||||||
|
val newL = FastMath.interpolateLinear(scale, from.L, to.L)
|
||||||
|
val newU = FastMath.interpolateLinear(scale, from.u, to.u)
|
||||||
|
val newV = FastMath.interpolateLinear(scale, from.v, to.v)
|
||||||
|
val newAlpha = FastMath.interpolateLinear(scale, from.alpha, to.alpha)
|
||||||
|
|
||||||
|
return CIELab(newL, newU, newV, newAlpha).toColor()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Alpha value will be overwritten to 1.0
|
* Alpha value will be overwritten to 1.0
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ object CIEXYZUtil {
|
|||||||
return xyz.toColor()
|
return xyz.toColor()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Deprecated("Use one in CIELAB or CIELUV; CIEXYZ is not perceptually uniform")
|
/*@Deprecated("Use one in CIELAB or CIELUV; CIEXYZ is not perceptually uniform")
|
||||||
fun getGradient(scale: Float, fromCol: Color, toCol: Color): Color {
|
fun getGradient(scale: Float, fromCol: Color, toCol: Color): Color {
|
||||||
val from = fromCol.toXYZ()
|
val from = fromCol.toXYZ()
|
||||||
val to = toCol.toXYZ()
|
val to = toCol.toXYZ()
|
||||||
@@ -33,7 +33,7 @@ object CIEXYZUtil {
|
|||||||
val newAlpha = FastMath.interpolateLinear(scale, from.alpha, to.alpha)
|
val newAlpha = FastMath.interpolateLinear(scale, from.alpha, to.alpha)
|
||||||
|
|
||||||
return CIEXYZ(newX, newY, newZ, newAlpha).toColor()
|
return CIEXYZ(newX, newY, newZ, newAlpha).toColor()
|
||||||
}
|
}*/
|
||||||
|
|
||||||
fun Color.toXYZ(): CIEXYZ = RGB(this).toXYZ()
|
fun Color.toXYZ(): CIEXYZ = RGB(this).toXYZ()
|
||||||
|
|
||||||
|
|||||||
@@ -125,8 +125,6 @@ class ConsoleWindow : UICanvas() {
|
|||||||
val acceptedChars = "1234567890-=qwfpgjluy;[]\\arstdhneio'zxcvbkm,./!@#$%^&*()_+QWFPGJLUY:{}|ARSTDHNEIO\"ZXCVBKM<>? ".toSet()
|
val acceptedChars = "1234567890-=qwfpgjluy;[]\\arstdhneio'zxcvbkm,./!@#$%^&*()_+QWFPGJLUY:{}|ARSTDHNEIO\"ZXCVBKM<>? ".toSet()
|
||||||
|
|
||||||
override fun keyTyped(character: Char): Boolean {
|
override fun keyTyped(character: Char): Boolean {
|
||||||
println("[ConsoleWindow] Key typed event; isVisible = $isVisible")
|
|
||||||
|
|
||||||
if (character in acceptedChars) {
|
if (character in acceptedChars) {
|
||||||
commandInputPool!!.append(character)
|
commandInputPool!!.append(character)
|
||||||
inputCursorPos += 1
|
inputCursorPos += 1
|
||||||
|
|||||||
@@ -168,7 +168,7 @@ object WeatherMixer {
|
|||||||
// interpolate R, G, B and A
|
// interpolate R, G, B and A
|
||||||
val scale = (timeInSec % dataPointDistance).toFloat() / dataPointDistance // [0.0, 1.0]
|
val scale = (timeInSec % dataPointDistance).toFloat() / dataPointDistance // [0.0, 1.0]
|
||||||
|
|
||||||
val newCol = CIELabUtil.getGradient(scale, colourThis, colourNext)
|
val newCol = CIELuvUtil.getGradient(scale, colourThis, colourNext)
|
||||||
|
|
||||||
/* // very nice monitor code
|
/* // very nice monitor code
|
||||||
// 65 -> 66 | 300 | 19623 | RGB8(255, 0, 255) -[41%]-> RGB8(193, 97, 23) | * `230`40`160`
|
// 65 -> 66 | 300 | 19623 | RGB8(255, 0, 255) -[41%]-> RGB8(193, 97, 23) | * `230`40`160`
|
||||||
|
|||||||
BIN
work_files/esdf_masterrace.psd
LFS
Normal file
BIN
work_files/esdf_masterrace.psd
LFS
Normal file
Binary file not shown.
Reference in New Issue
Block a user