All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jetbrains.kotlinx.ggdsl.letsplot.scales.LetsPlotScaleParameters.kt Maven / Gradle / Ivy

/*
* Copyright 2020-2022 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
*/

package org.jetbrains.kotlinx.ggdsl.letsplot.scales

import org.jetbrains.kotlinx.ggdsl.ir.bindings.BaseScaledNonPositionalMapping
import org.jetbrains.kotlinx.ggdsl.ir.bindings.BaseScaledPositionalMapping
import org.jetbrains.kotlinx.ggdsl.ir.scale.FreePositionalScale
import org.jetbrains.kotlinx.ggdsl.ir.scale.ScaleParameters
import org.jetbrains.kotlinx.ggdsl.letsplot.scales.guide.Axis
import org.jetbrains.kotlinx.ggdsl.letsplot.scales.guide.Legend

public interface LetsPlotScaleParameters : ScaleParameters

internal data class OrderBy(
    val name: String?,
    val order: Int
)

public data class PositionalParameters(
    val axis: Axis
) : LetsPlotScaleParameters {
    internal var orderBy: OrderBy? = null
}

public data class NonPositionalParameters
(val legend: Legend) : LetsPlotScaleParameters

public fun  BaseScaledPositionalMapping.with(
    block: PositionalParameters.() -> Unit
) {
    scaleParameters = PositionalParameters(Axis()).apply(block)
}

public fun  FreePositionalScale.with(
    block: PositionalParameters.() -> Unit
) {
    scaleParameters = PositionalParameters(Axis()).apply(block)
}

public fun  BaseScaledNonPositionalMapping.with(
    block: NonPositionalParameters.() -> Unit
) {
    scaleParameters = NonPositionalParameters(Legend()).apply(block)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy