Package pi

Record Class Bounds

Record Components:
x - Die x-Koordinate der unteren linken Ecke des Rechtecks.
y - Die y-Koordinate der unteren linken Ecke des Rechtecks.
width - Die Breite des Rechtecks.
height - Die Höhe des Rechtecks.

public record Bounds(double x, double y, double width, double height) extends Record
Ein nicht-grafisches Rechteck auf der Zeichenebene, das eine allgemeine Fläche beschreibt.
Author:
Michael Andonie, Josef Friedrich
  • Constructor Summary

    Constructors
    Constructor
    Description
    Bounds(double x, double y, double width, double height)
    Creates an instance of a Bounds record class.
  • Method Summary

    Modifier and Type
    Method
    Description
    above(double lowerBound)
    Berechnet, ob dieses Rechteck über einer Grenze liegt und wenn nicht, dann berechnet es eines, das gerade so an der Untergrenze liegt.
    boolean
    Berechnet, ob dieses Bounds oberhalb eines zweiten ist.
    atPosition(double realX, double realY)
    Gibt ein neues Bounds mit selber Höhe und Breite, jedoch einer bestimmten, zu definierenden Position.
    Diese Position ist die der linken unteren Ecke des BoundingRechtecks.
    below(double upperBound)
    Berechnet, ob dieses Rechteck unter einer Grenze liegt, und wenn nicht, dann berechnet es eines, das gerade so an der Obergrenze liegt.
    Berechnet den Mittelpunkt dieses Bounds-Rechtecks in der Zeichenebene.
    Erstellt einen Klon von diesem Bounds.
    boolean
    Diese Methoden prüft, ob dieses Bounds-Rechteck ein zweites vollkommen enthält.
    Gemeinsame Ränder zählen AUCH als umschliessen!
    boolean
    Testet, ob ein Punkt sich in dem Bounds befindet.
    final boolean
    Indicates whether some other object is "equal to" this one.
    final int
    Returns a hash code value for this object.
    double
    Gibt die Höhe aus.
    in(Bounds outer)
    Sollte dieses Bounds-Rechteck nicht voll innerhalb eines bestimmten anderen, äußeren Rechtecks liegen, so wird versucht, dieses Bounds-Rechteck in das andere mit möglichst wenig Verschiebung zu bringen.
    leftOf(double border)
    Berechnet, ob dieses Rechteck links von einer bestimmten Grenze liegt, und wenn nicht, dann berechnet es eines, das gerade so an der rechten Extremgrenze liegt.
    Berechnet ein neues Bounds mit denselben Maßen wie dieses, jedoch um einen bestimmten Vector verschoben.
    Berechnet die vier Eckpunkte des umfassenden Bounds.
    Gibt die exakte Position der linken unteren Ecke dieses Bounds-Rechtecks aus.
    rightOf(double border)
    Berechnet, ob dieses Rechteck rechts von einer bestimmten Grenze liegt, und wenn nicht, dann berechnet es eines, das gerade so an der linken Extremgrenze liegt.
    Berechnet aus diesem und einem weiteren Bounds ein neues, dass die beiden genau fasst.
    Returns a string representation of this record class.
    double
    Gibt die Breite aus.
    Gleicht das eigene Zentrum mit der Mitte eines anderen Bounds ab.
    Gibt ein neues Bounds mit derselben Höhe und Breite zurück, das seinen Mittelpunkt genau im angegebenen Zentrum hat.
    double
    x()
    Gibt die X-Koordinate der unteren linken Ecke aus.
    double
    Die x-Koordinate der linken Ecken.
    double
    Die x-Koordinate der rechten Ecken.
    double
    y()
    Gibt die Y-Koordinate der unteren linken Ecke aus.
    double
    Die y-Koordinate der untern Ecken.
    double
    Die y-Koordinate der oberen Ecken.

    Methods inherited from class java.lang.Object

    finalize, getClass, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • Bounds

      public Bounds(double x, double y, double width, double height)
      Creates an instance of a Bounds record class.
      Parameters:
      x - the value for the x record component
      y - the value for the y record component
      width - the value for the width record component
      height - the value for the height record component
  • Method Details

    • withCenterAtBoundsCenter

      @API public Bounds withCenterAtBoundsCenter(Bounds bounds)
      Gleicht das eigene Zentrum mit der Mitte eines anderen Bounds ab.
      Parameters:
      bounds - Das Bounds, an dessen Mitte auch die Mitte dieses Rechtecks angeglichen werden soll.
    • withCenterPoint

      @API public Bounds withCenterPoint(Vector point)
      Gibt ein neues Bounds mit derselben Höhe und Breite zurück, das seinen Mittelpunkt genau im angegebenen Zentrum hat.
      Parameters:
      point - Das Zentrum des zurückzugebenden Bounds-Rechtecks.
      Returns:
      Ein Bounds mit der gleichen Höhe und Breite wie dieses, jedoch so verschoben, dass es mit seiner Mitte im angegebenen Zentrum liegt.
    • center

      @API @Getter public Vector center()
      Berechnet den Mittelpunkt dieses Bounds-Rechtecks in der Zeichenebene.
      Returns:
      Der Punkt mit den Koordinaten, der im Zentrum des Rechtecks liegt.
    • moveBy

      @API public Bounds moveBy(Vector v)
      Berechnet ein neues Bounds mit denselben Maßen wie dieses, jedoch um einen bestimmten Vector verschoben.
      Parameters:
      v - Der Vector, der die Verschiebung des neuen Objektes von diesem beschreibt.
      Returns:
      Ein neues Bounds-Objekt, das dieselben Maße wie dieses hat, jedoch um die entsprechende Verschiebung verschoben ist.
    • smallestCommon

      @API public Bounds smallestCommon(Bounds bounds)
      Berechnet aus diesem und einem weiteren Bounds ein neues, dass die beiden genau fasst.
      Parameters:
      bounds - Das zweite Rechteck für die Berechnung
      Returns:
      Ein neues Bounds, dass die beiden Rechtecke genau umfasst.
    • above

      @API public Bounds above(double lowerBound)
      Berechnet, ob dieses Rechteck über einer Grenze liegt und wenn nicht, dann berechnet es eines, das gerade so an der Untergrenze liegt.
      Parameters:
      lowerBound - Die Grenze, auf der das Ergebnis maximal liegen darf.
      Returns:
      Ein Bounds derselben Höhe und Breite wie dieses, das in jedem Fall über, oder auf der Grenze liegt, wenn es passt, ist es this.
    • below

      @API public Bounds below(double upperBound)
      Berechnet, ob dieses Rechteck unter einer Grenze liegt, und wenn nicht, dann berechnet es eines, das gerade so an der Obergrenze liegt.
      Parameters:
      upperBound - Die Grenze, auf der das Ergebnis maximal liegen darf.
      Returns:
      Ein Bounds derselben Höhe und Breite wie dieses, das in jedem Fall unter oder auf der Grenze liegt, wenn es passt, ist es this.
    • rightOf

      @API public Bounds rightOf(double border)
      Berechnet, ob dieses Rechteck rechts von einer bestimmten Grenze liegt, und wenn nicht, dann berechnet es eines, das gerade so an der linken Extremgrenze liegt.
      Parameters:
      border - Der Wert, den das Ergebnisrechteck maximal links sein darf
      Returns:
      Ein Bounds derselben Höhe und Breite, das in jedem rechts jenseits oder auf der Grenze liegt.
      Wenn diese Eigenschaften bereits von diesem Objekt erfüllt werden, so wird this zurückgegeben.
    • leftOf

      @API public Bounds leftOf(double border)
      Berechnet, ob dieses Rechteck links von einer bestimmten Grenze liegt, und wenn nicht, dann berechnet es eines, das gerade so an der rechten Extremgrenze liegt.
      Parameters:
      border - Der Wert, den das Ergebnisrechteck maximal rechts sein darf
      Returns:
      Ein Bounds derselben Höhe und Breite, das in jedem Fall links jenseits oder auf der Grenze liegt.
      Wenn diese Eigenschaften bereits von diesem Objekt erfüllt werden, so wird this zurückgegeben.
    • atPosition

      @API public Bounds atPosition(double realX, double realY)
      Gibt ein neues Bounds mit selber Höhe und Breite, jedoch einer bestimmten, zu definierenden Position.
      Diese Position ist die der linken unteren Ecke des BoundingRechtecks.
      Parameters:
      realX - Die X-Koordinate der linken unteren Ecke des BoundingRechtecks
      realY - Die Y-Koordinate der linken unteren Ecke des BoundingRechtecks
      Returns:
      Ein neues Bounds mit der eingegebenen Position und derselben Breite und Höhe.
    • contains

      @API public boolean contains(Vector v)
      Testet, ob ein Punkt sich in dem Bounds befindet.
      Parameters:
      v - Der Punkt, der getestet werden soll
      Returns:
      true, wenn der Punkt in dem Bounds ist
    • points

      @API public Vector[] points()
      Berechnet die vier Eckpunkte des umfassenden Bounds.
      Returns:
      Array mit den vier Eckpunkten des umfassenden Bounds.
    • contains

      @API public boolean contains(Bounds inner)
      Diese Methoden prüft, ob dieses Bounds-Rechteck ein zweites vollkommen enthält.
      Gemeinsame Ränder zählen AUCH als umschliessen!
      Parameters:
      inner - Das innere Bounds-Rechteck. Es soll geprüft werden, ob dieses vollkommen von dem die Methode ausführenden Rechteck umschlossen wird.
      Returns:
      wahr, wenn das ausführende Bounds-Rechteck das als Argument übergebene Bounds voll enthält, sonst falsch.
    • above

      @API public boolean above(Bounds r)
      Berechnet, ob dieses Bounds oberhalb eines zweiten ist.
      Parameters:
      r - Das Rechteck, bei dem dies getestet werden soll
      Returns:
      wahr, wenn dieses Rechteck rechts von dem anderen ist, sonst falsch.
    • in

      @API public Bounds in(Bounds outer)
      Sollte dieses Bounds-Rechteck nicht voll innerhalb eines bestimmten anderen, äußeren Rechtecks liegen, so wird versucht, dieses Bounds-Rechteck in das andere mit möglichst wenig Verschiebung zu bringen. Diese Methode wird intern für die Beschränkung des Kamera-Bereiches genutzt.
      Achtung: Voraussetzung dafür, dass dieser Algorithmus Sinn macht ist, dass das äußere Rechteck ausreichend größer als dieses ist!
      Parameters:
      outer - Das äußere Rechteck, innerhalb dessen sich das Ergebnis-Rechteck befinden wird (sollte das äußere ausreichend groß sein).
      Returns:
      Das Ergebnis-Rechteck, das sich im äußeren Rechteck befinden wird.
    • clone

      @API public Bounds clone()
      Erstellt einen Klon von diesem Bounds.
      Overrides:
      clone in class Object
      Returns:
      Ein neues Bounds mit genau demselben Zustand wie dieses.
    • x

      @API public double x()
      Gibt die X-Koordinate der unteren linken Ecke aus.
      Returns:
      Die X-Koordinate der unteren linken Ecke dieses BoundingRechtecks.
      See Also:
      • ()
      • ()
      • ()
    • xLeft

      @API public double xLeft()
      Die x-Koordinate der linken Ecken.

      Dieser Wert entspricht x().

      Since:
      0.42.0
    • xRight

      @API public double xRight()
      Die x-Koordinate der rechten Ecken.

      Dieser Wert entspricht x() + width().

      Since:
      0.42.0
    • y

      @Getter @API public double y()
      Gibt die Y-Koordinate der unteren linken Ecke aus.
      Returns:
      Die Y-Koordinate der unteren linken Ecke dieses Bounds-Rechtecks.
      See Also:
      • ()
      • ()
      • ()
    • yTop

      @API public double yTop()
      Die y-Koordinate der oberen Ecken.

      Dieser Wert entspricht y() + height().

      Since:
      0.42.0
    • yBottom

      @API public double yBottom()
      Die y-Koordinate der untern Ecken.

      Dieser Wert entspricht y()

      Since:
      0.42.0
    • width

      @Getter @API public double width()
      Gibt die Breite aus.
      Returns:
      Die Breite dieses Bounds-Rechtecks.
      See Also:
    • height

      @Getter @API public double height()
      Gibt die Höhe aus.
      Returns:
      Die Höhe dieses Bounds-Rechtecks.
      See Also:
    • position

      @Getter @API public Vector position()
      Gibt die exakte Position der linken unteren Ecke dieses Bounds-Rechtecks aus.
      Returns:
      die Position des Bounds-Rechtecks, beschrieben durch den Punkt der linken unteren Ecke dieses Objekts.
    • toString

      @Internal public String toString()
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      Specified by:
      toString in class Record
      Returns:
      a string representation of this object
    • hashCode

      public final int hashCode()
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      Specified by:
      hashCode in class Record
      Returns:
      a hash code value for this object
    • equals

      public final boolean equals(Object o)
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with '=='.
      Specified by:
      equals in class Record
      Parameters:
      o - the object with which to compare
      Returns:
      true if this object is the same as the o argument; false otherwise.