Package-level declarations

Types

Link copied to clipboard
class BooleanFCurve(value: Pair<String, FCurve?>, val default: Boolean = true) : CompoundFCurve<Boolean>
Link copied to clipboard
abstract class CompoundFCurve<T>(val compounds: List<FCurve?>, val compoundNames: List<String>)
Link copied to clipboard
class DoubleFCurve(value: Pair<String, FCurve?>, val default: Double = 0.0) : CompoundFCurve<Double>
Link copied to clipboard
@Serializable
data class FCurve(val segments: List<Segment2D>)

Represents a functional curve composed of multiple 2D segments. It provides utilities to manipulate and query the curve, such as reversing its direction, changing its speed, sampling values, and visualizing it as contours.

Link copied to clipboard

Fcurve builder

Link copied to clipboard
class IntFCurve(value: Pair<String, FCurve?>, val default: Int = 0) : CompoundFCurve<Int>
Link copied to clipboard
open class MultiFCurve(val compounds: Map<String, FCurve?>)

Represents a collection of named FCurve objects, enabling the manipulation and querying of multiple functional curves as a unified entity. Each FCurve in the collection is identified by a unique string key, allowing structured access and control.

Link copied to clipboard
class PolarFCurve(angleInDegrees: Pair<String, FCurve?>, radius: Pair<String, FCurve?>, val default: Polar = Polar(0.0, 1.0)) : CompoundFCurve<Polar>
Link copied to clipboard
class RgbaFCurve(r: Pair<String, FCurve?>, g: Pair<String, FCurve?>, b: Pair<String, FCurve?>, a: Pair<String, FCurve?>, val default: ColorRGBa = ColorRGBa.WHITE) : CompoundFCurve<ColorRGBa>
Link copied to clipboard
class RgbFCurve(r: Pair<String, FCurve?>, g: Pair<String, FCurve?>, b: Pair<String, FCurve?>, val default: ColorRGBa = ColorRGBa.WHITE) : CompoundFCurve<ColorRGBa>
Link copied to clipboard
class SphericalFCurve(thetaInDegrees: Pair<String, FCurve?>, phiInDegrees: Pair<String, FCurve?>, radius: Pair<String, FCurve?>, val default: Spherical = Spherical(0.0, 1.0, 1.0)) : CompoundFCurve<Spherical>
Link copied to clipboard
class Vector2FCurve(x: Pair<String, FCurve?>, y: Pair<String, FCurve?>, val default: Vector2 = Vector2.ZERO) : CompoundFCurve<Vector2>
Link copied to clipboard
class Vector3FCurve(x: Pair<String, FCurve?>, y: Pair<String, FCurve?>, z: Pair<String, FCurve?>, val default: Vector3 = Vector3.ZERO) : CompoundFCurve<Vector3>
Link copied to clipboard
class Vector4FCurve(x: Pair<String, FCurve?>, y: Pair<String, FCurve?>, z: Pair<String, FCurve?>, w: Pair<String, FCurve?>, val default: Vector4 = Vector4.ZERO) : CompoundFCurve<Vector4>

Functions

Link copied to clipboard
fun MultiFCurve.boolean(value: String, default: Boolean = true): BooleanFCurve
Link copied to clipboard
fun MultiFCurve.double(value: String, default: Double = 0.0): DoubleFCurve
Link copied to clipboard
fun efcurve(ef: String, constants: Map<String, Double> = emptyMap(), functions: FunctionExtensions = FunctionExtensions.EMPTY): String

Processes and expands a formatted string based on specific expressions and rules such as comments, lists, and repetitions. The method allows for recursive evaluation of expressions within the string.

Link copied to clipboard
fun fcurve(builder: FCurveBuilder.() -> Unit): FCurve

build an Fcurve

Parses the provided string to create an FCurve. This function attempts to either interpret the input as a constant value or evaluate it as a series of functional curve commands.

Link copied to clipboard

Splits an input string containing fcurve path commands and numbers into individual components, preserving the order of commands and associated numbers. The splitting considers the relations between commands and numbers, ensuring proper separation.

Link copied to clipboard
fun MultiFCurve.int(value: String, default: Int = 0): IntFCurve
Link copied to clipboard
fun main()
Link copied to clipboard
fun mfcurve(mf: String, constants: Map<String, Double> = emptyMap(), functions: FunctionExtensions = FunctionExtensions.EMPTY): String

expand mfcurve to fcurve

Link copied to clipboard
fun modifyFCurve(fcurve: String, modifiers: String, constants: Map<String, Double> = emptyMap(), functions: FunctionExtensions = FunctionExtensions.EMPTY): String

Modify an fcurve string using a modifiers string

Link copied to clipboard
fun MultiFCurve.polar(angleInDegrees: String, radius: String, default: Polar = Polar(0.0, 1.0)): PolarFCurve
Link copied to clipboard
fun MultiFCurve.rgb(r: String, g: String, b: String, default: ColorRGBa = ColorRGBa.WHITE): RgbFCurve
Link copied to clipboard
fun MultiFCurve.rgba(r: String, g: String, b: String, a: String, default: ColorRGBa = ColorRGBa.WHITE): RgbaFCurve
Link copied to clipboard
fun Segment2D.scaleTangents(axis: Vector2 = Vector2.UNIT_X): Segment2D

Scale tangents such that tangent lines do not overlap

Link copied to clipboard
fun MultiFCurve.spherical(thetaInDegrees: String, phiInDegrees: String, radius: String, default: Spherical = Spherical(0.0, 0.0, 1.0)): SphericalFCurve
Link copied to clipboard
fun MultiFCurve.vector2(x: String, y: String, default: Vector2 = Vector2.ZERO): Vector2FCurve
Link copied to clipboard
fun MultiFCurve.vector3(x: String, y: String, z: String, default: Vector3 = Vector3.ZERO): Vector3FCurve
Link copied to clipboard
fun MultiFCurve.vector4(x: String, y: String, z: String, w: String, default: Vector4 = Vector4.ZERO): Vector4FCurve