abs/rel

Absolut und relativ verkörpern bei Dimensionshaltigen Datentypen wie int, double oder Point/Vector, Angle/AngleDelta die unterscheidung zugehöriger entsprechenden Relativtypen.

Datentypen beschreiben erstmal absolute Informationen.

Zieht man zwei Punkte voneinander ab, erhält man einen Vector.

Vector is Point rel;

Oder bei Zahlen

Width = 320 as int;  // ist int abs

Width do( value, index )  // value is int abs, index is int rel
{
}

Die Operatoren können entsprechend definiert werden:

int abs operator + (lhs is int abs, rhs is int rel)
int rel operator - (lhs is int abs, rhs is int abs)
int abs operator - (lhs is int abs, rhs is int rel)
// operator int abs + int abs ergibt nicht überall Sinn.