====== 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 ===== * ''[[lyx_-_programmiersprache:units:vector|std.vector]]'' ---- ===== 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 |