[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

@@ -18,7 +18,7 @@ def openrndrUseSnapshot = false
apply plugin: 'org.jetbrains.dokka' apply plugin: 'org.jetbrains.dokka'
project.ext { project.ext {
openrndrVersion = openrndrUseSnapshot? "0.4.0-SNAPSHOT" : "0.3.47-rc.1" openrndrVersion = openrndrUseSnapshot? "0.4.0-SNAPSHOT" : "0.3.47-rc.2"
kotlinVersion = "1.4.31" kotlinVersion = "1.4.31"
spekVersion = "2.0.15" spekVersion = "2.0.15"
libfreenectVersion = "0.5.7-1.5.4" libfreenectVersion = "0.5.7-1.5.4"

View File

@@ -1,6 +1,8 @@
package org.openrndr.extras.color.spaces package org.openrndr.extras.color.spaces
import org.openrndr.color.* import org.openrndr.color.*
import org.openrndr.math.CastableToVector4
import org.openrndr.math.Vector4
import kotlin.math.pow 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) : data class ColorOKLABa(val l: Double, val a: Double, val b: Double, val alpha: Double = 1.0) :
ConvertibleToColorRGBa, ConvertibleToColorRGBa,
CastableToVector4,
ShadableColor<ColorOKLABa>, ShadableColor<ColorOKLABa>,
OpacifiableColor<ColorOKLABa>, OpacifiableColor<ColorOKLABa>,
AlgebraicColor<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 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 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 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) fun ColorRGBa.toOKLABa() = ColorOKLABa.fromRGBa(this)