Klasse: Bild (abstrakt)
	Vererbung:
		-
	Verantwortlichkeiten:
		- Speicherung der Daten in einem 2d-Array
		- Speicherung der Farbdaten jedes einzelnen Pixels
	Kollaborationen:
		- Der Anwender will ein Bild öffnen und speichern können, ohne sich darüber Gedanken machen zu müssen

Klasse: Bilddimensionen
	Vererbung:
        - Bild
	Verantwortlichkeiten:
		- Wissen über die Größe des Bildes
	Kollaborationen:
        - Nutzer kann die Anzahl der Pixel in x und y Richtung abfragen

Klasse: RasterImage
	Vererbung:
		- Bild
	Verantwortlichkeiten:
		- Darstellung des gezeichneten Bildes
		- Speicherung der Daten in einem 2d-Array
		- Speicherung der Farbdaten jedes einzelnen Pixels (je ein Bit pro Pixel)
	Kollaborationen:
		- Der Anwender will ein Bild öffnen, bearbeiten und speichern können, ohne sich darüber Gedanken machen zu müssen

Klasse: ShapedImage
	Vererbung:
		- RasterImage
	Verantwortlichkeiten:
		- Speicherung der Daten in einem 2d-Array
		- Speicherung der Farbdaten jedes einzelnen Pixels -> Transparenz
		- Speicherung der Polygondaten
		- Darstellung der Transparenz außerhalb des Polygons und des Bildes innerhalb des Polygons
	Kollaborationen:
		- Der Anwender will ein Bild öffnen, bearbeiten und speichern können, ohne sich darüber Gedanken machen zu müssen

Klasse: Tool (abstrakt)
	Vererbung:
        - 
	Verantwortlichkeiten:
		- Name, Beschreibung, Tooltip und Icon des Tools speichern
	    - Veränderung der Pixeldaten des Bildes
	Kollaborationen:
        - Der Anwender will ein Bild bearbeiten können

Klasse: Set-Color-Tool (abstrakt)
    Vererbung:
        - Tool
    Verantwortlichkeiten:
		- Verwalten der Farbcodierung und deren Darstellung
        - Bearbeiten des Bildes durch Verändern von Farbcodes an bestimmten Pixeln
		- Darstellung der Farbpallette
    Kollaborationen:
    	- Der Anwender möchte das Bild farblich gezielt verändern
		- Der Anwender möchte die Farbwerte der einzelnen Pixel abfragen

Klasse: Un-/Redo-Tool
	Vererbung:
    	- Set-Color-Tool
	Verantwortlichkeiten:
		- 20 Operationen speichern
    	- die letzten (bis zu 10) Änderungen rückgängig machen
    	- die letzten (bis zu 10) Undo-Aufforderungen rückgängig machen
    	- sobald gezeichnet wird, werden alle Redo-Einträge gelöscht
	Kollaborationen:
    	- Der Anwender möchte eine Tool Änderung rückgängig machen
    	- Der Anwender möchte eine Undo Aktivität rückgängig machen

Klasse: Dreh-Tool
	Vererbung:
        - Tool
	Verantwortlichkeiten:
		- Rotation des angezeigten Bildes
        - Ändern der Farbwerte, so dass sie mit dem rotierten Bild übereinstimmen
	Kollaborationen:
        - Möglichkeit für den Nutzer das Bild zu drehen
		- Der Anwender möchte das Bild gedreht speichern

Klasse: Size-Tool
	Vererbung:
        - Tool
	Verantwortlichkeiten:
		- Vergrößerung des Bildes (Werte)
        - Verkleinerung des Bildes (Werte)
		- Skalieren
	Kollaborationen:
        - Der Anwender möchte die Auflösung des Bildes vergrößern
        - Der Anwender möchte die Auflösung des Bildes verkleinern


Klasse: Merge-Tool
	Vererbung:
        - Tool
	Verantwortlichkeiten:
        - Das Zusammenfügen zweier Bilder in eine neue Datei (Abspeichern der neuen Farbwerte)
        - Das Zusammenfügen übereinander oder nebeneinander (wenn Alpha-Kanal vorhanden)
	Kollaborationen:
        - Der Anwender möchte ein Bild neben einem anderen Bild speichern
        - Der Anwender möchte ein Bild über einem anderen speichern

