diff --git a/Abgabe/Abgabe 1/Req0001/Req_0001A.txt b/Abgabe/Abgabe 1/Req0001/Req_0001A.txt
new file mode 100644
index 0000000..ce4e8a4
--- /dev/null
+++ b/Abgabe/Abgabe 1/Req0001/Req_0001A.txt
@@ -0,0 +1,58 @@
+Req-ID:
+ 0001A
+Req-Type:
+ Nicht-Funktional
+Events/UCs:
+ -Speicherung eines Bildes
+ -Pixel wird mit einem Byte dargestellt
+ -Overhead für Metainformationen erlaubt
+ -Keine seperate abhandlung von "RasterImage" und "ShapedImage"
+Description:
+ -Ein Bild wird mit maximal einem Byte pro Pixel kodiert
+ -Repräsentation im folgenden:
+ 0b0000'0000, wobei die 0 nach dem Prefix 0b als Bit 7 Indiziert ist, und jedes rechtere Bit
+ davon um eins Dekrementiert Indiziert wird
+ -Minimale RGB-A Darstellung des Bildes mittel einem Byte
+ -Codierungsmöglichkeit nach folgendem Schema:
+ -Bit 7,6 werden Benutz um den Alpha-Kanal zu codieren:
+ -0b00 -> Bit ist 100% Transparent (Transparent)
+ -0b01 -> Bit ist 66% Transparent
+ -0b10 -> Bit ist 33% Transparent
+ -0b11 -> Bit ist 0% Transparent
+ -Bit 5,4 werden Benutz um den Rot-Kanal zu codieren:
+ -0b00 -> Bit ist 0% Rot (Schwarz)
+ -0b01 -> Bit ist 33% Rot
+ -0b10 -> Bit ist 66% Rot
+ -0b11 -> Bit ist 100% Rot (Rot)
+ -Bit 3,2 werden Benutz um den Grün-Kanal zu codieren:
+ -0b00 -> Bit ist 0% Grün (Schwarz)
+ -0b01 -> Bit ist 33% Grün
+ -0b10 -> Bit ist 66% Grün
+ -0b11 -> Bit ist 100% Grün (Grün)
+ -Bit 1,0 werden Benutz um den Blau-Kanal zu codieren:
+ -0b00 -> Bit ist 0% Blau (Schwarz)
+ -0b01 -> Bit ist 33% Blau
+ -0b10 -> Bit ist 66% Blau
+ -0b11 -> Bit ist 100% Blau (Blau)
+ Definitionen der benutzen Farben nach RGB-A Modell:
+ Schwarz (0b0000'0000, 0b0000'0000, 0b0000'0000, 0b1111'1111)
+ Rot (0b1111'1111, 0b0000'0000, 0b0000'0000, 0b1111'1111)
+ Grün (0b0000'0000, 0b1111'1111, 0b0000'0000, 0b1111'1111)
+ Blau (0b0000'0000, 0b0000'0000, 0b1111'1111, 0b1111'1111)
+ Transparent (0b0000'0000, 0b0000'0000, 0b0000'0000, 0b0000'0000)
+ -verschiedene Transparenzstufen, bis auf 0b11, werden als einzelne Farbstufen gezählt: 2^(8)-1 verschiede Farbstufen
+Originator:
+ Jonas Mucke
+Fit Criterion:
+ -Darstellung von mindestens 250 paarweise verschiedenen Farbstufen
+ -Darstellung einen transparenten Bits (Alpha Kanal = 0b0000'0000)
+ -Verarbeitungsmöglichkeit für 2^10 Pixel in unter 0.1 Sekunde beim Einlesen und Speichern
+Priority:
+ 100
+Support Material:
+ Ubungsblat_01.pdf
+Conflicts:
+ Noch keine Einigung auf Farbkodierung (0001A-0001C)-> Rücksprache mit dem Kunden
+ (Ein Byte deckt einen sehr kleinen Farbbereich ab und ist nicht sehr elegant -> Rücksprache mit dem Kunden ob 4 Byte akzeptabel wären)
+History:
+ -Erstellt am 30.10.2019 um 21:59, von Jonas Mucke
diff --git a/Abgabe/Abgabe 1/Req0001/Req_0001B.txt b/Abgabe/Abgabe 1/Req0001/Req_0001B.txt
new file mode 100644
index 0000000..906b810
--- /dev/null
+++ b/Abgabe/Abgabe 1/Req0001/Req_0001B.txt
@@ -0,0 +1,35 @@
+Req-ID:
+ 0001B
+Req-Type:
+ Nicht-Funktional
+Events/UCs:
+ -Speicherung eines Bildes
+ -Pixel wird mit einem Byte dargestellt
+ -Overhead für Metainformationen erlaubt
+ -Keine seperate abhandlung von "RasterImage" und "ShapedImage"
+Description:
+ -Ein Bild wird mit maximal einem Byte pro Pixel kodiert
+ -Repräsentation im folgenden:
+ 0b0000'0000, wobei die 0 nach dem Prefix 0b als Bit 7 Indiziert ist, und jedes rechtere Bit
+ davon um eins Dekrementiert Indiziert wird
+ -Codierungsmöglichkeit nach folgendem Schema:
+ -0b0000'0000, wird als Transparents-Codierung definiert
+ -Alle weiteren Binären Codierung werden per Hand, in Abstimmung mit dem Kunden und dem Team,
+ einer Farbe zugeordnet -> 2^(8)-1 mögliche Farben + Transparenz
+ Definitionen der benutzen Farben nach RGB-A Modell:
+ Transparent (0b0000'0000, 0b0000'0000, 0b0000'0000, 0b0000'0000)
+Originator:
+ Jonas Mucke
+Fit Criterion:
+ -Darstellung von mindestens 250 paarweise verschiedenen Farbstufen
+ -Darstellung einen transparenten Bits (Alpha Kanal = 1)
+ -Verarbeitungsmöglichkeit für 2^10 Pixel in unter 0.1 Sekunde beim Einlesen und Speichern
+Priority:
+ 100
+Support Material:
+ Ubungsblat_01.pdf
+Conflicts:
+ Noch keine Einigung auf Farbkodierung (0001A-0001C)-> Rücksprache mit dem Kunden
+ (Ein Byte deckt einen sehr kleinen Farbbereich ab und ist nicht sehr elegant -> Rücksprache mit dem Kunden ob 4 Byte akzeptabel wären)
+History:
+ -Erstellt am 30.10.2019 um 21:58, von Jonas Mucke
diff --git a/Abgabe/Abgabe 1/Req0001/Req_0001C.txt b/Abgabe/Abgabe 1/Req0001/Req_0001C.txt
new file mode 100644
index 0000000..b847c41
--- /dev/null
+++ b/Abgabe/Abgabe 1/Req0001/Req_0001C.txt
@@ -0,0 +1,64 @@
+Req-ID:
+ 0001C
+Req-Type:
+ Nicht-Funktional
+Events/UCs:
+ -Speicherung eines Bildes
+ -Pixel wird mit einem Byte dargestellt
+ -Overhead für Metainformationen erlaubt
+ -Keine seperate abhandlung von "RasterImage" und "ShapedImage"
+Description:
+ -Ein Bild wird mit maximal einem Byte pro Pixel kodiert
+ -Repräsentation im folgenden:
+ 0b0000'0000, wobei die 0 nach dem Prefix 0b als Bit 7 Indiziert ist, und jedes rechtere Bit
+ davon um eins Dekrementiert Indiziert wird
+ -Die Bits 7,6 werden benutzt um einen Farbchannel zu setzen. Bei einem Farbchannel handelt es sich um einen
+ Schalter, welcher zwischen den Channeln "Rot", "Grün", "Blau", "Grau/Alpha" Handelt.
+ Wenn ein Channel gesetzt ist, für ein Pixel, so wird dieses Pixel nur mittels einer Farbstufe dieses Channels
+ Dargestellt.
+ -Codierungsmöglichkeit nach folgendem Schema:
+ -0b00XX'XXXX entspricht dem "Grau/Alpha" Channel
+ 0b0000'0000 entspricht dem Transparenzwert 100% (Transparent)
+ 0b0000'0001 enstpricht den Farbwert Schwarz (Schwarz)
+ 0b0011'1111 enstpricht dem Farbwert Weiß (Weiß)
+ Dazwischen exestiert eine uniform partitionierte Farbkurve
+ -0b01XX'XXXX entspricht dem "Rot" Channel:
+ 0b0111'1111 entspricht dem intensivstem Rot(Rot)
+ 0b0100'0000 enstpricht dem blasesten Rot(Schwarz-Rot)
+ Dazwischen exestiert eine uniform partitionierte Farbkurve
+ -0b10XX'XXXX entspricht dem "Grün" Channel:
+ 0b1011'1111 entspricht dem intensivstem Grün (Grün)
+ 0b1000'0000 enstpricht dem blasesten Grün(Schwarz-Grün)
+ Dazwischen exestiert eine uniform partitionierte Farbkurve
+ -0b11XX'XXXX entspricht dem "Blau" Channel:
+ 0b1111'1111 entspricht dem intensivstem Blau (Blau)
+ 0b1100'0000 enstpricht dem blasesten Blau(Schwarz-Blau)
+ Dazwischen exestiert eine uniform partitionierte Farbkurve
+ Definitionen der benutzen Farben nach RGB-A Modell:
+ Weiß (0b1111'1111, 0b1111'1111, 0b1111'1111, 0b1111'1111)
+ Schwarz (0b0000'0000, 0b0000'0000, 0b0000'0000, 0b1111'1111)
+ Rot (0b1111'1111, 0b0000'0000, 0b0000'0000, 0b1111'1111)
+ Grün (0b0000'0000, 0b1111'1111, 0b0000'0000, 0b1111'1111)
+ Blau (0b0000'0000, 0b0000'0000, 0b1111'1111, 0b1111'1111)
+ (Schwarz-Rot) (0b0000'0001, 0b0000'0000, 0b0000'0000, 0b1111'1111)
+ (Schwarz-Grün) (0b0000'0000, 0b0000'0001, 0b0000'0000, 0b1111'1111)
+ (Schwarz-Blau) (0b0000'0000, 0b0000'0000, 0b0000'0001, 0b1111'1111)
+ Transparent (0b0000'0000, 0b0000'0000, 0b0000'0000, 0b0000'0000)
+ -Nach diesem Prinzip können nur die Grundfarben der Additiven Farbdarstellung projeziert werden,
+ dies hat ein sehr bunt beschränktes Farbshema zur folgendem
+ -Es können insgesamt [3*2^(6)]+[2^(6)-1] = 2^(8)-1 Farbstufen dargestellt werden + Transparenz
+Originator:
+ Jonas Mucke
+Fit Criterion:
+ -Darstellung von mindestens 250 paarweise verschiedenen Farbstufen
+ -Darstellung einen transparenten Bits (Alpha Kanal = 1)
+ -Verarbeitungsmöglichkeit für 2^10 Pixel in unter 0.1 Sekunde beim Einlesen und Speichern
+Priority:
+ 100
+Support Material:
+ Ubungsblat_01.pdf
+Conflicts:
+ Noch keine Einigung auf Farbkodierung (0001A-0001C)-> Rücksprache mit dem Kunden
+ (Ein Byte deckt einen sehr kleinen Farbbereich ab und ist nicht sehr elegant -> Rücksprache mit dem Kunden ob 4 Byte akzeptabel wären)
+History:
+ -Erstellt am 30.10.2019 um 22:04, von Jonas Mucke
diff --git a/Abgabe/Abgabe 1/Req0002/Req_0002.txt b/Abgabe/Abgabe 1/Req0002/Req_0002.txt
new file mode 100644
index 0000000..dc98763
--- /dev/null
+++ b/Abgabe/Abgabe 1/Req0002/Req_0002.txt
@@ -0,0 +1,64 @@
+Req-ID:
+ 0002
+Req-Type:
+ Funktional
+Events/UCs:
+ -Bearbeitung des Bildes mit einer Betriebssystem unterstützen Eingabemöglichkeit, zum Beispiel Maus oder Stift bzw. Ähnliche
+ -Bearbeitung mittels verschiedener Zeichen-Tools
+ -Freiwählbare Farbe aus dem möglichen Farbbereich
+Description:
+ -Ein Farbwert, auch Transparent, welcher durch die genutzte Codierung (siehe Req_0001) darstellbar sein. Dies soll mittels Tools
+ gesetzt werden können, wobei diese spezifizieren was "gesetzt" bedeutet.
+ -Tools:
+ Pinsel:
+ -Der Pinsel ist ein Tool, welches um seinen Mittelpunkt alles in einem gewissen Pixelradius einfärbt.
+ Der Pixelradius geht dabei von 1-Pixel bis zu 10-Pixel.
+ Formen:
+ -Linie:
+ Das Tool Formen (Linie), soll es einem ermöglichen eine Linie in der gewählten Farbe zwischen 2 Punkten zu
+ ziehen. Dabei wird am ersten Punkt angesetzt und zum Zielpunkt gezogen, dabei verändert sich die Linie live.
+ Sobald das Eingabegerät getogglet wird, so wird die aktuelle Stelle als Endpunkt angenommen. Zwischen
+ Start und Endpunkt wird die Linie gezeichnet.
+ Es exestieren verschiedene Linien-Formen:
+ -durchgezogene Linie (eine Linie ohne Lücken)
+ -gestrichelte Linie (auf der Linie werden nur Striche in regelmäßigen Abständen gezeichnet)
+ -gepunktete Linie (auf der Linie wird punktweise zwischen Farbig und Transparent alterniert)
+ Die Linie kann mittels dem Breite-Attribut verändert werden (Breite zwischen 1 und 10 Pixel)
+ -Rechteck:
+ Das Tool Formen (Rechteck), soll es einem ermöglichen ein Rechteck in ein einer gewählten Farbe aufzuspannen.
+ Dabei wird am ersten Punkt angesetzt und zum Zielpunkt gezogen. Dabei verändert sich das Rechteck live.
+ Sobald das Eingabegerät getogglet wird, so wird die aktuelle Stelle als Endpunkt angenommen. Zwiscehn Start und Endpunkt
+ wird das Rechteck aufgespannt.
+ Das Rechteck besitzt 2 Farbattribute, den Rand und die Füllung. Der Rand ist um das Rechteck gesetzt und kann
+ im Bezug auf Breite und Farbe eingesetellt werden. Die Füllung ist innerhalb der Fläche, welcher vom Rand aufgespannt wird,
+ und kann im Bezug auf die Farbe eingestellt werden.
+ -Konvexe Form:
+ Das Tool Formen (Konvex), soll einem ermöglichen beliebige, konvexe Formen zu erstellen.
+ Dabei werden Punkte gesetzt, welche durch toggeln des Eingabegeräts, an der Stelle des Cursors gesetzt werden.
+ Sollte ein Punkt im Radius von 10 Pixel zum Startpunkt sein, so wird die Erstellung abgeschlossen. Danach werden Linien
+ zwischen den gesetzten Punkten (in korrekter Reihenfolge) gezeichnet und der Zwischenraum gefüllt.
+ Dabei besitzt die konvexe Form 2 Farbattribute, den Rand und die Füllung. Der Rand ist um die konvexe Form
+ gesetzt und kann im Bezug auf Breite und Farbe eingesetellt werden. Die Füllung ist innerhalb der Fläche, welche durch den Rand
+ aufgespannt wird, und kann im Bezug auf die Farbe eingestellt werden.
+ FloodFill:
+ -Das Floodfill Tool, bei diesem wird ein Pixel ausgewählt. Alle Pixel die mit diesem Pixel in einer Äquivalenzklasse
+ im Bezug auf Farbe und Nachbarschafts-Relation stehen, werden in die gewählte Farbe eingefärbt.
+ Einfarbig:
+ -Das Einfarbig Tool färbt das gesamte Bild in die gewählte Farbe ein.
+ Reverse:
+ -Der letzte State des Bildes wird wieder hergestellt. (Speicherung von mindestens 10 alten Zuständen).
+Originator:
+ Jonas Mucke
+Fit Criterion:
+ -Das Setzten eines Pixels, in einer beliebigen Farbe, funktioniert in 99,9% in unter 0.01 Sekunden.
+ -Der Vollständige Farbbreich ist frei wählbar.
+ -Es müssen mindestens 3 Tools benutzbar sein, das bedeutet eine 99,9% richtiges Verhalten in unter 0.1 Sekunden.
+ -Tools besitzen in 100% der Fälle das gewünschte Verhalten
+Priority:
+ 80
+Support Material:
+ Ubungsblat_01.pdf
+Conflicts:
+ -keine Bekannten Konflikte(stand: 30.10.2019 22:10)
+History:
+ -Erstellt am 30.10.2019 um 22:10, von Jonas Mucke
diff --git a/Abgabe/Abgabe 2/Klassen_Verantwortlichkeiten_und_Kollaborationen.txt b/Abgabe/Abgabe 2/Klassen_Verantwortlichkeiten_und_Kollaborationen.txt
new file mode 100644
index 0000000..6c77ca5
--- /dev/null
+++ b/Abgabe/Abgabe 2/Klassen_Verantwortlichkeiten_und_Kollaborationen.txt
@@ -0,0 +1,303 @@
+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
+
+
+
+
+
\ No newline at end of file
diff --git a/Abgabe/Abgabe 3/UML.pdf b/Abgabe/Abgabe 3/UML.pdf
new file mode 100644
index 0000000..e379a3e
Binary files /dev/null and b/Abgabe/Abgabe 3/UML.pdf differ
diff --git a/Abgabe/Abgabe 3/UML.uxf b/Abgabe/Abgabe 3/UML.uxf
new file mode 100644
index 0000000..2ccb1a4
--- /dev/null
+++ b/Abgabe/Abgabe 3/UML.uxf
@@ -0,0 +1,757 @@
+
+
+ 9
+
+ UMLClass
+
+ 2106
+ 171
+ 171
+ 81
+
+ /*Image*/
+--
++pixel_data: byte[][]
++size: Vector2
+--
++clear_image(Color)
+
+
+
+ UMLClass
+
+ 2115
+ 450
+ 162
+ 36
+
+ *RasterImage*
+--
+--
+
+
+
+ UMLClass
+
+ 2106
+ 702
+ 189
+ 99
+
+ *ShapedImage*
+--
+-polygon_data: byte[][]
+--
++create_vertex(Vector2)
++remove_vertex(Vector2)
++clear_polygon()
+
+
+
+ UMLClass
+
+ 450
+ 171
+ 261
+ 171
+
+ /*Tool*/
+--
++effected_area_border_color: Color
++effected_area_border_radius: int
++effected_area_border_line_type: LineType
++name: String
++icon: Sprite
++tooltip: String
++description: String
+...
+--
+/+handleImageClick(Vector2): void/
+
+
+
+ Relation
+
+ 2187
+ 243
+ 27
+ 225
+
+ lt=<<-
+ 10.0;10.0;10.0;230.0
+
+
+ Relation
+
+ 2187
+ 477
+ 27
+ 243
+
+ lt=<<-
+ 10.0;10.0;10.0;250.0
+
+
+ UMLClass
+
+ 468
+ 450
+ 225
+ 153
+
+ /*SetColorTool*/
+--
++colors: Color[255]
++selected_colors: Color[2]
+--
++renderColorPalette(): void
++setMainColor(Color): void
++setSecondaryColor(Color): void
++getMainColor(): Color
++getSecondaryColor(): Color
+
+
+
+ UMLClass
+
+ 0
+ 450
+ 225
+ 117
+
+ *HistoryTool*
+--
+-history: HistoryAction[20]
+-current_location: int
+--
++undo(): bool
++redo(): bool
++clearRedo(): void
++addUndo(HistoryAction): void
+
+
+
+ UMLClass
+
+ 945
+ 171
+ 216
+ 117
+
+ <<Enumeration>>
+*LineType*
+--
+ Solid
+ Dotted
+ Dashed
+ LongDash
+ ...
+
+
+
+ Relation
+
+ 99
+ 558
+ 27
+ 162
+
+ lt=<<<<-
+ 10.0;10.0;10.0;160.0
+
+
+ UMLClass
+
+ 0
+ 702
+ 225
+ 45
+
+ *HistoryAction*
+--
++string action_data[]
+--
+
+
+
+ UMLClass
+
+ 0
+ 864
+ 225
+ 99
+
+ <<Enumeration>>
+*HistoryActionType*
+--
+ ColorChange
+ Deletion
+ PolygonVertex
+ ....
+
+
+
+ Relation
+
+ 99
+ 738
+ 99
+ 144
+
+ lt=<-
++action_type
+ 10.0;140.0;10.0;10.0
+
+
+ UMLClass
+
+ 468
+ 702
+ 225
+ 45
+
+ *FloodFillTool*
+--
+--
++handleImageClick(Vector2): void
+
+
+
+ UMLClass
+
+ 234
+ 702
+ 225
+ 45
+
+ *PlainTool*
+--
+--
++handleImageClick(Vector2): void
+
+
+
+ UMLClass
+
+ 702
+ 702
+ 225
+ 90
+
+ /*FormsTool*/
+--
++edge_display_line_type: LineType
++edge_display_color: Color
++edge_display_thickness: int
+--
+
+
+
+ UMLClass
+
+ 936
+ 702
+ 225
+ 63
+
+ *PenTool*
+--
+-radius: int
+--
++handleImageClick(Vector2): void
+
+
+
+ UMLClass
+
+ 702
+ 864
+ 225
+ 90
+
+ *RectangleTool*
+--
++edge_thickness: int
++edge_line_type: LineType
+--
++handleImageClick(Vector2): void
+
+
+
+ UMLClass
+
+ 1179
+ 864
+ 216
+ 72
+
+ *LineTool*
+--
++thickness: int
++line_type: LineType
+--
++handleImageClick(Vector2): void
+
+
+
+ UMLClass
+
+ 936
+ 864
+ 234
+ 90
+
+ *ConvexFormsTool*
+--
++edge_thickness: int
++edge_line_type: LineType
+--
++handleImageClick(Vector2): void
+
+
+
+ UMLClass
+
+ 468
+ 864
+ 225
+ 90
+
+ *PolygonTool*
+--
++edge_thickness: int
++edge_line_type: LineType
+--
++handleImageClick(Vector2): void
+
+
+
+ Relation
+
+ 648
+ 594
+ 423
+ 126
+
+ lt=<<-
+ 10.0;10.0;450.0;120.0
+
+
+ Relation
+
+ 612
+ 594
+ 225
+ 126
+
+ lt=<<-
+ 10.0;10.0;230.0;120.0
+
+
+ Relation
+
+ 567
+ 594
+ 27
+ 126
+
+ lt=<<-
+ 10.0;10.0;10.0;120.0
+
+
+ Relation
+
+ 333
+ 594
+ 225
+ 126
+
+ lt=<<-
+ 230.0;10.0;10.0;120.0
+
+
+ Relation
+
+ 576
+ 333
+ 27
+ 135
+
+ lt=<<-
+ 10.0;10.0;10.0;130.0
+
+
+ Relation
+
+ 837
+ 783
+ 225
+ 99
+
+ lt=<<-
+ 10.0;10.0;230.0;90.0
+
+
+ Relation
+
+ 810
+ 774
+ 27
+ 108
+
+ lt=<<-
+ 10.0;10.0;10.0;100.0
+
+
+ Relation
+
+ 882
+ 783
+ 423
+ 99
+
+ lt=<<-
+ 10.0;10.0;450.0;90.0
+
+
+ Relation
+
+ 558
+ 783
+ 252
+ 99
+
+ lt=<<-
+ 260.0;10.0;10.0;90.0
+
+
+ Relation
+
+ 99
+ 333
+ 414
+ 135
+
+ lt=<<-
+ 440.0;10.0;10.0;130.0
+
+
+ UMLClass
+
+ 234
+ 864
+ 225
+ 81
+
+ *CircleTool*
+--
++edge_thickness: int
++edge_line_type: LineType
+--
++handleImageClick(Vector2): void
+
+
+
+ Relation
+
+ 324
+ 783
+ 459
+ 99
+
+ lt=<<-
+ 490.0;10.0;10.0;90.0
+
+
+ UMLClass
+
+ 234
+ 450
+ 225
+ 63
+
+ *MergeTool*
+--
++import_file: DataStream<File>
+--
++handleImageClick(Vector2): void
+
+
+
+ UMLClass
+
+ 702
+ 450
+ 225
+ 45
+
+ *RotateTool*
+--
+--
++handleImageClick(Vector2): void
+
+
+
+ UMLClass
+
+ 936
+ 450
+ 225
+ 45
+
+ *ResizeTool*
+--
+--
++handleImageClick(Vector2): void
+
+
+
+ Relation
+
+ 621
+ 333
+ 216
+ 135
+
+ lt=<<-
+ 10.0;10.0;220.0;130.0
+
+
+ Relation
+
+ 666
+ 333
+ 405
+ 135
+
+ lt=<<-
+ 10.0;10.0;430.0;130.0
+
+
+ Relation
+
+ 333
+ 333
+ 225
+ 135
+
+ lt=<<-
+ 230.0;10.0;10.0;130.0
+
+
+ UMLClass
+
+ 1170
+ 450
+ 225
+ 54
+
+ *SelectionTool*
+--
++pos1: int
++pos2: int
+--
+
+
+
+
+ Relation
+
+ 684
+ 333
+ 630
+ 135
+
+ lt=<<-
+ 10.0;10.0;680.0;130.0
+
+
+ UMLClass
+
+ 1170
+ 702
+ 225
+ 36
+
+ *CutTool*
+--
+--
+
+
+
+
+ Relation
+
+ 1278
+ 495
+ 27
+ 225
+
+ lt=<<-
+ 10.0;10.0;10.0;230.0
+
+
+ UMLClass
+
+ 1404
+ 450
+ 225
+ 90
+
+ *KorrekturTool*
+--
++Value: int
+--
++increse(Value)
++decrese(Value)
+
+
+
+ Relation
+
+ 702
+ 333
+ 837
+ 135
+
+ lt=<<-
+ 10.0;10.0;910.0;130.0
+
+
+ UMLClass
+
+ 1404
+ 702
+ 225
+ 36
+
+ *HelligkeitsTool*
+--
+--
+
+
+
+ Relation
+
+ 1512
+ 531
+ 27
+ 189
+
+ lt=<<-
+ 10.0;10.0;10.0;190.0
+
+
+ UMLClass
+
+ 1638
+ 702
+ 225
+ 36
+
+ *FarbtonTool*
+--
+--
+
+
+
+
+ Relation
+
+ 1539
+ 531
+ 234
+ 189
+
+ lt=<<-
+ 10.0;10.0;240.0;190.0
+
+
+ UMLClass
+
+ 1872
+ 702
+ 225
+ 54
+
+ *GradationsTool*
+--
+--
++generate_gradient(): void
+
+
+
+ Relation
+
+ 1575
+ 531
+ 432
+ 189
+
+ lt=<<-
+ 10.0;10.0;460.0;190.0
+
+
+ UMLClass
+
+ 1170
+ 171
+ 225
+ 72
+
+ *3D-object*
+--
++vertices
+--
++load_3D(Object): void
+
+
+
+
+ UMLClass
+
+ 1404
+ 171
+ 225
+ 54
+
+ *3D-inspector*
+--
+--
++generate_3D(): void
+
+
+
+
+ UMLClass
+
+ 1872
+ 171
+ 225
+ 81
+
+ *Layer-Manager*
+--
+--
++generate_layer(): void
++delete_layer(int): void
++overlab_layer(): void
+
+
+
+
+ UMLClass
+
+ 1638
+ 171
+ 225
+ 54
+
+ *Layer*
+--
+--
++display_layer(): void
+
+
+
+
diff --git a/Abgabe/Abgabe 3/Use_case.pdf b/Abgabe/Abgabe 3/Use_case.pdf
new file mode 100644
index 0000000..cffc003
Binary files /dev/null and b/Abgabe/Abgabe 3/Use_case.pdf differ
diff --git a/Abgabe/Abgabe 3/Use_case.uxf b/Abgabe/Abgabe 3/Use_case.uxf
new file mode 100644
index 0000000..251c8b9
--- /dev/null
+++ b/Abgabe/Abgabe 3/Use_case.uxf
@@ -0,0 +1,405 @@
+
+
+ 17
+
+ UMLActor
+
+ 17
+ 459
+ 170
+ 187
+
+ 3D-Künstler
+bg=green
+
+
+
+ UMLActor
+
+ 68
+ 714
+ 136
+ 187
+
+ Einsteiger
+bg=red
+
+
+
+ UMLUseCase
+
+ 646
+ 391
+ 204
+ 119
+
+ Zusammenfügen
+von Bildern
+bg=red
+
+
+
+ UMLUseCase
+
+ 646
+ 527
+ 204
+ 119
+
+ Ändern der
+Bilderauflösung
+bg=red
+
+
+
+ UMLUseCase
+
+ 646
+ 663
+ 204
+ 119
+
+ Drehen von
+Bildern
+bg=red
+
+
+
+ UMLUseCase
+
+ 646
+ 969
+ 204
+ 119
+
+ Retuschieren
+der Bilder
+bg=magenta
+
+
+
+ UMLActor
+
+ 51
+ 1037
+ 170
+ 187
+
+ Casual User
+bg=red
+
+
+
+ Relation
+
+ 119
+ 442
+ 561
+ 306
+
+
+ 310.0;10.0;10.0;160.0
+
+
+ Relation
+
+ 119
+ 561
+ 561
+ 187
+
+
+ 310.0;10.0;10.0;90.0
+
+
+ Relation
+
+ 119
+ 680
+ 561
+ 68
+
+
+ 310.0;20.0;10.0;20.0
+
+
+ Relation
+
+ 119
+ 442
+ 561
+ 629
+
+
+ 310.0;10.0;10.0;350.0
+
+
+ Relation
+
+ 119
+ 561
+ 561
+ 510
+
+
+ 310.0;10.0;10.0;280.0
+
+
+ Relation
+
+ 119
+ 697
+ 561
+ 374
+
+
+ 310.0;10.0;10.0;200.0
+
+
+ Relation
+
+ 119
+ 986
+ 561
+ 85
+
+
+ 310.0;20.0;10.0;30.0
+
+
+ Relation
+
+ 136
+ 1003
+ 544
+ 408
+
+
+ 300.0;10.0;10.0;220.0
+
+
+ UMLUseCase
+
+ 646
+ 1394
+ 204
+ 119
+
+ Korrektur-
+werkzeuge
+bg=blue
+
+
+
+ UMLNote
+
+ 629
+ 1547
+ 238
+ 119
+
+ Helligkeit/Kontrast
+Farbton/Sättigung
+Gradationskurven
+bg=blue
+
+
+
+ Relation
+
+ 136
+ 1360
+ 544
+ 119
+
+
+ 300.0;50.0;10.0;10.0
+
+
+ Relation
+
+ 731
+ 1496
+ 51
+ 85
+
+
+ 10.0;10.0;10.0;30.0
+
+
+ UMLUseCase
+
+ 646
+ 1122
+ 204
+ 119
+
+ Pinsel
+bg=blue
+
+
+
+ UMLUseCase
+
+ 646
+ 1258
+ 204
+ 119
+
+ Auswahl-
+werkzeuge
+bg=blue
+
+
+
+ Relation
+
+ 136
+ 1292
+ 544
+ 119
+
+
+ 300.0;10.0;10.0;50.0
+
+
+ Relation
+
+ 136
+ 1156
+ 544
+ 255
+
+
+ 300.0;10.0;10.0;130.0
+
+
+ UMLActor
+
+ 0
+ 1377
+ 306
+ 187
+
+ Freiberufliche Fotografen
+bg=blue
+
+
+
+ UMLUseCase
+
+ 646
+ 816
+ 204
+ 119
+
+ Layerstruktur
+bg=dark_gray
+
+
+
+ Relation
+
+ 85
+ 272
+ 595
+ 221
+
+
+ 330.0;10.0;10.0;110.0
+
+
+ UMLUseCase
+
+ 646
+ 238
+ 204
+ 119
+
+ Schnittstelle
+für 3D-Modelle
+bg=green
+
+
+
+ Relation
+
+ 85
+ 136
+ 595
+ 357
+
+
+ 330.0;10.0;10.0;190.0
+
+
+ UMLUseCase
+
+ 646
+ 102
+ 204
+ 119
+
+ Erzeugen von
+3D-Objekten
+bg=green
+
+
+
+ Relation
+
+ 136
+ 867
+ 544
+ 544
+
+
+ 300.0;10.0;10.0;300.0
+
+
+ Relation
+
+ 119
+ 867
+ 561
+ 204
+
+
+ 310.0;10.0;10.0;100.0
+
+
+ Relation
+
+ 119
+ 697
+ 561
+ 221
+
+
+ 310.0;110.0;10.0;10.0
+
+
+ Relation
+
+ 85
+ 442
+ 595
+ 476
+
+
+ 330.0;260.0;10.0;10.0
+
+
+ UMLClass
+
+ 527
+ 0
+ 459
+ 1836
+
+ lw=2
+IntelliPhoto Benchmark 1.0
+bg=gray
+
+
+