public final class BoundingRechteck
extends java.lang.Object
implements java.io.Serializable
Ein nicht grafisches Rechteck auf der Zeichenebene, das eine allgemeine Fläche beschreibt.
Modifier and Type | Field and Description |
---|---|
float |
breite
Reelle Breite des Rechtecks
|
float |
hoehe
Reelle Höhe des Rechtecks
|
float |
x
Reelle
x -Position des Rechtecks |
float |
y
Reelle
y -Position des Rechtecks |
Constructor and Description |
---|
BoundingRechteck(float x,
float y,
float dX,
float dY)
Konstruktor für Objekte der Klasse
BoundingRechteck mit reellen Werten. |
Modifier and Type | Method and Description |
---|---|
BoundingRechteck |
anPosition(float realX,
float realY)
Gibt ein neues BoundingRechteck mit selber Höhe und Breite, jedoch einer bestimmten, zu definierenden Position.
|
Rechteck |
ausDiesem()
Berechnet aus diesem rein aus Zahlen bestehenden Rahmen ein Rechteck, das in der Zeichenebene darstellbar ist.
|
float |
getRealBreite()
Gibt die reelle Breite aus.
|
float |
getRealHoehe()
Gibt die reelle Hoehe aus.
|
float |
getRealX()
Gibt die reelle X-Koordinate der oberen linken Ecke aus.
|
float |
getRealY()
Gibt die reelle Y-Koordinate der oberen linken Ecke aus.
|
float |
hoehenUnterschied(BoundingRechteck r)
Berechnet den Höhenunterschied zwischen dem Fuß des höheren und dem Kopf des tieferen BoundingRechtecks.
|
BoundingRechteck |
in(BoundingRechteck aussen)
Sollte dieses Bounding-Rechteck nicht voll innerhalb eines bestimmten anderen, äußeren Rechtecks liegen, so wird versucht, dieses Bounding-Rechteck in das andere mit möglichst wenig Verschiebung zu bringen.
|
boolean |
istIn(Punkt p)
Testet, ob ein Punkt sich in dem BoundingRechteck befindet.
|
BoundingRechteck |
klon()
Erstellt einen Klon von diesem BoundingRechteck.
|
boolean |
linksVon(BoundingRechteck r)
Berechnet, ob dieses BoundingRechteck links von einem zweiten ist
|
BoundingRechteck |
linksVon(int grenzeRechts)
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.
|
BoundingRechteck |
mittenAngleichInstanz(BoundingRechteck r)
Ein Mittenangleich mit einem anderen BoundingRechteck
|
BoundingRechteck |
mittenAngleichInstanz(Punkt p)
Gibt ein neues BoundingRechteck zurück, das seinen Punkt genau im angegebenen Zentrum hat.
|
Punkt[] |
punkte()
// TODO Dokumentation
|
BoundingRechteck |
rechtsVon(int grenzeLinks)
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.
|
boolean |
schneidet(Dreieck d)
Testet, ob sich ein Dreieck in dem BoundingRechteck befindet.
|
boolean |
schneidetBasic(BoundingRechteck fig)
Testet, ob ein anderes BoundingRechteck dieses schneidet.
|
boolean |
stehtAuf(BoundingRechteck r)
Berechnet, ob dieses BoundingRechteck auf einem zweiten “steht”.
|
BoundingRechteck |
summe(BoundingRechteck r)
Berechnet aus diesem und einem weiteren BoundingRechteck ein neues, dass die beiden genau fasst.
|
java.lang.String |
toString()
Gibt eine String-Repräsentation dieses Objektes aus.
|
boolean |
ueber(BoundingRechteck r)
Berechnet, ob dieses BoundingRechteck ueber einem zweiten ist
|
BoundingRechteck |
ueber(int untergrenze)
Berechnet, ob dieses Rechteck über einer Grenze liegt und wenn nicht, dann berechnet es eines, das gerade so an der Untergrenze liegt.
|
KreisCollider |
umschliessenderKreis()
Gibt einen
BoundingKreis aus, der das Rechteck minimal, aber voll umschließt. |
boolean |
umschliesst(BoundingRechteck innen)
Diese Methoden prüft, ob dieses Bounding-Rechteck ein zweites vollkommen umschliesst.
|
BoundingRechteck |
unter(int obergrenze)
Berechnet, ob dieses Rechteck unter einer Grenze liegt, und wenn nicht, dann berechnet es eines, das gerade so an der Obergrenze liegt.
|
BoundingRechteck |
verschErhoeht(Vektor v,
int dHoehe)
Transformiert dieses Boudning-Rechteck auf 2 Weisen: Einmal in der Postion und zusätzlich in seiner Höhe.
|
float |
verschiebenX(BoundingRechteck r)
Berechnet, wie weit man waagrecht ein BoundingRechteck verschieben müsste, damit es dieses nicht mehr berührt.
|
float |
verschiebenY(BoundingRechteck r)
Berechnet, wie weit man senkrecht ein BoundingRechteck verschieben müsste, damit es dieses nicht mehr berührt.
|
BoundingRechteck |
verschobeneInstanz(Vektor v)
Berechnet ein neues BoundingRechteck mit denselben Maßen wie dieses, jedoch um einen bestimmten Vektor verschoben.
|
Punkt |
zentrum()
Berechnet den Mittelpunkt dieses BoundingRechtecks in der Zeichenebene.
|
public final float x
Reelle x
-Position des Rechtecks
public final float y
Reelle y
-Position des Rechtecks
public final float breite
Reelle Breite des Rechtecks
public final float hoehe
Reelle Höhe des Rechtecks
public BoundingRechteck(float x, float y, float dX, float dY)
Konstruktor für Objekte der Klasse BoundingRechteck
mit reellen Werten.
x
- Die x
-Koordinate der oberen linken Ecke des Rechtecksy
- Die y
-Koordinate der oberen linken Ecke des RechtecksdX
- Die Breite des Bounding-RechtecksdY
- Die Höhe des Bounding-Rechteckspublic BoundingRechteck verschobeneInstanz(Vektor v)
Berechnet ein neues BoundingRechteck mit denselben Maßen wie dieses, jedoch um einen bestimmten Vektor verschoben.
v
- Der Vektor, der die Verschiebung des neuen Objektes von diesem beschreibt.BoundingRechteck
-Objekt, das die selbe Maße wie dieses hat, jedoch um die entsprechende Verschiebung verschoben ist.public Rechteck ausDiesem()
Berechnet aus diesem rein aus Zahlen bestehenden Rahmen ein Rechteck, das in der Zeichenebene darstellbar ist.
public BoundingRechteck mittenAngleichInstanz(Punkt p)
Gibt ein neues BoundingRechteck zurück, das seinen Punkt genau im angegebenen Zentrum hat.
p
- Das Zentrum des zurückzugebenden BoundingRechtecks.public BoundingRechteck mittenAngleichInstanz(BoundingRechteck r)
Ein Mittenangleich mit einem anderen BoundingRechteck
r
- Das BoundingRechteck, an dessen Mitte auch die dieses Rechtecks sein soll.public BoundingRechteck summe(BoundingRechteck r)
Berechnet aus diesem und einem weiteren BoundingRechteck ein neues, dass die beiden genau fasst.
r
- Das zweite Rechteck fuer die Berechnungpublic BoundingRechteck ueber(int untergrenze)
Berechnet, ob dieses Rechteck über einer Grenze liegt und wenn nicht, dann berechnet es eines, das gerade so an der Untergrenze liegt.
untergrenze
- Die Grenze, auf der das Ergebnis maximal liegen darf.this
.public BoundingRechteck unter(int obergrenze)
Berechnet, ob dieses Rechteck unter einer Grenze liegt, und wenn nicht, dann berechnet es eines, das gerade so an der Obergrenze liegt.
obergrenze
- Die Grenze, auf der das Ergebnis maximal liegen darf.this
.public BoundingRechteck rechtsVon(int grenzeLinks)
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.
grenzeLinks
- Der Wert, den das Ergebnisrechteck maximal links sein darfthis
zurückgegeben.public BoundingRechteck linksVon(int grenzeRechts)
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.
grenzeRechts
- Der Wert, den das Ergebnisrechteck maximal rechts sein darfthis
zurückgegeben.public BoundingRechteck anPosition(float realX, float realY)
Gibt ein neues BoundingRechteck mit selber Höhe und Breite, jedoch einer bestimmten, zu definierenden Position.
Diese Position ist die der linken oberen Ecke des BoundingRechtecks.
realX
- Die X-Koordinate der linken oberen Ecke des BoundingRechtecksrealY
- Die Y-Koordinate der linken oberen Ecke des BoundingRechteckspublic KreisCollider umschliessenderKreis()
Gibt einen BoundingKreis
aus, der das Rechteck minimal, aber voll umschließt.
BoundingKreis
aus, der das Rechteck minimal, aber voll umschließt. Die Ecken des Rechtecks liegen alle auf dem Kreis.public boolean schneidet(Dreieck d)
Testet, ob sich ein Dreieck in dem BoundingRechteck befindet.
Hierbei wird zuerst getestet, ob ein Punkt des Dreiecks im Rechteck ist, dann, falls nötig ob ein Punkt des Rechtecks im Dreieck ist.
public boolean istIn(Punkt p)
Testet, ob ein Punkt sich in dem BoundingRechteck befindet.
p
- Der Punkt, der getestet werden sollpublic Punkt zentrum()
Berechnet den Mittelpunkt dieses BoundingRechtecks in der Zeichenebene.
public Punkt[] punkte()
// TODO Dokumentation
public boolean linksVon(BoundingRechteck r)
Berechnet, ob dieses BoundingRechteck links von einem zweiten ist
r
- Das Rechteck, bei dem dies getestet werden solltrue
, wenn dieses Rechteck rechts von dem anderen ist, sonst false
.public boolean ueber(BoundingRechteck r)
Berechnet, ob dieses BoundingRechteck ueber einem zweiten ist
r
- Das Rechteck, bei dem dies getestet werden solltrue
, wenn dieses Rechteck rechts von dem anderen ist, sonst false
.public boolean schneidetBasic(BoundingRechteck fig)
Testet, ob ein anderes BoundingRechteck dieses schneidet.
Schneiden bedeutet folgendes im Sinne der Engine Alpha:
Beide Rechtecke teilen sich mindestens einen (aber meistens mehrere) Punkte auf der Zeichenebene.
fig
- Das zweite zu testende BoundingRechtecktrue
, wenn sich die beiden schneiden, sonst false
.public boolean umschliesst(BoundingRechteck innen)
Diese Methoden prüft, ob dieses Bounding-Rechteck ein zweites vollkommen umschliesst.
Gemeinsame Ränder zählen AUCH als umschliessen!
innen
- Das Innere Bounding-Rechteck. Es soll geprüft werden, ob dieses Vollkommen von dem die Methode ausführenden Rechteck umschlossen wird.true
, wenn das ausfuehrende Bounding-Rechteck das als Argument übergebene BoundingRechteck voll umschliesst, sonst false
.public boolean stehtAuf(BoundingRechteck r)
Berechnet, ob dieses BoundingRechteck auf einem zweiten “steht”.
r
- Das BoundingRechteck, auf dem dieses stehen koenntetrue
, wenn dies so ist, sonst false
.public float verschiebenX(BoundingRechteck r)
Berechnet, wie weit man waagrecht ein BoundingRechteck verschieben müsste, damit es dieses nicht mehr berührt.
r
- Das BoundingRechteck, das eventuell verschoben werden müsste.public float verschiebenY(BoundingRechteck r)
Berechnet, wie weit man senkrecht ein BoundingRechteck verschieben müsste, damit es dieses nicht mehr berührt.
r
- Das BoundingRechteck, das eventuell verschoben werden müsste.public float hoehenUnterschied(BoundingRechteck r)
Berechnet den Höhenunterschied zwischen dem Fuß des höheren und dem Kopf des tieferen BoundingRechtecks.
r
- Das BoundingRechteck, dessen Höhenunterschied zu diesem gefunden werden sollpublic BoundingRechteck verschErhoeht(Vektor v, int dHoehe)
Transformiert dieses Boudning-Rechteck auf 2 Weisen: Einmal in der Postion und zusätzlich in seiner Höhe.
v
- Der Vektor, der die Verschiebung beschreibt.dHoehe
- Die Höhenänderung.public BoundingRechteck in(BoundingRechteck aussen)
Sollte dieses Bounding-Rechteck nicht voll innerhalb eines bestimmten anderen, äußeren Rechtecks liegen, so wird versucht, dieses Bounding-Rechteck in das andere mit möglichst wenig Verschiebung zu bringen. Diese Methode wird intern für die Beschränkung des Kamera-Bereiches genutzt.
aussen
- Das äußere Rechteck, innerhalb dessen sich das Ergebnis-Rechteck befinden wird (sollte das äußere ausreichend groß sein).public BoundingRechteck klon()
Erstellt einen Klon von diesem BoundingRechteck.
public java.lang.String toString()
Gibt eine String-Repräsentation dieses Objektes aus.
toString
in class java.lang.Object
x
, y
, dX
und dY
gemacht)public float getRealX()
Gibt die reelle X-Koordinate der oberen linken Ecke aus.
getRealY()
,
getRealBreite()
,
getRealHoehe()
public float getRealY()
Gibt die reelle Y-Koordinate der oberen linken Ecke aus.
getRealX()
,
getRealBreite()
,
getRealHoehe()
public float getRealBreite()
Gibt die reelle Breite aus.
getRealX()
,
getRealY()
,
getRealHoehe()
public float getRealHoehe()
Gibt die reelle Hoehe aus.
getRealX()
,
getRealY()
,
getRealBreite()