![JAR search and dependency download from the Maven repository](/logo.png)
commonMain.ru.casperix.multiplatform.text.impl.TextScheme.kt Maven / Gradle / Ivy
package ru.casperix.multiplatform.text.impl
import ru.casperix.math.axis_aligned.float32.Box2f
import ru.casperix.math.color.Color
import ru.casperix.multiplatform.font.FontReference
import ru.casperix.multiplatform.text.StringMetrics
data class TextScheme(val elements: List) {
val summaryArea = lazy {
if (elements.isEmpty()) {
Box2f.ZERO
} else {
val min = elements.map { it.textArea.min }.reduce { a, b -> a.lower(b) }
val max = elements.map { it.textArea.max }.reduce { a, b -> a.upper(b) }
Box2f(min, max)
}
}
companion object {
val EMPTY = TextScheme(emptyList())
}
}
data class TextSchemeElement(val part: TextPart, val textArea: Box2f, val stringMetrics: StringMetrics, val font: FontReference, val foreground: Color, val background: Color?)
© 2015 - 2025 Weber Informatics LLC | Privacy Policy