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