Record Class Bounds
java.lang.Object
java.lang.Record
de.pirckheimer_gymnasium.engine_pi.Bounds
- Record Components:
x- Diex-Koordinate der unteren linken Ecke des Rechtecks.y- Diey-Koordinate der unteren linken Ecke des Rechtecks.width- Reelle Breite des Rechtecks.height- Reelle Höhe des Rechtecks.
Ein nicht-grafisches Rechteck auf der Zeichenebene, das eine allgemeine
Fläche beschreibt.
- Author:
- Michael Andonie
-
Constructor Summary
ConstructorsConstructorDescriptionBounds(double x, double y, double width, double height) Creates an instance of aBoundsrecord class. -
Method Summary
Modifier and TypeMethodDescriptionabove(double lowerBound) Berechnet, ob dieses Rechteck über einer Grenze liegt und wenn nicht, dann berechnet es eines, das gerade so an der Untergrenze liegt.booleanBerechnet, ob diesesBoundsoberhalb eines zweiten ist.atPosition(double realX, double realY) Gibt ein neuesBoundsmit 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.clone()Erstellt einen Klon von diesemBounds.booleanDiese Methoden prüft, ob diesesBounds-Rechteck ein zweites vollkommen enthält.
Gemeinsame Ränder zählen AUCH als umschliessen!booleanTestet, ob ein Punkt sich in demBoundsbefindet.final booleanIndicates whether some other object is "equal to" this one.Berechnet den Mittelpunkt diesesBounds-Rechtecks in der Zeichenebene.Gibt die exakte Position der linken unteren Ecke diesesBounds-Rechtecks aus.final inthashCode()Returns a hash code value for this object.doubleheight()Gibt die reelle Höhe aus.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 neuesBoundsmit denselben Maßen wie dieses, jedoch um einen bestimmten Vector verschoben.Vector[]points()Berechnet die vier Eckpunkte des umfassendenBounds.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.smallestCommon(Bounds bounds) Berechnet aus diesem und einem weiterenBoundsein neues, dass die beiden genau fasst.toString()Gibt eine String-Repräsentation dieses Objektes aus.doublewidth()Gibt die reelle Breite aus.withCenterAtBoundsCenter(Bounds bounds) Gleicht das eigene Zentrum mit der Mitte eines anderenBoundsab.withCenterPoint(Vector point) Gibt ein neuesBoundsmit derselben Höhe und Breite zurück, das seinen Mittelpunkt genau im angegebenen Zentrum hat.doublex()Gibt die reelle X-Koordinate der unteren linken Ecke aus.doubley()Gibt die reelle Y-Koordinate der unteren linken Ecke aus.
-
Constructor Details
-
Bounds
public Bounds(double x, double y, double width, double height) Creates an instance of aBoundsrecord class.
-
-
Method Details
-
withCenterAtBoundsCenter
Gleicht das eigene Zentrum mit der Mitte eines anderenBoundsab.- Parameters:
bounds- DasBounds, an dessen Mitte auch die Mitte dieses Rechtecks angeglichen werden soll.
-
withCenterPoint
Gibt ein neuesBoundsmit derselben Höhe und Breite zurück, das seinen Mittelpunkt genau im angegebenen Zentrum hat. -
getCenter
Berechnet den Mittelpunkt diesesBounds-Rechtecks in der Zeichenebene.- Returns:
- Der Punkt mit den Koordinaten, der im Zentrum des Rechtecks liegt.
-
moveBy
Berechnet ein neuesBoundsmit 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
Berechnet aus diesem und einem weiterenBoundsein 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
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
Boundsderselben Höhe und Breite wie dieses, das in jedem Fall über, oder auf der Grenze liegt, wenn es passt, ist esthis.
-
below
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
Boundsderselben Höhe und Breite wie dieses, das in jedem Fall unter oder auf der Grenze liegt, wenn es passt, ist esthis.
-
rightOf
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
Boundsderselben 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 wirdthiszurückgegeben.
-
leftOf
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
Boundsderselben 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 wirdthiszurückgegeben.
-
atPosition
Gibt ein neuesBoundsmit 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 BoundingRechtecksrealY- Die Y-Koordinate der linken unteren Ecke des BoundingRechtecks- Returns:
- Ein neues
Boundsmit der eingegebenen Position und derselben Breite und Höhe.
-
contains
Testet, ob ein Punkt sich in demBoundsbefindet.- Parameters:
v- Der Punkt, der getestet werden soll- Returns:
- true, wenn der Punkt in dem
Boundsist
-
points
Berechnet die vier Eckpunkte des umfassendenBounds.- Returns:
- Array mit den vier Eckpunkten des umfassenden
Bounds.
-
contains
Diese Methoden prüft, ob diesesBounds-Rechteck ein zweites vollkommen enthält.
Gemeinsame Ränder zählen AUCH als umschliessen! -
above
Berechnet, ob diesesBoundsoberhalb eines zweiten ist.- Parameters:
r- Das Rechteck, bei dem dies getestet werden soll- Returns:
wahr, wenn dieses Rechteck rechts von dem anderen ist, sonstfalsch.
-
in
Sollte diesesBounds-Rechteck nicht voll innerhalb eines bestimmten anderen, äußeren Rechtecks liegen, so wird versucht, diesesBounds-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
Erstellt einen Klon von diesemBounds. -
toString
Gibt eine String-Repräsentation dieses Objektes aus. -
x
public double x()Gibt die reelle X-Koordinate der unteren linken Ecke aus.- Returns:
- Die reelle X-Koordinate der unteren linken Ecke dieses BoundingRechtecks.
- See Also:
-
()()()
-
y
public double y()Gibt die reelle Y-Koordinate der unteren linken Ecke aus.- Returns:
- Die reelle Y-Koordinate der unteren linken Ecke dieses
Bounds-Rechtecks. - See Also:
-
()()()
-
width
public double width()Gibt die reelle Breite aus.- Returns:
- Die reelle Breite dieses
Bounds-Rechtecks. - See Also:
-
()()()
-
height
public double height()Gibt die reelle Höhe aus.- Returns:
- Die reelle Höhe dieses
Bounds-Rechtecks. - See Also:
-
()()()
-
getPosition
Gibt die exakte Position der linken unteren Ecke diesesBounds-Rechtecks aus.- Returns:
- die Position des
Bounds-Rechtecks, beschrieben durch den Punkt der linken unteren Ecke dieses Objekts.
-
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. -
equals
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 '=='.
-