commonMain.ru.casperix.math.curve.ParametricCurve.kt Maven / Gradle / Ivy
package ru.casperix.math.curve
import ru.casperix.math.curve.float32.ParametricCurve2f
import ru.casperix.math.vector.api.AbstractVector
interface ParametricCurve> {
fun getPosition(t: Param): Point
fun getTangent(t: Param): Point
fun getNormal(t: Param): Point
fun getProjection(position: Point): Float
fun invert(): ParametricCurve2f
fun split(factors: List): List
fun divide(t: Param): Pair
fun length(): Float
operator fun plus(other: Self): Self
val start: Point
val finish: Point
fun grow(startOffset: Param, finishOffset: Param): Self
fun grow(offset: Param): Self {
return grow(offset, offset)
}
}