Added historic assignments

This commit is contained in:
2019-12-05 18:33:00 +01:00
parent 5d956769ff
commit f7a914f646
9 changed files with 1686 additions and 0 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

BIN
Abgabe/Abgabe 3/UML.pdf Normal file

Binary file not shown.

757
Abgabe/Abgabe 3/UML.uxf Normal file
View File

@@ -0,0 +1,757 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<diagram program="umlet" version="14.3.0">
<zoom_level>9</zoom_level>
<element>
<id>UMLClass</id>
<coordinates>
<x>2106</x>
<y>171</y>
<w>171</w>
<h>81</h>
</coordinates>
<panel_attributes>/*Image*/
--
+pixel_data: byte[][]
+size: Vector2
--
+clear_image(Color)</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>2115</x>
<y>450</y>
<w>162</w>
<h>36</h>
</coordinates>
<panel_attributes>*RasterImage*
--
--</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>2106</x>
<y>702</y>
<w>189</w>
<h>99</h>
</coordinates>
<panel_attributes>*ShapedImage*
--
-polygon_data: byte[][]
--
+create_vertex(Vector2)
+remove_vertex(Vector2)
+clear_polygon()</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>450</x>
<y>171</y>
<w>261</w>
<h>171</h>
</coordinates>
<panel_attributes>/*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/</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>2187</x>
<y>243</y>
<w>27</w>
<h>225</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-</panel_attributes>
<additional_attributes>10.0;10.0;10.0;230.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>2187</x>
<y>477</y>
<w>27</w>
<h>243</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-</panel_attributes>
<additional_attributes>10.0;10.0;10.0;250.0</additional_attributes>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>468</x>
<y>450</y>
<w>225</w>
<h>153</h>
</coordinates>
<panel_attributes>/*SetColorTool*/
--
+colors: Color[255]
+selected_colors: Color[2]
--
+renderColorPalette(): void
+setMainColor(Color): void
+setSecondaryColor(Color): void
+getMainColor(): Color
+getSecondaryColor(): Color</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>0</x>
<y>450</y>
<w>225</w>
<h>117</h>
</coordinates>
<panel_attributes>*HistoryTool*
--
-history: HistoryAction[20]
-current_location: int
--
+undo(): bool
+redo(): bool
+clearRedo(): void
+addUndo(HistoryAction): void</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>945</x>
<y>171</y>
<w>216</w>
<h>117</h>
</coordinates>
<panel_attributes>&lt;&lt;Enumeration&gt;&gt;
*LineType*
--
Solid
Dotted
Dashed
LongDash
...</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>99</x>
<y>558</y>
<w>27</w>
<h>162</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;&lt;&lt;-</panel_attributes>
<additional_attributes>10.0;10.0;10.0;160.0</additional_attributes>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>0</x>
<y>702</y>
<w>225</w>
<h>45</h>
</coordinates>
<panel_attributes>*HistoryAction*
--
+string action_data[]
--</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>0</x>
<y>864</y>
<w>225</w>
<h>99</h>
</coordinates>
<panel_attributes>&lt;&lt;Enumeration&gt;&gt;
*HistoryActionType*
--
ColorChange
Deletion
PolygonVertex
....</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>99</x>
<y>738</y>
<w>99</w>
<h>144</h>
</coordinates>
<panel_attributes>lt=&lt;-
+action_type</panel_attributes>
<additional_attributes>10.0;140.0;10.0;10.0</additional_attributes>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>468</x>
<y>702</y>
<w>225</w>
<h>45</h>
</coordinates>
<panel_attributes>*FloodFillTool*
--
--
+handleImageClick(Vector2): void</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>234</x>
<y>702</y>
<w>225</w>
<h>45</h>
</coordinates>
<panel_attributes>*PlainTool*
--
--
+handleImageClick(Vector2): void</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>702</x>
<y>702</y>
<w>225</w>
<h>90</h>
</coordinates>
<panel_attributes>/*FormsTool*/
--
+edge_display_line_type: LineType
+edge_display_color: Color
+edge_display_thickness: int
--</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>936</x>
<y>702</y>
<w>225</w>
<h>63</h>
</coordinates>
<panel_attributes>*PenTool*
--
-radius: int
--
+handleImageClick(Vector2): void</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>702</x>
<y>864</y>
<w>225</w>
<h>90</h>
</coordinates>
<panel_attributes>*RectangleTool*
--
+edge_thickness: int
+edge_line_type: LineType
--
+handleImageClick(Vector2): void</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>1179</x>
<y>864</y>
<w>216</w>
<h>72</h>
</coordinates>
<panel_attributes>*LineTool*
--
+thickness: int
+line_type: LineType
--
+handleImageClick(Vector2): void</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>936</x>
<y>864</y>
<w>234</w>
<h>90</h>
</coordinates>
<panel_attributes>*ConvexFormsTool*
--
+edge_thickness: int
+edge_line_type: LineType
--
+handleImageClick(Vector2): void</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>468</x>
<y>864</y>
<w>225</w>
<h>90</h>
</coordinates>
<panel_attributes>*PolygonTool*
--
+edge_thickness: int
+edge_line_type: LineType
--
+handleImageClick(Vector2): void</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>648</x>
<y>594</y>
<w>423</w>
<h>126</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-</panel_attributes>
<additional_attributes>10.0;10.0;450.0;120.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>612</x>
<y>594</y>
<w>225</w>
<h>126</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-</panel_attributes>
<additional_attributes>10.0;10.0;230.0;120.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>567</x>
<y>594</y>
<w>27</w>
<h>126</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-</panel_attributes>
<additional_attributes>10.0;10.0;10.0;120.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>333</x>
<y>594</y>
<w>225</w>
<h>126</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-</panel_attributes>
<additional_attributes>230.0;10.0;10.0;120.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>576</x>
<y>333</y>
<w>27</w>
<h>135</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-</panel_attributes>
<additional_attributes>10.0;10.0;10.0;130.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>837</x>
<y>783</y>
<w>225</w>
<h>99</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-</panel_attributes>
<additional_attributes>10.0;10.0;230.0;90.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>810</x>
<y>774</y>
<w>27</w>
<h>108</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-</panel_attributes>
<additional_attributes>10.0;10.0;10.0;100.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>882</x>
<y>783</y>
<w>423</w>
<h>99</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-</panel_attributes>
<additional_attributes>10.0;10.0;450.0;90.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>558</x>
<y>783</y>
<w>252</w>
<h>99</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-</panel_attributes>
<additional_attributes>260.0;10.0;10.0;90.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>99</x>
<y>333</y>
<w>414</w>
<h>135</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-</panel_attributes>
<additional_attributes>440.0;10.0;10.0;130.0</additional_attributes>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>234</x>
<y>864</y>
<w>225</w>
<h>81</h>
</coordinates>
<panel_attributes>*CircleTool*
--
+edge_thickness: int
+edge_line_type: LineType
--
+handleImageClick(Vector2): void</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>324</x>
<y>783</y>
<w>459</w>
<h>99</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-</panel_attributes>
<additional_attributes>490.0;10.0;10.0;90.0</additional_attributes>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>234</x>
<y>450</y>
<w>225</w>
<h>63</h>
</coordinates>
<panel_attributes>*MergeTool*
--
+import_file: DataStream&lt;File&gt;
--
+handleImageClick(Vector2): void</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>702</x>
<y>450</y>
<w>225</w>
<h>45</h>
</coordinates>
<panel_attributes>*RotateTool*
--
--
+handleImageClick(Vector2): void</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>936</x>
<y>450</y>
<w>225</w>
<h>45</h>
</coordinates>
<panel_attributes>*ResizeTool*
--
--
+handleImageClick(Vector2): void</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>621</x>
<y>333</y>
<w>216</w>
<h>135</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-</panel_attributes>
<additional_attributes>10.0;10.0;220.0;130.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>666</x>
<y>333</y>
<w>405</w>
<h>135</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-</panel_attributes>
<additional_attributes>10.0;10.0;430.0;130.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>333</x>
<y>333</y>
<w>225</w>
<h>135</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-</panel_attributes>
<additional_attributes>230.0;10.0;10.0;130.0</additional_attributes>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>1170</x>
<y>450</y>
<w>225</w>
<h>54</h>
</coordinates>
<panel_attributes>*SelectionTool*
--
+pos1: int
+pos2: int
--
</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>684</x>
<y>333</y>
<w>630</w>
<h>135</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-</panel_attributes>
<additional_attributes>10.0;10.0;680.0;130.0</additional_attributes>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>1170</x>
<y>702</y>
<w>225</w>
<h>36</h>
</coordinates>
<panel_attributes>*CutTool*
--
--
</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>1278</x>
<y>495</y>
<w>27</w>
<h>225</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-</panel_attributes>
<additional_attributes>10.0;10.0;10.0;230.0</additional_attributes>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>1404</x>
<y>450</y>
<w>225</w>
<h>90</h>
</coordinates>
<panel_attributes>*KorrekturTool*
--
+Value: int
--
+increse(Value)
+decrese(Value)</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>702</x>
<y>333</y>
<w>837</w>
<h>135</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-</panel_attributes>
<additional_attributes>10.0;10.0;910.0;130.0</additional_attributes>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>1404</x>
<y>702</y>
<w>225</w>
<h>36</h>
</coordinates>
<panel_attributes>*HelligkeitsTool*
--
--</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>1512</x>
<y>531</y>
<w>27</w>
<h>189</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-</panel_attributes>
<additional_attributes>10.0;10.0;10.0;190.0</additional_attributes>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>1638</x>
<y>702</y>
<w>225</w>
<h>36</h>
</coordinates>
<panel_attributes>*FarbtonTool*
--
--
</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>1539</x>
<y>531</y>
<w>234</w>
<h>189</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-</panel_attributes>
<additional_attributes>10.0;10.0;240.0;190.0</additional_attributes>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>1872</x>
<y>702</y>
<w>225</w>
<h>54</h>
</coordinates>
<panel_attributes>*GradationsTool*
--
--
+generate_gradient(): void</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>1575</x>
<y>531</y>
<w>432</w>
<h>189</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-</panel_attributes>
<additional_attributes>10.0;10.0;460.0;190.0</additional_attributes>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>1170</x>
<y>171</y>
<w>225</w>
<h>72</h>
</coordinates>
<panel_attributes>*3D-object*
--
+vertices
--
+load_3D(Object): void
</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>1404</x>
<y>171</y>
<w>225</w>
<h>54</h>
</coordinates>
<panel_attributes>*3D-inspector*
--
--
+generate_3D(): void
</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>1872</x>
<y>171</y>
<w>225</w>
<h>81</h>
</coordinates>
<panel_attributes>*Layer-Manager*
--
--
+generate_layer(): void
+delete_layer(int): void
+overlab_layer(): void
</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>1638</x>
<y>171</y>
<w>225</w>
<h>54</h>
</coordinates>
<panel_attributes>*Layer*
--
--
+display_layer(): void
</panel_attributes>
<additional_attributes/>
</element>
</diagram>

