std.rect

Rechteck-Geometrie mit Vec2-Eckpunkten (min/max). Berechnet Breite, Höhe, Fläche, Mittelpunkt und Ecken; prüft ob ein Punkt im Rechteck liegt (RectContains, mit/ohne Rand); vergrößert/verkleinert (RectInflate/RectDeflate), expandiert um einen Punkt (RectExpand), berechnet Vereinigung und Schnittmenge (RectUnion, RectIntersect), clamps Punkte und Rechtecke und misst den Abstand eines Punkts zum Rechteck.

Einsatzbereiche: GUI-Layouts, Kollisionserkennung, Viewport-Clipping, Bounding-Box-Berechnungen, Sprite-Systeme.

Autor: Andreas Röne
Copyright: 2024-2025 Andreas Röne


Imports

Typen

Rect (struct)

Feld Typ

Funktionen

Signatur Sichtbarkeit Beschreibung
RectNew(min: Vec2, max: Vec2): Rect pub Erzeugt Rect aus Min- und Max-Punkt
RectFromPoints(p1: Vec2, p2: Vec2): Rect pub Erzeugt Rect aus zwei beliebigen Punkten
RectFromCenterSize(center: Vec2, size: Vec2): Rect pub Erzeugt Rect aus Mittelpunkt und Größe
RectEmpty(): Rect pub Erzeugt leeres Rect mit Null-Koordinaten
RectFromXYWH(x: int64, y: int64, w: int64, h: int64): Rect pub Erzeugt Rect aus Position und Breite/Höhe
RectWidth(r: Rect): int64 pub Gibt Breite des Rects zurück
RectHeight(r: Rect): int64 pub Gibt Höhe des Rects zurück
RectSize(r: Rect): Vec2 pub Gibt Breite und Höhe als Vec2 zurück
RectCenter(r: Rect): Vec2 pub Gibt Mittelpunkt des Rects zurück
RectArea(r: Rect): int64 pub Berechnet Flächeninhalt des Rects
RectIsEmpty(r: Rect): bool pub Prüft ob Rect keine Fläche hat
RectIsValid(r: Rect): bool pub Prüft ob min kleiner als max ist
RectContains(r: Rect, p: Vec2): bool pub Prüft ob Punkt exklusiv im Rect liegt
RectContainsInclusive(r: Rect, p: Vec2): bool pub Prüft ob Punkt inklusive Rand im Rect liegt
RectInflate(r: Rect, amount: int64): Rect pub Vergrößert Rect um gegebenen Betrag
RectDeflate(r: Rect, amount: int64): Rect pub Verkleinert Rect um gegebenen Betrag
RectExpand(r: Rect, p: Vec2): Rect pub Erweitert Rect so dass Punkt enthalten ist
RectUnion(a: Rect, b: Rect): Rect pub Berechnet kleinstes Rect das beide umschließt
RectIntersect(a: Rect, b: Rect): Rect pub Berechnet Schnittfläche zweier Rects
RectIntersects(a: Rect, b: Rect): bool pub Prüft ob zwei Rects sich überschneiden
RectClampPoint(r: Rect, p: Vec2): Vec2 pub Klemmt Punkt auf Rect-Grenzen
RectClamp(r: Rect, bounds: Rect): Rect pub Klemmt Rect innerhalb eines Begrenzungs-Rects
RectDistanceToPoint(r: Rect, p: Vec2): int64 pub Berechnet Abstand eines Punkts zum Rect
RectTopLeft(r: Rect): Vec2 pub Gibt obere linke Ecke zurück
RectTopRight(r: Rect): Vec2 pub Gibt obere rechte Ecke zurück
RectBottomLeft(r: Rect): Vec2 pub Gibt untere linke Ecke zurück
RectBottomRight(r: Rect): Vec2 pub Gibt untere rechte Ecke zurück
RectCorners(r: Rect): array[4]Vec2 pub Gibt alle vier Ecken als Array zurück
RectLeft(r: Rect): int64 pub Gibt linke X-Koordinate zurück
RectRight(r: Rect): int64 pub Gibt rechte X-Koordinate zurück
RectTop(r: Rect): int64 pub Gibt obere Y-Koordinate zurück
RectBottom(r: Rect): int64 pub Gibt untere Y-Koordinate zurück
RectEqual(a: Rect, b: Rect): bool pub Prüft ob zwei Rects identisch sind