gishur.gui
Interface ScreenTransformation

All Superinterfaces:
AffineTransformable
All Known Implementing Classes:
ScreenXTransformation

public interface ScreenTransformation
extends AffineTransformable

Eine ScreenTransformation dient dazu, Objekte in Bildschirmkoordinaten umzurechnen und umgekehrt.

Version:
1.0
Author:
Thomas Wolf
See Also:
VirtualScreen, Layer.setTransformation(gishur.gui.ScreenTransformation)

Method Summary
 boolean drawable(java.lang.Object O)
          Liefert true, falls, das Object innerhalb des darstellbaren Bereiches liegt (darstellbarer Bereich !
 java.lang.Object getStatus()
          Liefert ein Objekt mit dem Transformationsstatus.
 void resetTransform()
          Setzt die Transformation auf 1:1 Skalierung.
 void rotate(double angle)
          Dreht das Objekt um seinen Mittelpunkt mit dem Winkel angle.
 void rotate(java.awt.Point center, double angle)
          Dreht das Objekt um den Punkt center mit dem Winkel angle.
 void rotate(java.awt.Point center, java.awt.Point start, java.awt.Point end)
          Dreht das Objekt um den Punkt center mit dem Winkel start-center-end.
 void scale(double xscale, double yscale)
          Skaliert das Objekt so mit xscale und yscale.
 void scale(java.awt.Point center, double xscale, double yscale)
          Skaliert das Objekt mit xscale und yscale so, daß der Punkt middle davon unberührt bleibt.
 void setStatus(java.lang.Object status)
          Stellt den im Objekt status gespeicherten Status der Transformation wieder her.
 void setVirtualScreen(VirtualScreen vscreen)
          Weist der ScreenTransformation einen virtuellen Bildschirm zu.
 void transform(double m00, double m01, double m02, double m10, double m11, double m12)
          Transformiert das Objekt mit der übergebenen Transformationsmatrix.
 java.awt.Point[] transform(java.lang.Object O)
          Transformiert das Object O in Bildschirmkorrdinaten.
 java.lang.Object transform(java.awt.Point[] points)
          Transformiert die Punktliste in ein Objekt.
 boolean transformObjectFromPseudoScreen(java.lang.Object O)
          Macht die durch transformObjectToPseudoScreen auf das Objekt O angewandte Transformation wieder rückgängig.
 boolean transformObjectToPseudoScreen(java.lang.Object O)
          Transformiert das Objekt O nach Möglichkeit (umkehrbar!)
 java.lang.Object transformPoint(int x, int y)
          Transformiert den Punkt (x,y) in ein Objekt.
 java.awt.Point transformPoint(java.lang.Object O)
          Transformiert das Objekt O in einen Punkt in Bildschirmkoordinaten.
 java.lang.Object transformVector(int x, int y)
          Transformiert den Vektor in Weltkoordinaten, d.h. lediglich Länge und Richtung können sich ändern, der Vektor wird jedoch nicht verschoben.
 java.awt.Point transformVector(java.lang.Object O)
          Transformiert den Vektor in Bildschirmkoordinaten, d.h. lediglich Länge und Richtung können sich ändern, der Vektor wird jedoch nicht verschoben.
 void translate(int dx, int dy)
          Verschiebt das Objekt um den Vektor (dx,dy).
 void zoomTo(java.awt.Rectangle border, java.awt.Rectangle source, boolean maintain_aspect_ration)
          Skaliert so, daß das Rechteck source im Rechteck border möglichst den gesamten Platz einnimmt.
 

Method Detail

setVirtualScreen

public void setVirtualScreen(VirtualScreen vscreen)
Weist der ScreenTransformation einen virtuellen Bildschirm zu.

transform

public java.awt.Point[] transform(java.lang.Object O)
Transformiert das Object O in Bildschirmkorrdinaten. Falls die ScreenTransformation das Objekt nicht konvertieren kann, sollte sie eine ScreenTransformException auslösen.
Parameters:
zu - konvertierendes Objekt.

transform

public java.lang.Object transform(java.awt.Point[] points)
Transformiert die Punktliste in ein Objekt. Falls die ScreenTransformation die Punktliste nicht konvertieren kann, sollte sie eine ScreenTransformException auslösen.
Parameters:
zu - konvertierende Punktliste.

transformPoint

public java.lang.Object transformPoint(int x,
                                       int y)
Transformiert den Punkt (x,y) in ein Objekt.
Parameters:
x,y - Koordinaten
Returns:
Objekt

transformPoint

public java.awt.Point transformPoint(java.lang.Object O)
Transformiert das Objekt O in einen Punkt in Bildschirmkoordinaten.
Parameters:
O - Objekt
Returns:
Punkt

transformVector

public java.lang.Object transformVector(int x,
                                        int y)
Transformiert den Vektor in Weltkoordinaten, d.h. lediglich Länge und Richtung können sich ändern, der Vektor wird jedoch nicht verschoben.
Parameters:
x,y - Vektor
Returns:
Objekt

transformVector

public java.awt.Point transformVector(java.lang.Object O)
Transformiert den Vektor in Bildschirmkoordinaten, d.h. lediglich Länge und Richtung können sich ändern, der Vektor wird jedoch nicht verschoben.
Parameters:
O - Vektor-Objekt
Returns:
Point

drawable

public boolean drawable(java.lang.Object O)
Liefert true, falls, das Object innerhalb des darstellbaren Bereiches liegt (darstellbarer Bereich != sichtbarer Bereich!!!).
Parameters:
O - zu testendes Objekt
Returns:
true, falls darstellbar

transform

public void transform(double m00,
                      double m01,
                      double m02,
                      double m10,
                      double m11,
                      double m12)
Transformiert das Objekt mit der übergebenen Transformationsmatrix.
Specified by:
transform in interface AffineTransformable
Parameters:
m00,m01,m02 - erste Zeile der Transformationsmatrix
m10,m11,m12 - zweite Zeile der Transformationsmatrix

scale

public void scale(java.awt.Point center,
                  double xscale,
                  double yscale)
Skaliert das Objekt mit xscale und yscale so, daß der Punkt middle davon unberührt bleibt.
Specified by:
scale in interface AffineTransformable
Parameters:
middle - Mittelpunkt, der nicht verschoben werden soll
xscale - Skalierung der X-Achse
yscale - Skalierung der Y-Achse

scale

public void scale(double xscale,
                  double yscale)
Skaliert das Objekt so mit xscale und yscale.
Parameters:
xscale - Skalierung der X-Achse
yscale - Skalierung der Y-Achse

resetTransform

public void resetTransform()
Setzt die Transformation auf 1:1 Skalierung.

rotate

public void rotate(java.awt.Point center,
                   double angle)
Dreht das Objekt um den Punkt center mit dem Winkel angle.
Specified by:
rotate in interface AffineTransformable
Parameters:
center - Drehpunkt
angle - Drehwinkel

rotate

public void rotate(java.awt.Point center,
                   java.awt.Point start,
                   java.awt.Point end)
Dreht das Objekt um den Punkt center mit dem Winkel start-center-end.
Specified by:
rotate in interface AffineTransformable
Parameters:
center - Drehpunkt
start - Startpunkt
end - Endpunkt

rotate

public void rotate(double angle)
Dreht das Objekt um seinen Mittelpunkt mit dem Winkel angle.
Parameters:
angle - Drehwinkel

translate

public void translate(int dx,
                      int dy)
Verschiebt das Objekt um den Vektor (dx,dy).
Specified by:
translate in interface AffineTransformable
Parameters:
(dx,dy) - Verschiebungsvektor

zoomTo

public void zoomTo(java.awt.Rectangle border,
                   java.awt.Rectangle source,
                   boolean maintain_aspect_ration)
Skaliert so, daß das Rechteck source im Rechteck border möglichst den gesamten Platz einnimmt. Ist maintain_aspect_ration true, so wird das Seitenverhältnis beibehalten.
Parameters:
rect - neuer Sichtbereich in aktuellen Bildschirmkoordinaten
maintain_aspect_ration - falls true wird das Seitenverhältnis beibehalten

getStatus

public java.lang.Object getStatus()
Liefert ein Objekt mit dem Transformationsstatus.
Returns:
Status der Transformation

setStatus

public void setStatus(java.lang.Object status)
Stellt den im Objekt status gespeicherten Status der Transformation wieder her.
Parameters:
status - Statusobjekt

transformObjectToPseudoScreen

public boolean transformObjectToPseudoScreen(java.lang.Object O)
Transformiert das Objekt O nach Möglichkeit (umkehrbar!) in ein Koordinatensystem, das folgende Eigenschaften hat:
Parameters:
O - zu transformierendes Object
Returns:
true, falls Objekt transformiert werden konnte

transformObjectFromPseudoScreen

public boolean transformObjectFromPseudoScreen(java.lang.Object O)
Macht die durch transformObjectToPseudoScreen auf das Objekt O angewandte Transformation wieder rückgängig.
Parameters:
O - Objekt
Returns:
true, falls Rücktransformation erfolgreich.