Binary file not shown.

View File

@@ -0,0 +1,405 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<diagram program="umlet" version="14.3.0">
<zoom_level>17</zoom_level>
<element>
<id>UMLActor</id>
<coordinates>
<x>17</x>
<y>459</y>
<w>170</w>
<h>187</h>
</coordinates>
<panel_attributes>3D-Künstler
bg=green</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLActor</id>
<coordinates>
<x>68</x>
<y>714</y>
<w>136</w>
<h>187</h>
</coordinates>
<panel_attributes>Einsteiger
bg=red</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLUseCase</id>
<coordinates>
<x>646</x>
<y>391</y>
<w>204</w>
<h>119</h>
</coordinates>
<panel_attributes>Zusammenfügen
von Bildern
bg=red</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLUseCase</id>
<coordinates>
<x>646</x>
<y>527</y>
<w>204</w>
<h>119</h>
</coordinates>
<panel_attributes>Ändern der
Bilderauflösung
bg=red</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLUseCase</id>
<coordinates>
<x>646</x>
<y>663</y>
<w>204</w>
<h>119</h>
</coordinates>
<panel_attributes>Drehen von
Bildern
bg=red</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLUseCase</id>
<coordinates>
<x>646</x>
<y>969</y>
<w>204</w>
<h>119</h>
</coordinates>
<panel_attributes>Retuschieren
der Bilder
bg=magenta</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLActor</id>
<coordinates>
<x>51</x>
<y>1037</y>
<w>170</w>
<h>187</h>
</coordinates>
<panel_attributes>Casual User
bg=red</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>119</x>
<y>442</y>
<w>561</w>
<h>306</h>
</coordinates>
<panel_attributes/>
<additional_attributes>310.0;10.0;10.0;160.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>119</x>
<y>561</y>
<w>561</w>
<h>187</h>
</coordinates>
<panel_attributes/>
<additional_attributes>310.0;10.0;10.0;90.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>119</x>
<y>680</y>
<w>561</w>
<h>68</h>
</coordinates>
<panel_attributes/>
<additional_attributes>310.0;20.0;10.0;20.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>119</x>
<y>442</y>
<w>561</w>
<h>629</h>
</coordinates>
<panel_attributes/>
<additional_attributes>310.0;10.0;10.0;350.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>119</x>
<y>561</y>
<w>561</w>
<h>510</h>
</coordinates>
<panel_attributes/>
<additional_attributes>310.0;10.0;10.0;280.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>119</x>
<y>697</y>
<w>561</w>
<h>374</h>
</coordinates>
<panel_attributes/>
<additional_attributes>310.0;10.0;10.0;200.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>119</x>
<y>986</y>
<w>561</w>
<h>85</h>
</coordinates>
<panel_attributes/>
<additional_attributes>310.0;20.0;10.0;30.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>136</x>
<y>1003</y>
<w>544</w>
<h>408</h>
</coordinates>
<panel_attributes/>
<additional_attributes>300.0;10.0;10.0;220.0</additional_attributes>
</element>
<element>
<id>UMLUseCase</id>
<coordinates>
<x>646</x>
<y>1394</y>
<w>204</w>
<h>119</h>
</coordinates>
<panel_attributes>Korrektur-
werkzeuge
bg=blue</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLNote</id>
<coordinates>
<x>629</x>
<y>1547</y>
<w>238</w>
<h>119</h>
</coordinates>
<panel_attributes>Helligkeit/Kontrast
Farbton/Sättigung
Gradationskurven
bg=blue</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>136</x>
<y>1360</y>
<w>544</w>
<h>119</h>
</coordinates>
<panel_attributes/>
<additional_attributes>300.0;50.0;10.0;10.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>731</x>
<y>1496</y>
<w>51</w>
<h>85</h>
</coordinates>
<panel_attributes/>
<additional_attributes>10.0;10.0;10.0;30.0</additional_attributes>
</element>
<element>
<id>UMLUseCase</id>
<coordinates>
<x>646</x>
<y>1122</y>
<w>204</w>
<h>119</h>
</coordinates>
<panel_attributes>Pinsel
bg=blue</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLUseCase</id>
<coordinates>
<x>646</x>
<y>1258</y>
<w>204</w>
<h>119</h>
</coordinates>
<panel_attributes>Auswahl-
werkzeuge
bg=blue</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>136</x>
<y>1292</y>
<w>544</w>
<h>119</h>
</coordinates>
<panel_attributes/>
<additional_attributes>300.0;10.0;10.0;50.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>136</x>
<y>1156</y>
<w>544</w>
<h>255</h>
</coordinates>
<panel_attributes/>
<additional_attributes>300.0;10.0;10.0;130.0</additional_attributes>
</element>
<element>
<id>UMLActor</id>
<coordinates>
<x>0</x>
<y>1377</y>
<w>306</w>
<h>187</h>
</coordinates>
<panel_attributes>Freiberufliche Fotografen
bg=blue</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLUseCase</id>
<coordinates>
<x>646</x>
<y>816</y>
<w>204</w>
<h>119</h>
</coordinates>
<panel_attributes>Layerstruktur
bg=dark_gray</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>85</x>
<y>272</y>
<w>595</w>
<h>221</h>
</coordinates>
<panel_attributes/>
<additional_attributes>330.0;10.0;10.0;110.0</additional_attributes>
</element>
<element>
<id>UMLUseCase</id>
<coordinates>
<x>646</x>
<y>238</y>
<w>204</w>
<h>119</h>
</coordinates>
<panel_attributes>Schnittstelle
für 3D-Modelle
bg=green</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>85</x>
<y>136</y>
<w>595</w>
<h>357</h>
</coordinates>
<panel_attributes/>
<additional_attributes>330.0;10.0;10.0;190.0</additional_attributes>
</element>
<element>
<id>UMLUseCase</id>
<coordinates>
<x>646</x>
<y>102</y>
<w>204</w>
<h>119</h>
</coordinates>
<panel_attributes>Erzeugen von
3D-Objekten
bg=green</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>136</x>
<y>867</y>
<w>544</w>
<h>544</h>
</coordinates>
<panel_attributes/>
<additional_attributes>300.0;10.0;10.0;300.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>119</x>
<y>867</y>
<w>561</w>
<h>204</h>
</coordinates>
<panel_attributes/>
<additional_attributes>310.0;10.0;10.0;100.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>119</x>
<y>697</y>
<w>561</w>
<h>221</h>
</coordinates>
<panel_attributes/>
<additional_attributes>310.0;110.0;10.0;10.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>85</x>
<y>442</y>
<w>595</w>
<h>476</h>
</coordinates>
<panel_attributes/>
<additional_attributes>330.0;260.0;10.0;10.0</additional_attributes>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>527</x>
<y>0</y>
<w>459</w>
<h>1836</h>
</coordinates>
<panel_attributes>lw=2
IntelliPhoto Benchmark 1.0
bg=gray</panel_attributes>
<additional_attributes/>
</element>
</diagram>