Flector

class Flector : Versor

A mirror motion of the plane — a reflection across a line, or a glide reflection along one — applied to a shape with *. Built by the F (reflection) and G (glide reflection) factories.

The odd versor fx·e423 + fy·e431 + fz·e412 + fw·e4, acting via the antiproduct sandwich −F ⟇ u ⟇ F̰ — the leading minus is the odd case of the action; the spelling stays shape * flector, and Versor carries the right-action and composition contract. Not a Shape: a flector carries a motion, not geometry, and appears only on the right of *. The improper counterpart of Motor: a motor's two even grades preserve orientation, a flector's two odd grades — the mirror line (grade 3) and the glide (grade 1) — reverse it.

One type covers every mirror motion because every improper isometry of the plane is a transflection: a reflection across a line plus a glide along it, the pure reflection being the zero-glide case. There is no blade constraint to violate — any components whose normal norm doesn't round to zero build a valid flector.

The stored form reads Euclidean: the flector reflects across the mirror line fx·x + fy·y + fz = 0, then glides by 2·fw along that line's running direction (−fy, fx). Components are stored raw at full Double precision, unitized by the mirror's normal norm √(fx² + fy²); equals/hashCode compare rounded at the SCALE quantum. A flector and its negation apply the identical motion yet compare unequal as values (see Versor).

Constructors

Link copied to clipboard
constructor(fx: Double, fy: Double, fz: Double, fw: Double)

Builds the flector (fx, fy, fz, fw), unitized and zero-sanitized.

Properties

Link copied to clipboard
val fw: Double

The e4 component — half the glide distance along the mirror line's running direction (−fy, fx).

Link copied to clipboard
val fx: Double

The e423 component — the mirror line's unit-normal x-component.

Link copied to clipboard
val fy: Double

The e431 component — the mirror line's unit-normal y-component.

Link copied to clipboard
val fz: Double

The e412 component — the origin's signed distance from the mirror line.

Functions

Link copied to clipboard
open operator override fun equals(other: Any?): Boolean

Rounded identity: equal when every component matches at the SCALE quantum.

Link copied to clipboard
open override fun hashCode(): Int

Returns the hash of the rounded components, consistent with equals.

Link copied to clipboard
operator fun Flector.times(next: Flector): Motor

Flector * Flector => Motor
Returns the single motor performing this motion, then next's.

operator fun Flector.times(next: Motor): Flector

Flector * Motor => Flector
Returns the single flector performing this motion, then next's.

operator fun Versor.times(next: Versor): Versor

Versor * Versor => Versor
Returns the single versor performing this motion, then next's.

Link copied to clipboard
open override fun toString(): String

Returns the raw components — full stored precision, no rounding.

Link copied to clipboard

Returns the components rounded at the SCALE quantum — the module's debug-output convention.