[orx-color] Make ColorOKLab CastableToVector4

This commit is contained in:
Edwin Jakobs
2021-03-22 10:47:41 +01:00
parent 9acd221f49
commit bb470fc706
2 changed files with 6 additions and 1 deletions

View File

@@ -1,6 +1,8 @@
package org.openrndr.extras.color.spaces
import org.openrndr.color.*
import org.openrndr.math.CastableToVector4
import org.openrndr.math.Vector4
import kotlin.math.pow
/**
@@ -8,6 +10,7 @@ import kotlin.math.pow
*/
data class ColorOKLABa(val l: Double, val a: Double, val b: Double, val alpha: Double = 1.0) :
ConvertibleToColorRGBa,
CastableToVector4,
ShadableColor<ColorOKLABa>,
OpacifiableColor<ColorOKLABa>,
AlgebraicColor<ColorOKLABa> {
@@ -57,6 +60,8 @@ data class ColorOKLABa(val l: Double, val a: Double, val b: Double, val alpha: D
override fun minus(right: ColorOKLABa) = ColorOKLABa(l - right.l, a - right.a, b - right.b, alpha - right.alpha)
override fun plus(right: ColorOKLABa) = ColorOKLABa(l + right.l, a + right.a, b + right.b, alpha + right.alpha)
override fun times(scale: Double) = ColorOKLABa(l * scale, a * scale, b * scale, alpha * scale)
override fun toVector4() = Vector4(l, a, b, alpha)
}
fun ColorRGBa.toOKLABa() = ColorOKLABa.fromRGBa(this)