Klass: View-Tool(abstrakt)
	Vererbung:
		-Tool
	Verantwortlichkeiten:
		-Verändern der Ansicht des Bilder
	Kollaborationen:
		-Der User möchte das Bild anders Anzeigen lassen

Klasse: Zoom-Tool
	Vererbung:
        - View-Tool
	Verantwortlichkeiten:
		- Vergrößerung des Bildes (Ansicht)
        - Verkleinerung des Bildes (Ansicht)
		- Zoomen
	Kollaborationen:
		- Der Anwender möchte in ein Bild zoomen
        - Der Anwender möchte aus dem Bild heraus zoomen

Klasse: Merge-View-Tool
	Vererbung:
        - View-Tool
	Verantwortlichkeiten:
		- Das Anzeigen zweier Bilder in der Datei
	Kollaborationen:
        - Der Anwender möchte ein Bild neben einem anderen Bild anzeigen
        - Der Anwender möchte ein Bild über einem anderen anzeigen lassen

Klasse: Pen-Tool
    Vererbung:
    	- Set-Color-Tool
    Verantwortlichkeiten:
		- Speicherung des eingestellten Radius
    	- Setzen von Pixelwerten um die Cursor-Stelle in einen auswählbaren Radius in einer auswählbaren Farbe
    Kollaborationen:
    	- Der Anwender möchte Freihand in einer freiwählbaren Farbe in einem freiwählbaren Radius zeichnen, ohne Beschränkung innerhalb des Bildes

Klasse: FloodFill-Tool
    Vererbung:
    	- Set-Color-Tool
    Verantwortlichkeiten:
    	- alle Pixel in einer Äquivalenzklasse zum aktuellen Pixel in eine freiwählbare Farbe einfärben
    Kollaborationen:
    	- Der Anwender möchte eine Fläche einer Farbe komplett umfärben

Klasse: Plain-Tool
    Vererbung:
    	- Set-Color-Tool
    Verantwortlichkeiten:
    	- alle Pixel des Bildes in eine Farbe ändern
    Kollaborationen:
    	- Der Anwender möchte das Bild einfarbig einfärben

Klasse: Formen-Tool (abstrakt)
    Vererbung:
    	- Set-Color-Tool
    Verantwortlichkeiten:
    	- Zeichnen eines geometrischen Primitives
		- vereinheitlichte Darstellung der Formauswahl und Ränder
    Kollaborationen:
    	- Der Anwender möchte ein/e Rechteck/Linie oder eine konvexe Form zeichnen

Klasse: Linien-Tool
    Vererbung:
    	- Formen-Tool
    Verantwortlichkeiten:
    	- Zeichnen einer Linie in einer wählbaren Dicke und Farbe
    	- Die Linie kann durchgängig, gestrichelt oder gepunktet gezeichnet werden
    Kollaborationen:
    	- Der Anwender möchte eine durchgezogene Linie zeichnen
    	- Der Anwender möchte eine gestrichelte Linie zeichnen
    	- Der Anwender möchte eine gepunktete Linie zeichnen

Klasse: Rechteck-Tool
    Vererbung:
    	- Formen-Tool
    Verantwortlichkeiten:
    	- Aufspannen eines Rechtecks zwischen zwei Punkten, der Rand und die Fläche sind in der Farbe frei wählbar,
    	  diese Wählbarkeit ist separat vom anderen Zustand möglich
		- Der Rand kann in der Dicke eingestellt werden
    Kollaborationen:
    	- Der Anwender möchte ein Rechteck zeichnen, die innere Fläche soll Transparenz speichern
    	- Der Anwender möchte ein Rechteck zeichnen, die innere Fläche soll eine Farbe haben, der Rand soll eine gewisse Breite und Farbe haben

