public class GLKamera
extends Object
Constructor and Description |
---|
GLKamera()
Erstellt eine bGLOOP-Kamera.
|
GLKamera(boolean pVollbild) |
GLKamera(boolean pVollbild,
boolean pKeineDekoration)
Erstellt eine bGLOOP-Kamera mit zusätzlichen Fenster-Parametern.
|
GLKamera(int width,
int height)
Erstellt eine bGLOOP-Kamera mit vorgegebener Breite und Höhe.
|
Modifier and Type | Method and Description |
---|---|
static GLKamera |
aktiveKamera()
Rückgabe der aktiven Kamera.
|
void |
beleuchtungAktivieren(boolean pBeleuchtungAn)
Aktiviert die Beleuchtung der Szene.
|
void |
bildschirmfoto()
Erstellt ein Bildschirmfoto und speichert es unter dem in der
bGLOOP-Konfigurationsdatei festgelegten Standardnamen.
|
void |
bildschirmfoto(String pDateiname)
Erstellt ein Bildschirmfoto und speichert es unter dem übergebenen
Dateinamen.
|
void |
drehe(double pWinkel,
double pOrtX,
double pOrtY,
double pOrtZ,
double pRichtX,
double pRichtY,
double pRichtZ)
Dreht die Kamera um eine angegebene Achse im Raum.
|
void |
dreheUmXAchse(double pWinkel)
Dreht die Kamera um den angegebenen Winkel um die x-Achse im Koordinatensystem.
|
void |
dreheUmYAchse(double pWinkel)
Dreht die Kamera um den angegebenen Winkel um die y-Achse im Koordinatensystem.
|
double |
gibBlickpunktX()
Gibt die x-Koordinate des Blickpunkts der Kamera zurück.
|
double |
gibBlickpunktY()
Gibt die y-Koordinate des Blickpunkts der Kamera zurück.
|
double |
gibBlickpunktZ()
Gibt die z-Koordinate des Blickpunkts der Kamera zurück.
|
int |
gibBreite()
Liefert die Breite des Kamerafensters.
|
int |
gibHoehe()
Liefert die Höhe des Kamerafensters.
|
GLObjekt |
gibObjekt(int pFensterX,
int pFensterY)
Gibt das
GLObjekt zurück, was im Kamerafenster an der gegebenen
Position ist. |
double |
gibX()
Gibt die x-Position der Kamera.
|
double |
gibY()
Gibt die y-Position der Kamera.
|
double |
gibZ()
Gibt die z-Position der Kamera.
|
boolean |
istDrahtgittermodell()
Gibt an, ob im Moment die Drahtgitterdarstellung für alle bGLOOP-Objekte
gewählt ist.
|
static void |
setzeAktiveKamera(GLKamera activeCamera)
Setzt die momentan aktive Kamera.
|
void |
setzeBlickpunkt(double pX,
double pY,
double pZ)
Setzt den Blickpunkt der Kamera.
|
void |
setzeGittermodelldarstellung(boolean pZeigeGitter)
Zeigt alle beweglichen bGLOOP-Objekte als Drahtgittermodelle an.
|
void |
setzePosition(double pX,
double pY,
double pZ)
Setzt die Position der Kamera.
|
void |
setzeStandardOben()
Richtet die Kamera so aus, dass "oben" auf dem Bildschirm der positiven
y-Achsen-Richtung entspricht.
|
void |
setzeVollbildmodus(boolean pVollbild)
Aktiviert oder deaktiviert den Vollbildmodus des Anzeigefensters.
|
void |
vor(double pSchrittweite)
Bewegt die Kamera auf ihren Blickpunkt zu.
|
void |
zeigeAchsen(boolean pZeigeAchsen)
Aktiviert oder deaktiviert die Darstellung der Koordinatenachsen.
|
void |
zeigeAchsen(double pAchsenlaenge)
Aktiviert die Darstellung der Koordinatenachsen.
|
void |
zeigeBlickpunkt(boolean pBlickpunktZeichnen)
Zeichnet den Blickpunkt ins Kamerafenster.
|
public GLKamera()
public GLKamera(boolean pVollbild)
public GLKamera(boolean pVollbild, boolean pKeineDekoration)
pVollbild
- Wenn true
, dann wird die Anzeige direkt in den
Vollbildmodus geschaltet. Wenn false
, dann nichtpKeineDekoration
- Wenn true
, dann wird das Anzeigefenster ohne
Dekoration des Fenstermanagers gezeichnet, wenn
false
, dann nicht.public GLKamera(int width, int height)
width
- Die Breite des Anzeigefenstersheight
- Die Höhe des Anzeigefensterspublic static GLKamera aktiveKamera()
setzeAktiveKamera(GLKamera)
aktiviert Kamera.public static void setzeAktiveKamera(GLKamera activeCamera)
activeCamera
- Kameraobjekt, das als aktive Kamera gesetzt werden soll.public void beleuchtungAktivieren(boolean pBeleuchtungAn)
pBeleuchtungAn
- Wenn true
, dann wird die Beleuchtung
angeschaltet, wenn false
, dann wird sie deaktiviert.public void setzeBlickpunkt(double pX, double pY, double pZ)
pX
- x-Koordinate des BlickpunktspY
- y-Koordinate des BlickpunktspZ
- z-Koordinate des Blickpunktspublic void setzeStandardOben()
public void setzePosition(double pX, double pY, double pZ)
pX
- x-Koordinate der PositionpY
- y-Koordinate der PositionpZ
- z-Koordinate der Positionpublic void dreheUmXAchse(double pWinkel)
pWinkel
- Drehwinkel in Gradpublic void dreheUmYAchse(double pWinkel)
pWinkel
- Drehwinkel in Gradpublic void drehe(double pWinkel, double pOrtX, double pOrtY, double pOrtZ, double pRichtX, double pRichtY, double pRichtZ) throws IllegalArgumentException
Die Achse wird dabei durch die Vektorgleichung
beschrieben.
Das bedeutet: Stellt man sich eine Linie ausgehend vom Ursprung (0,0,0)
zu (pRichtX, pRichtY, pRichtZ)
vor, so verläuft die zu beschreibende
Rotationsachse parallel zu dieser Strecke durch den Punkt
(pOrtX, pOrtY, pOrtZ)
. (pRichtX, pRichtY, pRichtZ)
geben daher
lediglich die Richtung der Achse an.
pWinkel
- Winkel der Rotation in GradpOrtX
- x-Koordinate des Ortsvektors pOrt
pOrtY
- y-Koordinate des Ortsvektors pOrt
pOrtZ
- z-Koordinate des Ortsvektors pOrt
pRichtX
- x-Koordinate des Richtungsvektors pRicht
pRichtY
- y-Koordinate des Richtungsvektors pRicht
pRichtZ
- z-Koordinate des Richtungsvektors pRicht
IllegalArgumentException
public void setzeVollbildmodus(boolean pVollbild)
DEFAULT_WINDOW_MODE=NEWT
gibt es einen
echten Vollbildmodus. Ist die Einstellung auf AWT
gesetzt,
so wird das Fenster maximiert angezeigt, aber mit Fensterdekoration des
Fenstermanagers. Es bleibt dann verschiebbar.pVollbild
- Wenn true
, so wird der Vollbildmodus aktiviert,
wenn false
, dann wird auf Fenstermodus
geschaltet.public void zeigeAchsen(double pAchsenlaenge)
pAchsenlaenge
- Länge für die Koordinatenachsenpublic void zeigeAchsen(boolean pZeigeAchsen)
pZeigeAchsen
- Wenn true
, dann wird die Achsendarstellung
aktiviert, wenn false
, so wird sie deaktiviert.zeigeAchsen(double)
public void zeigeBlickpunkt(boolean pBlickpunktZeichnen)
pBlickpunktZeichnen
- Wenn true
, dann wird der Blickpunkt im Kamerafenster
angezeigt, wenn false
, dann nicht.public void setzeGittermodelldarstellung(boolean pZeigeGitter)
pZeigeGitter
- Wenn true
, so werden alle beweglichen Objekte als
Drahtgittermodell dargestellt, wenn false
werden
sie gemäß ihrer eigenen Konfiguration dargestellt.public boolean istDrahtgittermodell()
true
, wenn die Drahtgitterdarstellung für alle
Objekte gewählt ist, sonst false
.public void vor(double pSchrittweite)
pSchrittweite
- Schrittweite der Bewegung. Die Schrittweite ist in der Maßeinheit
des Koordinatensystems der 3D-Welt.public GLObjekt gibObjekt(int pFensterX, int pFensterY)
GLObjekt
zurück, was im Kamerafenster an der gegebenen
Position ist.
Dabei beziehen sich die Koordinaten der Parameter auf
das Kamerafenster — hier hat die linke obere Ecke die Koordinaten
(0|0)
. Maus
-Objekte liefern ebenfalls Kamerafenster-
Koordinaten mittels der Methoden gibX
und gibY
zurück, so dass man auf diese Art und Weise einen einfachen Objekt-
Selektionsmechanismus mit der Maus realisieren kann:
if(maus.linksklick()) GLObjekt selectedObject = kamera.gibObjekt(maus.gibX(), maus.gibY());
Liegen an der Mausposition mehrere Objekte hintereinander, so wird das vorderste
Objekt zurückgegeben. Die Methode liefert null
, wenn kein Objekt
an der Stelle liegt.
pFensterX
- x-Koordinate, an der nach einem GLObjekt gesucht wirdpFensterY
- y-Koordinate, an der nach einem GLObjekt gesucht wirdGLObjekt
-Objekt oder null
public double gibBlickpunktX()
public double gibBlickpunktY()
public double gibBlickpunktZ()
public int gibBreite()
public int gibHoehe()
public double gibX()
public double gibY()
public double gibZ()
public void bildschirmfoto()
public void bildschirmfoto(String pDateiname)
pDateiname
- Dateiname des Screenshots