GeometrySpace

interface GeometrySpace<V : Vector> : Group<V> , ScaleOperations<V>

Functions

Link copied to clipboard
abstract fun add(left: V, right: V): V
Link copied to clipboard
open fun binaryOperation(operation: String, left: V, right: V): V
Link copied to clipboard
open override fun binaryOperationFunction(operation: String): (V, V) -> V
Link copied to clipboard
open fun bindSymbol(value: String): V
Link copied to clipboard
open fun bindSymbolOrNull(value: String): V?
Link copied to clipboard
abstract fun V.distanceTo(other: V): Double

L2 distance

Link copied to clipboard
open operator fun V.div(k: Number): V
Link copied to clipboard
abstract infix fun V.dot(other: V): Double

Scalar product

Link copied to clipboard
open fun export(arg: V): V
Link copied to clipboard
open operator fun V.minus(arg: V): V
Link copied to clipboard
open operator fun V.plus(arg: V): V
Link copied to clipboard
abstract fun scale(a: V, value: Double): V
Link copied to clipboard
open operator fun V.times(k: Number): V
open operator fun Number.times(arg: V): V
Link copied to clipboard
abstract operator fun V.unaryMinus(): V
Link copied to clipboard
open fun unaryOperation(operation: String, arg: V): V
Link copied to clipboard
open override fun unaryOperationFunction(operation: String): (V) -> V
Link copied to clipboard
open operator fun V.unaryPlus(): V

Properties

Link copied to clipboard
abstract val zero: V

Inheritors

Link copied to clipboard
Link copied to clipboard

Extensions

Link copied to clipboard
fun <V : Vector> GeometrySpace<V>.projectAlong(vector: V, normal: V, base: V): V

Project vector onto a hyperplane, which is defined by a normal and base. In 2D case it is the projection to a line, in 3d case it is the one to a plane.

Link copied to clipboard
fun <V : Vector> GeometrySpace<V>.projectToLine(vector: V, line: Line<V>): V

Project vector onto a line.

Sources

Link copied to clipboard