Klasse: Konvexe-Form-Tool
    Vererbung:
    	- Formen-Tool
    Verantwortlichkeiten:
    	- Aufspannen einer konvexen Form mittels Punkten (max 100)
    	- Die konvexe Form hat einen Rand und eine interne Fläche, deren Farbe separat gewählt werden kann
    	- Der Rand kann im Bezug auf seine Dicke eingestellt werden
   	Kollaborationen:
    	- Der Anwender möchte ein n-Eck zeichnen, dazu berührt er auf dem Bildschirm n-Punkte und am Schluss den Anfangspunkt (10pxl Radius?)
    	- In der berührten Reihenfolge werden Linien gezogen, die die Form aufspannen und je nach Einstellungen wird der Rand und die interne Fläche dargestellt

Klasse: Polygon-Form-Tool
	Vererbung:
		- Formen-Tool
	Verantwortlichkeiten:
		- Aufspannen eines Polygons über das Bild
		- Das Polygon hat einen Rand und eine interne Fläche, deren Farbe separat gewählt werden kann
    	- Der Rand kann im Bezug auf seine Dicke eingestellt werden
	Kollaborationen:
		- Der Anwender möchte ein Polygon zeichnen

Klasse: Kreis-Tool
	Vererbung:
		- Set-Color-Tool
	Verantwortlichkeiten:
		- Erstellen einer Kreisform in dem man den Mittelpunkt bestimmt und zwei Radien festlegen kann (NS und WO Radius)
		- Die Dicke des Randes des Kreises ist freiwählbar, sowie die Art des Randes (Gepunktet, etc.), genauso wie die Farbe des Kreises und des Randes
	Kollaborationen:
		- Der Anwender möchte einen beliebigen Kreis und eine beliebige Ellipse zeichnen können

Klasse: Selection-Tool(abstrakt)
	Vererbung:
		-Tool
	Verantwortlichkeiten:
		-Auswählen von einem Bereich(beliebiger Bereich)
	Kollaborationen:
		- Der Anwender möchte ein Bereich Auswählen (quadratisch)

Klasse: Cut-Tool
	Vererbung:
		-Selection-Tool
	Verantwortlichkeiten:
		-Auswählen von Bildern und das ausschneiden dieser
	Kollaborationen
		- Der Anwender möchte ein Bild auswählen und bewegen oder löschen

Klasse: Korrektur-Tool(abstrakt)
	Vererbung:
		-Tool
	Verantwortlichkeiten:
		-Verändern von Bild Daten (Korrektur)
	Kollaborationen:
		-Der Anwender möchte ein Bild verändern und dies mit Korrektur

Klasse: Helligkeits-Tool
	Vererbung:
		Korrektur-Tool
	Verantwortlichkeiten
		Verändert die Helligkeits Werte
	Kollaboration:
		Der Anwender möchte das Bild verdunkeln oder aufhellen

Klasse: Farbton-Tool
	Vererbung:
		Korrektur-Tool
	Verantwortlichkeiten:
		Verändert die Sättigung von Farbdaten
	Kollaborationen:
		Der User möchte ein Bild sättigen oder verblassen

Klasse: Gradations-Tool
	Vererbung:
		Korrektur-Tool:
	Verantwortlichkeiten:
		Setzen einer Gradationskurve
	Kollaboration:
		Der User möchte eine Gradationskurve eines Farbschemas Erstellen

Klasse: 3D-Objekt
	Vererbung:
		-
	Verantwortlichkeiten:
		-Wissen über die Vertices und das Managen dieser
	Kollaborationen:
		-Der User möchte ein 3D Objekt laden

Klassen: 3D-Inspector
	Vererbung:
		-
	Verantwortlichkeiten:
		-Darstellen eines 3D Objekts und der Projezierung (RayTracer)
	Kollaborationen:
		-Der User möchte ein 3D Objekt auf das Layer projezieren

Klasse: Layer
	Vererbung:
		-
	Verantwortlichkeiten:
		-Darstellung eines Bildes und Sichtbarkeit auf sich selbst
	Kollaborationen:
		-Der User möchte ein Bild auf einem Layer darstellen

Klasse: Layer-Manager
	Vererbung:
		-
	Verantwortlichkeiten:
		-Sichtbarkeit und Darstellung der Bilder auf verschiedenen Layern
		-Projektion auf ein Bild
	Kollaborationen:
		-Der User möchte ein Layer über das andere schieben
		-Der User möchte die Layer löschen
		-neues Layer erstellen
	


	
	