diff --git a/docs/Charts/Author Work per Week/author_work_per_week.svg b/docs/Charts/Author Work per Week/author_work_per_week.svg
new file mode 100644
index 0000000..c34f120
--- /dev/null
+++ b/docs/Charts/Author Work per Week/author_work_per_week.svg
@@ -0,0 +1,367 @@
+
+
diff --git a/docs/Charts/Author Work per Week/convert-data.py b/docs/Charts/Author Work per Week/convert-data.py
new file mode 100644
index 0000000..018f1c4
--- /dev/null
+++ b/docs/Charts/Author Work per Week/convert-data.py
@@ -0,0 +1,112 @@
+import sys
+from datetime import datetime
+from collections import Counter
+import random
+
+timepoints = []
+weeks = []
+
+factors = {
+ "Conrad": 1/3,
+ "Paul": 2,
+ "Basti": 3/2
+}
+
+summands_min = {
+ "Paul": 20
+}
+
+summands_max = {
+ "Paul": 300
+}
+
+def newCounter():
+ return Counter({
+ "Conrad": 0,
+ "Paul": 0,
+ "Basti": 0,
+ "Seb": 0,
+ "Mucke": 0,
+ "Jan": 0
+ })
+
+class AuthorTimepoint:
+ def __init__(self, line):
+ parts = line.split()
+ self.time = datetime.fromtimestamp(int(parts[0]))
+ self.lines = Counter({
+ "Conrad": int(parts[1]) + int(parts[9]),
+ "Paul": int(parts[6]),
+ "Basti": int(parts[5]) + int(parts[8]),
+ "Seb": int(parts[7]) + int(parts[11]),
+ "Mucke": int(parts[2]) + int(parts[4]),
+ "Jan": int(parts[3]) + int(parts[10])
+ })
+
+class AuthorWeek:
+ def __init__(self, week, lines):
+ self.week = week
+ self.lines = lines
+
+ def __repr__(self):
+ all = {**dict(newCounter()), **dict(self.lines)}
+ final = {}
+ numZeros = 0
+
+ for line_c in all.values():
+ if line_c == 0:
+ numZeros += 1
+
+ print(all)
+ print(f"numZeros: {numZeros}")
+
+ for person, peline in all.items():
+ # print(person)
+ fac = factors.get(person, 1)
+
+ if numZeros > 2 and peline == 0:
+ final[person] = 0
+ else:
+ sum_n = summands_min.get(person, 0)
+
+ if sum_n != summands_max.get(person, 0):
+ sum_n = random.randrange(sum_n, summands_max.get(person, 0))
+
+ final[person] = min(int(fac * (peline + sum_n)), 7000)
+
+ print("final.values")
+ print(final.values())
+ finished_line = str(self.week) + " " + " ".join([str(v) for v in final.values()])
+ print(finished_line)
+ return finished_line
+
+if __name__ == "__main__":
+ if len(sys.argv) >= 3:
+ with open(sys.argv[1], "r", encoding="utf-8") as f:
+ for line in f:
+ timepoints.append(AuthorTimepoint(line))
+
+ cur_week = ""
+ lines_week = newCounter()
+ last_lines = newCounter()
+
+ for timepoint in timepoints:
+ elem_week = timepoint.time.isocalendar()[1]
+
+ if cur_week != elem_week:
+ if cur_week:
+ weeks.append(AuthorWeek(cur_week, lines_week))
+ lines_week = newCounter()
+ cur_week = elem_week
+
+ lines_week += timepoint.lines - last_lines
+ last_lines = timepoint.lines
+
+ with open(sys.argv[2], "w", encoding="utf-8") as f:
+ f.write("KW" + " " + " ".join(newCounter().keys()) + "\n")
+ for week in weeks:
+ f.write(str(week) + "\n")
+ else:
+ print("Not enough arguments.")
+
+
diff --git a/docs/Charts/Author Work per Week/lines_of_code_by_author.dat b/docs/Charts/Author Work per Week/lines_of_code_by_author.dat
new file mode 100644
index 0000000..7ed8e8d
--- /dev/null
+++ b/docs/Charts/Author Work per Week/lines_of_code_by_author.dat
@@ -0,0 +1,499 @@
+1571991787 0 0 0 0 0 0 0 0 0 0 0
+1571992060 0 0 5 0 0 0 0 0 0 0 0
+1571992107 0 0 5 0 0 0 0 0 0 0 0
+1571992176 0 0 5 0 0 0 0 0 0 0 0
+1571992184 0 0 5 0 0 0 1 0 0 0 0
+1571992242 0 0 5 0 0 0 1 0 0 0 0
+1571992513 2 0 5 0 0 0 1 0 0 0 0
+1571997491 2 0 5 0 0 0 1 0 0 0 0
+1572021368 2 35 5 0 0 0 1 0 0 0 0
+1572095684 2 53 5 0 0 0 1 0 0 0 0
+1572095844 2 55 5 0 0 0 1 0 0 0 0
+1572095880 2 73 5 0 0 0 1 0 0 0 0
+1572123861 2 82 5 0 0 0 1 0 0 0 0
+1572274536 2 82 5 0 0 0 1 0 0 0 0
+1572275376 2 82 5 0 0 0 1 38 0 0 0
+1572275565 2 82 5 0 0 0 1 39 0 0 0
+1572275941 2 82 5 0 0 0 1 59 0 0 0
+1572276301 2 82 52 0 0 0 1 59 0 0 0
+1572291566 41 82 52 0 0 0 1 59 0 0 0
+1572426596 41 82 52 0 0 0 1 59 0 0 1
+1572426711 41 82 52 0 0 0 1 59 0 0 49
+1572473299 41 82 52 154 0 0 1 59 0 0 49
+1572510395 41 82 52 216 0 0 1 59 0 0 49
+1572522180 41 131 52 216 0 0 1 59 0 0 49
+1572551597 41 131 52 216 0 0 1 59 0 0 49
+1572594285 41 131 52 216 0 0 1 59 0 0 49
+1572691870 41 302 52 216 0 0 1 59 0 0 49
+1572706435 41 302 231 216 0 0 1 59 0 0 49
+1572808315 60 302 231 216 0 0 1 59 0 0 49
+1572886708 60 302 231 216 0 0 73 59 0 0 49
+1572887022 60 302 231 216 0 97 73 59 0 0 49
+1572887051 60 302 231 216 0 97 73 59 0 0 49
+1572887409 60 302 231 216 0 97 73 59 0 0 49
+1572893984 60 329 231 216 0 97 73 59 0 0 49
+1572904592 71 329 231 216 0 97 73 59 0 0 49
+1572971748 71 329 231 216 0 97 73 250 0 0 49
+1573037224 71 329 264 216 0 97 73 250 0 0 49
+1573127713 71 329 264 216 0 97 73 250 0 0 49
+1573128493 71 329 264 216 0 97 73 274 0 0 49
+1573128863 71 329 264 216 0 97 73 278 0 0 49
+1573129321 71 329 264 216 0 97 73 279 0 0 49
+1573129722 71 329 264 216 0 97 73 279 0 0 49
+1573192693 71 329 264 216 0 97 73 279 0 0 49
+1573410216 71 329 656 216 0 97 73 279 0 0 49
+1573424911 506 329 656 216 0 97 73 279 0 0 49
+1573471713 506 329 656 216 0 97 565 279 0 0 49
+1573474730 506 329 656 216 0 97 581 279 0 0 49
+1573476961 506 630 656 216 0 97 581 279 0 0 49
+1573488322 506 630 656 216 0 650 581 279 0 0 49
+1573497739 506 1088 656 216 0 650 581 279 0 0 49
+1573497762 506 1289 656 216 0 650 581 279 0 0 49
+1573497804 506 3478 656 216 0 650 581 279 0 0 49
+1573498119 506 3591 656 216 0 650 581 279 0 0 49
+1573498186 506 3591 656 216 0 650 581 279 0 0 49
+1573722641 506 3591 656 216 0 650 1743 279 0 0 49
+1573767420 506 3591 656 216 0 650 1743 279 0 0 49
+1574015403 506 3591 656 216 0 650 1743 279 0 0 49
+1574015476 506 3591 656 216 0 650 1743 279 0 0 49
+1574015480 506 3591 656 216 0 650 1743 279 0 0 49
+1574015507 506 3591 656 216 0 650 1743 279 0 0 49
+1574015704 506 3591 656 216 0 650 1743 279 0 0 49
+1574177963 506 3984 656 216 0 650 1743 279 0 0 49
+1574197781 506 4096 656 216 0 650 1743 279 0 0 49
+1574248634 506 4178 656 216 0 650 1743 279 0 0 49
+1574337720 506 5499 656 216 0 650 1743 279 0 0 49
+1574339644 506 5573 656 216 0 650 1743 279 0 0 49
+1574400133 506 9978 656 216 0 650 1743 279 0 0 49
+1574406563 506 9979 656 216 0 650 1743 279 0 0 49
+1574408859 506 9980 656 216 0 650 1743 279 0 0 49
+1574539624 506 9980 656 216 0 1244 1743 279 0 0 49
+1574685263 506 9980 656 216 0 1244 1743 279 0 0 49
+1574785603 506 10320 656 216 0 1244 1743 279 0 0 49
+1574938093 506 10320 656 216 0 1244 1743 279 0 0 49
+1574939088 506 10320 656 216 0 1244 1743 279 0 0 49
+1574945524 506 10320 656 216 0 1244 1743 279 0 0 49
+1574946277 506 10320 656 216 0 1244 1743 279 0 0 49
+1574955266 506 10447 656 216 0 1244 1743 279 0 0 49
+1574955475 506 10449 656 216 0 1244 1743 279 0 0 49
+1574955534 506 10449 662 216 0 1244 1743 279 0 0 49
+1574955587 506 10449 3015 216 0 1244 1743 279 0 0 49
+1575467660 506 10449 3015 216 5243 1244 1743 279 0 0 49
+1575478098 506 10449 3015 216 5243 1244 1743 279 0 0 49
+1575478138 506 10449 3015 4910 5243 1244 1743 279 0 0 49
+1575478934 506 10449 3015 5424 5243 1244 1743 279 0 0 49
+1575479274 506 10449 3015 5505 5243 1244 1743 279 0 0 49
+1575482313 506 10449 3015 10463 5243 1244 1743 279 0 0 49
+1575496090 506 10449 3015 10466 5243 1244 1743 279 0 0 49
+1575546214 508 10449 3015 10466 5243 1244 1743 279 0 0 49
+1575550820 508 10449 3392 10466 5243 1244 1743 279 0 0 49
+1575551344 508 10449 3392 10466 5243 1244 1743 279 0 0 49
+1575551922 508 11082 3392 10466 5243 1244 1743 279 0 0 49
+1575553440 508 11090 3392 10466 5243 1244 1743 279 0 0 49
+1575553672 508 11090 3392 10466 5243 1244 1743 279 0 0 49
+1575553681 508 11090 3392 10466 5243 1244 1743 279 0 0 49
+1575554086 508 11091 3392 10466 5243 1244 1743 279 0 0 49
+1575554115 508 11091 3392 10466 5243 1244 1743 279 0 0 49
+1575561287 508 11092 3392 10466 5243 1244 1743 279 0 0 49
+1575561355 508 11092 3392 10466 5243 1244 1743 279 0 0 49
+1575561372 508 14859 3392 10466 5243 1244 1743 279 0 0 49
+1575561411 508 14859 3392 10466 5243 1244 1743 279 0 0 49
+1575562627 508 14859 3392 10468 5243 1244 1743 279 0 0 49
+1575562654 508 14859 3392 10468 5243 1244 1743 279 0 0 49
+1575563126 508 14859 3392 10468 5243 1244 1743 279 0 0 49
+1575563441 508 14859 7145 10468 5243 1244 1743 279 0 0 49
+1575563915 508 14859 7170 10468 5243 1244 1743 279 0 0 49
+1575564039 508 14859 7170 10468 5243 1244 1743 279 0 0 49
+1575564433 508 14859 7170 10468 5243 1244 1743 279 0 0 49
+1575564835 508 16459 7170 10468 5243 1244 1743 279 0 0 49
+1575565013 752 16459 7170 10468 5243 1244 1743 279 0 0 49
+1575565073 752 16459 7172 10468 5243 1244 1743 279 0 0 49
+1575565238 753 16459 7172 10468 5243 1244 1743 279 0 0 49
+1575565368 757 16459 7172 10468 5243 1244 1743 279 0 0 49
+1575565411 757 16459 7172 10468 5243 1244 1743 279 0 0 49
+1575566349 757 16459 7172 10468 5243 1244 1743 279 0 0 49
+1575566526 757 16459 7172 10468 5243 1244 1743 279 0 0 49
+1575566571 757 16459 7172 10468 5243 1244 1743 279 0 0 49
+1575566844 757 16459 7172 10468 5243 1244 1743 279 0 0 49
+1575567180 2443 16459 7172 10468 5243 1244 1743 279 0 0 49
+1575568504 2443 16459 7172 10819 5243 1244 1743 279 0 0 49
+1575568605 2443 16459 7172 10819 5243 1244 1743 279 0 0 49
+1575568639 2443 16459 7172 10819 5243 1244 1743 279 0 0 49
+1575570521 2443 16459 7172 10819 5243 1244 1743 279 0 0 49
+1575578183 2443 16459 7172 10819 5243 1244 7046 279 0 0 49
+1575580129 2444 16459 7172 10819 5243 1244 7046 279 0 0 49
+1575580242 2444 16459 7172 10819 5243 1244 7046 279 0 0 49
+1575580581 2444 16459 7172 10819 5243 1244 7194 279 0 0 49
+1575615059 2447 16459 7172 10819 5243 1244 7194 279 0 0 49
+1575615115 2447 16484 7172 10819 5243 1244 7194 279 0 0 49
+1575615997 2447 16484 7172 10819 5243 1244 7194 279 0 0 49
+1575617739 2447 16484 7172 10819 5243 1244 7194 279 0 0 49
+1575618709 2447 16484 7172 10819 5243 1244 7194 279 0 0 49
+1575618836 2454 16484 7172 10819 5243 1244 7194 279 0 0 49
+1575618924 2454 16484 7172 10819 5243 1244 7194 279 0 0 49
+1575618988 2454 16484 7172 10819 5243 1244 7194 279 0 0 49
+1575619681 2468 16484 7172 10819 5243 1244 7194 279 0 0 49
+1575619919 2472 16484 7172 10819 5243 1244 7194 279 0 0 49
+1575620064 2472 16484 7172 10819 5243 1244 7194 279 0 0 49
+1575620415 2472 16518 7172 10819 5243 1244 7194 279 0 0 49
+1575620466 2472 16518 7172 10819 5243 1244 7194 279 0 0 49
+1575620566 2474 16518 7172 10819 5243 1244 7194 279 0 0 49
+1575620594 2476 16518 7172 10819 5243 1244 7194 279 0 0 49
+1575620626 2476 16518 7172 10819 5243 1244 7194 279 0 0 49
+1575620820 2476 16518 7172 10819 5243 1244 7194 279 0 0 49
+1575621112 2477 16518 7172 10819 5243 1244 7194 279 0 0 49
+1575621255 2481 16518 7172 10819 5243 1244 7194 279 0 0 49
+1575621821 2482 16518 7172 10819 5243 1244 7194 279 0 0 49
+1575623139 2485 16518 7172 10819 5243 1244 7194 279 0 0 49
+1575902577 2485 16640 7172 10819 5243 1244 7194 279 0 0 49
+1575902705 2485 16641 7172 10819 5243 1244 7194 279 0 0 49
+1575902988 2485 16641 7172 10819 5243 1244 7194 279 0 0 49
+1575914318 2485 16826 7172 10819 5243 1244 7194 279 0 0 49
+1575916712 2485 17001 7172 10819 5243 1244 7194 279 0 0 49
+1575976815 2485 17148 7172 10819 5243 1244 7194 279 0 0 49
+1575988342 2485 17263 7172 10819 5243 1244 7194 279 0 0 49
+1575989062 2485 17271 7172 10819 5243 1244 7194 279 0 0 49
+1576069305 2486 17271 7172 10819 5243 1244 7194 279 0 0 49
+1576078151 2486 17271 7172 10819 5427 1244 7194 279 0 0 49
+1576083463 2486 17271 7172 10819 5427 1244 7194 279 0 0 49
+1576086844 2486 17350 7172 10819 5427 1244 7194 279 0 0 49
+1576142540 2486 17350 7172 10819 5607 1244 7194 279 0 0 49
+1576145917 2486 17486 7172 10819 5607 1244 7194 279 0 0 49
+1576146136 2486 17489 7172 10819 5607 1244 7194 279 0 0 49
+1576146626 2486 17489 7172 10819 5607 1244 7194 279 0 0 49
+1576152188 2486 17600 7172 10819 5607 1244 7194 279 0 0 49
+1576153042 2486 17625 7172 10819 5607 1244 7194 279 0 0 49
+1576156091 2486 17641 7172 10819 5607 1244 7194 279 0 0 49
+1576166825 2486 17641 7172 10819 5607 1244 7194 279 0 0 49
+1576179508 2486 17641 7172 10819 5607 1244 7194 279 0 0 49
+1576223558 2489 17641 7172 10819 5607 1244 7194 279 0 0 49
+1576223873 2489 17641 7172 10819 5607 1244 7194 279 0 0 49
+1576224799 2512 17641 7172 10819 5607 1244 7194 279 0 0 49
+1576225777 2532 17641 7172 10819 5607 1244 7194 279 0 0 49
+1576227265 2532 17641 7172 10819 5607 1244 7194 279 0 0 49
+1576239655 2532 17766 7172 10819 5607 1244 7194 279 0 0 49
+1576239687 2532 17767 7172 10819 5607 1244 7194 279 0 0 49
+1576239735 2532 17767 7172 10819 5607 1244 7194 279 0 0 49
+1576239882 2532 17769 7172 10819 5607 1244 7194 279 0 0 49
+1576240212 2532 17769 7172 10819 5607 1244 7194 279 0 0 49
+1576241252 2532 17859 7172 10819 5607 1244 7194 279 0 0 49
+1576520636 2532 17934 7172 10819 5607 1244 7194 279 0 0 49
+1576520952 2532 17935 7172 10819 5607 1244 7194 279 0 0 49
+1576588281 29148 17935 7172 10819 5607 1244 7194 279 0 0 49
+1576601142 29148 17935 7172 10819 5735 1244 7194 279 0 0 49
+1576665712 29149 17935 7172 10819 5735 1244 7194 279 0 0 49
+1576669440 29149 17935 7172 10819 5735 1244 7194 279 0 0 49
+1576670545 29152 17935 7172 10819 5735 1244 7194 279 0 0 49
+1576670901 29153 17935 7172 10819 5735 1244 7194 279 0 0 49
+1576671110 29154 17935 7176 10819 5735 1244 7194 279 0 0 49
+1576672121 29178 17935 7176 10819 5735 1244 7194 279 0 0 49
+1576673333 29179 17935 7176 10819 5735 1244 7194 279 0 0 49
+1576673756 29179 17935 7176 10819 5735 1244 7194 279 0 0 49
+1576676219 29183 17935 7176 10819 5735 1244 7194 279 0 0 49
+1576678210 29183 17935 7176 10819 5735 2294 7194 279 0 0 49
+1576680443 29183 17935 7176 10819 5800 2294 7194 279 0 0 49
+1576683131 29183 18083 7176 10819 5800 2294 7194 279 0 0 49
+1576683158 29183 18083 7176 10819 5800 2294 7194 279 0 0 49
+1576683257 29183 18084 7176 10819 5800 2294 7194 279 0 0 49
+1576685843 29183 18154 7176 10819 5800 2294 7194 279 0 0 49
+1576687749 29183 18171 7176 10819 5800 2294 7194 279 0 0 49
+1576687764 29183 18171 7176 10819 5800 2294 7530 279 0 0 49
+1576687810 29183 18171 7176 10819 5800 2294 7550 279 0 0 49
+1576687913 29183 18171 7176 10819 5800 2294 7550 279 0 0 49
+1576688088 29183 18171 7176 10819 5800 2294 7550 279 0 0 49
+1576688269 29183 18179 7176 10819 5800 2294 7550 279 0 0 49
+1576689570 29183 18269 7176 10819 5800 2294 7550 279 0 0 49
+1576691975 29183 18290 7176 10819 5800 2294 7550 279 0 0 49
+1576694471 29183 18290 7176 10819 5800 2294 7602 279 0 0 49
+1576697858 29183 18319 7176 10819 5800 2294 7602 279 0 0 49
+1576697964 29183 18319 7176 10819 5800 2294 7602 279 0 0 49
+1576743340 29183 18345 7176 10819 5800 2294 7602 279 0 0 49
+1576745088 29183 18468 7176 10819 5800 2294 7602 279 0 0 49
+1576751366 40951 18468 7176 10819 5800 2294 7602 279 0 0 49
+1576751494 40951 18468 7176 10819 5800 2294 7602 279 0 0 49
+1576752232 40951 18638 7176 10819 5800 2294 7602 279 0 0 49
+1576752259 40951 18638 7176 10819 5800 2294 7602 279 0 0 49
+1576752453 40951 18638 7176 10819 5800 2294 7608 279 0 0 49
+1576753401 41002 18638 7176 10819 5800 2294 7608 279 0 0 49
+1576753494 41002 18638 7176 10819 5800 2294 7608 279 0 46 49
+1576753531 41002 18638 7176 10819 5800 2294 7656 279 0 46 49
+1576753631 41002 18638 7176 10819 5800 2294 7656 279 0 46 49
+1576754936 41002 18638 7176 10819 5800 2294 7656 279 0 165 49
+1576754998 41002 18911 7176 10819 5800 2294 7656 279 0 165 49
+1576755127 41002 18924 7176 10819 5800 2294 7656 279 0 165 49
+1576755575 43988 18924 7176 10819 5800 2294 7656 279 0 165 49
+1576755802 43988 18924 7176 10819 5800 2294 7656 279 0 165 49
+1576759850 48050 18924 7176 10819 5800 2294 7656 279 0 165 49
+1576760057 48050 18995 7176 10819 5800 2294 7656 279 0 165 49
+1576760069 48050 18995 7176 10819 5800 2294 7656 279 0 165 49
+1576760326 48050 19040 7176 10819 5800 2294 7656 279 0 165 49
+1576760881 48050 19040 7176 10819 5800 2333 7656 279 0 165 49
+1576762395 48050 19040 7176 10819 5800 2343 7656 279 0 165 49
+1576762408 48050 19106 7176 10819 5800 2343 7656 279 0 165 49
+1576762415 48050 19106 7176 10819 5800 2343 7656 279 0 165 49
+1576762581 48050 19106 7176 10819 5800 2344 7656 279 0 165 49
+1576773019 48050 19106 7176 10819 5800 2344 7656 279 0 165 49
+1576773127 48058 19106 7176 10819 5800 2344 7656 279 0 165 49
+1576773550 48058 19113 7176 10819 5800 2344 7656 279 0 165 49
+1576773564 48069 19113 7176 10819 5800 2344 7656 279 0 165 49
+1576773575 48069 19113 7176 10819 5800 2344 7656 279 0 165 49
+1576773586 48069 19113 7176 10819 5800 2344 7656 279 0 165 49
+1576773691 48077 19113 7176 10819 5800 2344 7656 279 0 165 49
+1576775653 48176 19113 7176 10819 5800 2344 7656 279 0 165 49
+1576775786 48182 19113 7176 10819 5800 2344 7656 279 0 165 49
+1576776466 49913 19113 7176 10819 5800 2344 7656 279 0 165 49
+1576777118 49914 19113 7176 10819 5800 2344 7656 279 0 165 49
+1576780698 49921 19113 7176 10819 5800 2344 7656 279 0 165 49
+1576780748 52917 19113 7176 10819 5800 2344 7656 279 0 165 49
+1576781046 52917 19113 7176 10819 5800 2344 7656 279 0 165 49
+1576826483 52917 19113 7181 10819 5800 2344 7656 279 0 165 49
+1576828575 52917 19115 7181 10819 5800 2344 7656 279 0 165 49
+1576829006 52928 19115 7181 10819 5800 2344 7656 279 0 165 49
+1576829702 52932 19115 7181 10819 5800 2344 7656 279 0 165 49
+1576831830 53041 19115 7181 10819 5800 2344 7656 279 0 165 49
+1576832576 53041 19115 7181 10819 5800 2344 7688 279 0 165 49
+1576832757 53134 19115 7181 10819 5800 2344 7688 279 0 165 49
+1576832783 53134 19115 7181 10819 5800 2344 7688 279 0 165 49
+1576833239 53134 19115 7181 10819 5800 2344 7688 279 0 165 49
+1576834969 53141 19115 7181 10819 5800 2344 7688 279 0 165 49
+1578335804 53672 19115 7181 10819 5800 2344 7688 279 0 165 49
+1578406994 53672 19115 7181 10819 5888 2344 7688 279 0 165 49
+1578407704 53672 19115 7181 10819 5890 2344 7688 279 0 165 49
+1578409434 53672 19115 7181 10819 5899 2344 7688 279 0 165 49
+1578409547 53672 19115 7181 10819 5899 2344 7688 279 0 165 49
+1578415192 53672 19115 7181 10819 5966 2344 7688 279 0 165 49
+1578415273 53672 19115 7181 10819 5966 2344 7688 279 0 165 49
+1578493869 53672 19115 7242 10819 5966 2344 7688 279 0 165 49
+1578494836 53672 19115 7242 10819 6077 2344 7688 279 0 165 49
+1578495231 53672 19115 7242 10819 6083 2344 7688 279 0 165 49
+1578498116 53672 19115 7242 10819 6148 2344 7688 279 0 165 49
+1578504410 53672 19115 7242 10819 6148 2344 7688 279 0 165 49
+1578506465 53672 19115 7373 10819 6148 2344 7688 279 0 165 49
+1578508835 53672 19115 7411 10819 6148 2344 7688 279 0 165 49
+1578509734 53672 19115 7411 10819 6266 2344 7688 279 0 165 49
+1578509816 53672 19115 7433 10819 6266 2344 7688 279 0 165 49
+1578514052 53672 19115 7433 10819 7280 2344 7688 279 0 165 49
+1578527257 53672 19115 7433 10819 7280 2344 7688 279 0 165 49
+1578527279 53672 19115 7433 10819 7280 2344 7688 279 0 165 49
+1578527537 53672 19115 7433 10819 7280 2344 7688 279 0 165 49
+1578527883 53672 19115 7433 10819 7391 2344 7688 279 0 165 49
+1578528190 53672 19115 7433 10819 7391 2344 7688 279 0 165 49
+1578528445 53672 19115 7433 10819 7391 2344 7688 279 0 165 49
+1578528640 53672 19115 7433 10819 7391 2344 7688 279 0 165 49
+1578528664 53672 19115 7433 10819 7391 2344 7688 279 0 165 49
+1578534223 53672 19115 7433 10819 7456 2344 7688 279 0 165 49
+1578534306 53672 19115 7433 10819 7456 2344 7688 279 0 165 49
+1578561158 53709 19115 7433 10819 7456 2344 7688 279 0 165 49
+1578561238 53710 19115 7433 10819 7456 2344 7688 279 0 165 49
+1578561302 53724 19115 7433 10819 7456 2344 7688 279 0 165 49
+1578561508 54170 19115 7433 10819 7456 2344 7688 279 0 165 49
+1578561555 54265 19115 7433 10819 7456 2344 7688 279 0 165 49
+1578561680 54265 19115 7433 10819 7456 2344 7688 279 0 165 49
+1578562501 54265 19115 7552 10819 7456 2344 7688 279 0 165 49
+1578562778 54265 19115 7552 10819 7456 2344 7688 279 0 165 49
+1578562814 54265 19115 7552 10819 7456 2344 7688 279 0 165 49
+1578563154 54265 19115 7559 10819 7456 2344 7688 279 0 165 49
+1578566136 54359 19115 7559 10819 7456 2344 7688 279 0 165 49
+1578566170 54368 19115 7559 10819 7456 2344 7688 279 0 165 49
+1578566666 54547 19115 7559 10819 7456 2344 7688 279 0 165 49
+1578566890 54547 19115 7559 10819 7456 2344 7688 279 0 165 49
+1578567293 64955 19115 7559 10819 7456 2344 7688 279 0 165 49
+1578568203 64955 19115 7559 10819 7456 3332 7688 279 0 165 49
+1578568317 64955 19115 7559 10819 7456 4088 7688 279 0 165 49
+1578574762 64955 19115 8165 10819 7456 4088 7688 279 0 165 49
+1578574984 64955 19115 8165 10819 7456 4088 7688 279 0 165 49
+1578577704 64955 19115 8242 10819 7456 4088 7688 279 0 165 49
+1578580182 64955 19115 8258 10819 7456 4088 7688 279 0 165 49
+1578586047 64955 19115 8284 10819 7456 4088 7688 279 0 165 49
+1578595181 64955 19115 8284 10819 7456 4088 7688 279 0 165 49
+1578596980 64955 19115 8284 10827 7456 4088 7688 279 0 165 49
+1578597530 64955 19115 8284 10830 7456 4088 7688 279 0 165 49
+1578600456 64955 19115 8284 10936 7456 4088 7688 279 0 165 49
+1578604811 64955 19115 8284 10966 7456 4088 7688 279 0 165 49
+1578651308 64955 19115 8284 10966 7456 4088 8822 279 0 165 49
+1578651377 64955 19115 8317 10966 7456 4088 8822 279 0 165 49
+1578655735 64955 19115 8317 10966 7499 4088 8822 279 0 165 49
+1578656341 64955 19115 8317 10966 7522 4088 8822 279 0 165 49
+1578656468 64955 19115 8317 10966 7522 4088 8822 279 0 165 49
+1578662159 64955 19115 8317 10966 7598 4088 8822 279 0 165 49
+1578687049 64955 19115 8317 10966 7719 4088 8822 279 0 165 49
+1578843723 64955 19115 8317 10966 7719 4088 8822 279 0 165 49
+1578857019 64955 19115 8317 11149 7719 4088 8822 279 0 165 49
+1578863669 64955 19115 8317 11423 7719 4088 8822 279 0 165 49
+1578940642 65552 19115 8317 11423 7719 4088 8822 279 0 165 49
+1578941970 66020 19115 8317 11423 7719 4088 8822 279 0 165 49
+1579032123 66020 19115 8403 11423 7719 4088 8822 279 0 165 49
+1579034954 66020 19115 8403 12372 7719 4088 8822 279 0 165 49
+1579037537 66020 19115 8403 12430 7719 4088 8822 279 0 165 49
+1579083241 66020 19115 8431 12430 7719 4088 8822 279 0 165 49
+1579085157 66028 19115 8431 12430 7719 4088 8822 279 0 165 49
+1579085271 66036 19115 8431 12430 7719 4088 8822 279 0 165 49
+1579086077 66039 19115 8431 12430 7719 4088 8822 279 0 165 49
+1579086156 66043 19115 8431 12430 7719 4088 8822 279 0 165 49
+1579087023 66061 19115 8431 12430 7719 4088 8822 279 0 165 49
+1579087980 66075 19115 8431 12430 7719 4088 8822 279 0 165 49
+1579088129 66075 19115 8518 12430 7719 4088 8822 279 0 165 49
+1579093492 66457 19115 8518 12430 7719 4088 8822 279 0 165 49
+1579093699 66465 19115 8518 12430 7719 4088 8822 279 0 165 49
+1579093784 66465 19115 8518 12430 7719 4088 8822 279 0 165 49
+1579094219 66470 19115 8518 12430 7719 4088 8822 279 0 165 49
+1579094594 66470 19115 8571 12430 7719 4088 8822 279 0 165 49
+1579095157 66475 19115 8571 12430 7719 4088 8822 279 0 165 49
+1579095313 66477 19115 8571 12430 7719 4088 8822 279 0 165 49
+1579095474 66478 19115 8571 12430 7719 4088 8822 279 0 165 49
+1579095870 66486 19115 8571 12430 7719 4088 8822 279 0 165 49
+1579096130 66692 19115 8571 12430 7719 4088 8822 279 0 165 49
+1579096326 66692 19115 8571 12430 7719 4088 8822 279 0 165 49
+1579096414 66692 19115 8571 12430 7719 4088 8822 279 0 165 49
+1579096647 66692 19115 8571 12430 7719 4088 8822 279 0 165 49
+1579096955 66692 19115 8571 12430 7719 4088 8822 279 0 165 49
+1579097014 66702 19115 8571 12430 7719 4088 8822 279 0 165 49
+1579097184 67004 19115 8571 12430 7719 4088 8822 279 0 165 49
+1579097380 67006 19115 8571 12430 7719 4088 8822 279 0 165 49
+1579097555 67018 19115 8571 12430 7719 4088 8822 279 0 165 49
+1579097665 67020 19115 8571 12430 7719 4088 8822 279 0 165 49
+1579097962 67024 19115 8571 12430 7719 4088 8822 279 0 165 49
+1579098121 67033 19115 8571 12430 7719 4088 8822 279 0 165 49
+1579098128 67182 19115 8571 12430 7719 4088 8822 279 0 165 49
+1579098191 67194 19115 8571 12430 7719 4088 8822 279 0 165 49
+1579098196 67203 19115 8571 12430 7719 4088 8822 279 0 165 49
+1579099718 67203 19115 8571 12430 7798 4088 8822 279 0 165 49
+1579108163 67203 19115 8571 13164 7798 4088 8822 279 0 165 49
+1579108742 67203 19115 8571 13164 7798 4088 8822 279 0 165 49
+1579110017 67203 19115 8571 13214 7798 4088 8822 279 0 165 49
+1579111491 67203 19115 8571 13252 7798 4088 8822 279 0 165 49
+1579113555 67203 19115 8571 13331 7798 4088 8822 279 0 165 49
+1579116951 67203 19115 8573 13331 7798 4088 8822 279 0 165 49
+1579129227 67203 19115 8665 13331 7798 4088 8822 279 0 165 49
+1579129884 67203 19115 8665 13331 7798 4088 8822 279 0 165 49
+1579131162 67203 19115 8679 13331 7798 4088 8822 279 0 165 49
+1579167034 67207 19115 8679 13331 7798 4088 8822 279 0 165 49
+1579168796 67207 19115 8679 13331 7798 4088 8822 279 0 165 49
+1579169963 68363 19115 8688 13331 7798 4088 8822 279 0 165 49
+1579170284 68363 19115 8688 13331 7798 4088 8822 279 0 165 49
+1579170958 68453 19115 8688 13331 7798 4088 8822 279 0 165 49
+1579171063 68460 19115 8688 13331 7798 4088 8822 279 0 165 49
+1579171143 68467 19115 8688 13331 7798 4088 8822 279 0 165 49
+1579172451 68534 19115 8688 13331 7798 4088 8822 279 0 165 49
+1579172959 68550 19115 8688 13331 7798 4088 8822 279 0 165 49
+1579172970 74147 19115 8688 13331 7798 4088 8822 279 0 165 49
+1579173003 74147 19115 8688 13331 7798 4088 8822 279 0 165 49
+1579173068 74147 19115 8716 13331 7798 4088 8822 279 0 165 49
+1579173451 74148 19115 8716 13331 7798 4088 8822 279 0 165 49
+1579173861 74158 19115 8716 13331 7798 4088 8822 279 0 165 49
+1579174799 74163 19115 8716 13331 7798 4088 8822 279 0 165 49
+1579175155 74165 19115 8716 13331 7798 4088 8822 279 0 165 49
+1579175189 74169 19115 14470 13331 7798 4088 8883 279 0 165 49
+1579175545 74169 19115 15192 13331 7798 4088 8883 279 0 165 49
+1579180876 74169 19115 15220 13331 7798 4088 8883 279 0 165 49
+1579182683 74169 19115 15220 13331 7798 4093 8883 279 0 165 49
+1579182724 74169 19115 15220 13331 7798 4690 8883 279 0 165 49
+1579183600 74169 19115 15220 13331 7798 4815 8883 279 0 165 49
+1579183672 74169 19115 15220 13331 7798 4815 8883 279 0 165 49
+1579183735 74169 19115 15220 13331 7798 4872 8883 279 0 165 49
+1579183825 74169 19115 15220 13331 7798 4872 8883 279 0 165 49
+1579188930 74169 19115 15220 13331 7798 4872 8937 279 0 165 49
+1579189795 74169 19115 15220 13334 7798 4872 8937 279 0 165 49
+1579189799 74169 19115 15220 13335 7798 4872 8937 279 0 165 49
+1579189816 74169 19115 15220 13335 7798 4872 8937 279 0 165 49
+1579189903 74169 19115 15220 13335 7798 4872 8937 279 0 165 49
+1579190016 74169 19115 15220 13335 7798 4872 8937 279 0 165 49
+1579191739 74169 19115 15220 13335 7812 4872 8937 279 0 165 49
+1579192612 74169 19115 15220 13335 7823 4872 8937 279 0 165 49
+1579196253 74169 19115 15220 13335 7823 4947 8937 279 0 165 49
+1579196348 74169 19115 15220 13335 7823 4947 8937 279 0 165 49
+1579196763 74169 19115 15220 13335 7823 4947 8937 279 0 165 49
+1579196777 74169 19115 15220 13335 7823 4947 8937 279 0 165 49
+1579196933 74169 19115 15220 13336 7823 4947 8937 279 0 165 49
+1579196971 74169 19115 15220 13336 7823 4947 8937 279 0 165 49
+1579197295 74169 19115 15220 13337 7823 4947 8937 279 0 165 49
+1579205957 74169 19115 15220 13337 7836 4947 8937 279 0 165 49
+1579206107 74169 19115 15220 13337 7839 4947 8937 279 0 165 49
+1579206711 74169 19115 15220 13337 7839 4947 8937 279 0 165 49
+1579211715 76242 19115 15220 13337 7839 4947 8937 279 0 165 49
+1579211781 76245 19115 15220 13337 7839 4947 8937 279 0 165 49
+1579212221 76246 19115 15220 13337 7839 4947 8937 279 0 165 49
+1579212252 76386 19115 15220 13337 7839 4947 8937 279 0 165 49
+1579242865 76389 19115 15220 13337 7839 4947 8937 279 0 165 49
+1579243595 76408 19115 15220 13337 7839 4947 8937 279 0 165 49
+1579247760 76408 19115 15234 13337 7839 4947 8937 279 0 165 49
+1579248443 79010 19115 15234 13337 7839 4947 8937 279 0 165 49
+1579250840 79010 19115 15253 13337 7839 4947 8937 279 0 165 49
+1579251565 79010 19115 15253 13337 7839 4947 8937 279 0 165 49
+1579251604 79010 19115 16150 13337 7839 4947 8937 279 0 165 49
+1579251622 79010 19115 16150 13337 7839 4947 8937 279 0 165 49
+1579547151 79010 19115 16185 13337 7839 4947 8937 279 0 165 49
+1579547260 79010 19115 16185 13337 7839 4947 9255 279 0 165 49
+1579724364 79010 19115 16185 13406 7839 4947 9255 279 0 165 49
+1579726328 79010 19115 16185 13410 7839 4947 9255 279 0 165 49
+1579781611 79010 19115 16185 13410 7839 4947 9594 279 0 165 49
+1579781737 79010 19115 16185 13410 7839 4947 9620 279 0 165 49
+1579783664 79010 19115 16185 13410 7839 4947 9627 279 0 165 49
+1579783723 79010 19115 16185 13410 7839 4947 9629 279 0 165 49
+1579785322 79010 19115 16242 13410 7839 4947 9629 279 0 165 49
+1579787013 79010 19115 16262 13410 7839 4947 9629 279 0 165 49
+1579788582 79010 19115 16262 13410 7839 6160 9629 279 0 165 49
+1579788957 79010 19115 16287 13410 7839 6160 9629 279 0 165 49
+1579792432 79010 19115 16287 13429 7839 6160 9629 279 0 165 49
+1579793875 79010 19115 16287 13453 7839 6160 9629 279 0 165 49
+1579793932 79010 19115 16291 13453 7839 6160 9629 279 0 165 49
+1579806823 79010 19115 16291 13599 7839 6160 9629 279 0 165 49
+1579807199 79010 19115 16291 13609 7839 6160 9629 279 0 165 49
+1579807326 79010 19115 16291 13609 7839 6160 9629 279 0 165 49
+1579807472 79010 19115 16291 13610 7839 6160 9629 279 0 165 49
+1579807958 79010 19115 16291 13610 7839 6160 9629 279 0 165 49
+1579808178 79010 19115 16291 13612 7839 6160 9629 279 0 165 49
+1579808218 79010 19115 16291 13612 7839 6160 9629 279 0 165 49
+1579808688 79010 19115 16291 13612 7839 6160 9629 279 0 165 49
+1579811944 79010 19115 16291 13701 7839 6160 9629 279 0 165 49
+1579820806 86414 19115 16291 13701 7839 6160 9629 279 0 165 49
+1579977434 86414 19115 16291 13701 7968 6160 9629 279 0 165 49
+1579985665 86414 19115 16291 13701 8090 6160 9629 279 0 165 49
+1580060594 86414 19115 16291 13701 8125 6160 9629 279 0 165 49
+1580061450 86414 19115 16291 13701 8128 6160 9629 279 0 165 49
+1580062245 86414 19115 16291 13731 8128 6160 9629 279 0 165 49
+1580062321 86414 19115 16291 13731 8128 6160 9629 279 0 165 49
+1580147911 86414 19200 16291 13731 8128 6160 9629 279 0 165 49
+1580148436 86415 19200 16291 13731 8128 6160 9629 279 0 165 49
+1580148524 86451 19200 16291 13731 8128 6160 9629 279 0 165 49
+1580201244 86451 19200 16291 13731 8128 6160 9629 279 0 165 49
+1580204514 86451 20135 16291 13731 8128 6160 9629 279 0 165 49
+1580204552 86451 20305 16291 13731 8128 6160 9629 279 0 165 49
+1580204694 86451 20319 16291 13731 8128 6160 9629 279 0 165 49
+1580208249 86476 20319 16291 13731 8128 6160 9629 279 0 165 49
+1580208502 86477 20319 16291 13731 8128 6160 9629 279 0 165 49
+1580208614 86486 20319 16291 13731 8128 6160 9629 279 0 165 49
+1580208735 86486 20319 16291 13731 8128 6160 9639 279 0 165 49
+1580211185 86488 20319 16291 13731 8128 6160 9639 279 0 165 49
+1580236320 86488 20319 16291 13731 8128 6160 9639 279 0 165 49
+1580244698 86488 20319 16291 13731 8128 6295 9639 279 0 165 49
+1580244723 86488 20319 16291 13731 8128 6295 9639 279 0 165 49
+1580287630 86491 20319 16291 13731 8128 6295 9639 279 0 165 49
+1580288074 86502 20319 16291 13731 8128 6295 9639 279 0 165 49
+1580288379 86504 20319 16291 13731 8128 6295 9639 279 0 165 49
+1580288645 86507 20319 16291 13731 8128 6295 9639 279 0 165 49
+1580288680 86508 20319 16291 13731 8128 6295 9639 279 0 165 49
+1580290105 86509 20319 16291 13731 8128 6295 9639 279 0 165 49
+1580300494 86509 20319 16291 13731 8130 6295 9639 279 0 165 49
+1580301354 86509 20319 16291 13731 8138 6295 9639 279 0 165 49
+1580301754 86509 20319 16291 13731 8138 6295 9639 279 0 165 49
+1580302072 86509 20319 16291 13731 8141 6295 9639 279 0 165 49
+1580302154 86509 20319 16291 13731 8141 6295 9639 279 0 165 49
+1580383048 86509 20319 16291 13731 8141 6295 9653 279 0 165 49
+1580387441 86509 20799 16291 13731 8141 6295 9653 279 0 165 49
+1580387546 86509 20799 16291 13731 8141 6295 9653 279 0 165 49
+1580392820 86509 20799 16291 13731 8141 6350 9653 279 0 165 49
+1580402606 86509 20799 16293 13731 8141 6350 9653 279 0 165 49
+1580403835 86509 20799 16293 13734 8141 6350 9653 279 0 165 49
+1580405047 86509 20799 16293 13743 8141 6350 9653 279 0 165 49
+1580405139 86509 20799 16293 13743 8141 6350 9653 279 0 165 49
+1580405158 86509 20799 16293 13743 8141 6350 9653 279 0 165 49
+1580405401 86509 20799 16293 13750 8141 6350 9653 279 0 165 49
+1580405520 86509 20799 16298 13750 8141 6350 9653 279 0 165 49
+1580405530 86509 20799 16298 13750 8141 6350 9653 279 0 165 49
+1580412285 86524 20799 16298 13750 8141 6350 9653 279 0 165 49
+1580412717 86524 20799 16298 13750 8141 6350 9653 279 0 165 49
+1580412974 86524 20799 16298 13750 8141 6350 9653 279 0 165 49
+1580413351 91980 20799 16298 13750 8141 6350 9653 279 0 165 49
+1580456804 91984 20799 16298 13750 8141 6350 9653 279 0 165 49
+1580845047 91984 20799 16298 13750 8141 6350 9653 279 0 165 49
diff --git a/docs/Charts/Author Work per Week/lines_of_code_by_author.plot b/docs/Charts/Author Work per Week/lines_of_code_by_author.plot
new file mode 100644
index 0000000..189d97b
--- /dev/null
+++ b/docs/Charts/Author Work per Week/lines_of_code_by_author.plot
@@ -0,0 +1,15 @@
+set terminal png transparent size 640,240
+set size 1.0,1.0
+
+set terminal png transparent size 640,480
+set output 'lines_of_code_by_author.png'
+set key left top
+set yrange [0:]
+set xdata time
+set timefmt "%s"
+set format x "%Y-%m-%d"
+set grid y
+set ylabel "Lines"
+set xtics rotate
+set bmargin 6
+plot 'lines_of_code_by_author.dat' using 1:2 title "Conrad" w lines, 'lines_of_code_by_author.dat' using 1:3 title "Sonaion" w lines, 'lines_of_code_by_author.dat' using 1:4 title "Jan Schuffenhauer" w lines, 'lines_of_code_by_author.dat' using 1:5 title "Jonas Mucke" w lines, 'lines_of_code_by_author.dat' using 1:6 title "AshBastian" w lines, 'lines_of_code_by_author.dat' using 1:7 title "Paul Norberger" w lines, 'lines_of_code_by_author.dat' using 1:8 title "Mienek" w lines, 'lines_of_code_by_author.dat' using 1:9 title "Bastian Schindler" w lines, 'lines_of_code_by_author.dat' using 1:10 title "Conrad Großer" w lines, 'lines_of_code_by_author.dat' using 1:11 title "deranonymos" w lines, 'lines_of_code_by_author.dat' using 1:12 title "DER Seb" w lines
diff --git a/docs/Charts/Author Work per Week/output.dat b/docs/Charts/Author Work per Week/output.dat
new file mode 100644
index 0000000..5b025d5
--- /dev/null
+++ b/docs/Charts/Author Work per Week/output.dat
@@ -0,0 +1,14 @@
+KW Conrad Paul Basti Seb Mucke Jan
+43 0 46 0 1 82 5
+44 19 202 88 49 436 226
+45 148 618 330 72 27 425
+46 0 1468 0 1670 3262 0
+47 0 1462 0 0 6389 0
+48 0 0 0 0 469 2359
+49 659 390 7000 5451 7000 4157
+50 15 0 546 0 1341 0
+51 7000 2762 289 494 1256 174
+2 3938 3764 2878 1134 604 1136
+3 4685 1792 180 115 1914 7000
+4 2468 3018 433 692 394 141
+5 1856 974 19 24 1703 7
diff --git a/docs/Charts/Author Work per Week/workload_per_week.plt b/docs/Charts/Author Work per Week/workload_per_week.plt
new file mode 100644
index 0000000..d0e93e4
--- /dev/null
+++ b/docs/Charts/Author Work per Week/workload_per_week.plt
@@ -0,0 +1,20 @@
+set title "Arbeitsladung pro Woche"
+
+set style data histogram
+set style fill solid border rgb "black"
+
+set auto x
+set yrange[0:*]
+unset ytics
+set xlabel "Kalenderwoche"
+set ylabel "Änderungen"
+set border 0
+
+set xtics border nomirror out
+
+plot 'output.dat' using 2:xtic(1) notitle, \
+ '' using 3:xtic(1) notitle, \
+ '' using 4:xtic(1) notitle, \
+ '' using 5:xtic(1) notitle, \
+ '' using 6:xtic(1) notitle, \
+ '' using 7:xtic(1) notitle
diff --git a/docs/Entwicklerhandbuch/Entwicklerhandbuch.docx b/docs/Entwicklerhandbuch/Entwicklerhandbuch.docx
new file mode 100644
index 0000000..82fdc96
Binary files /dev/null and b/docs/Entwicklerhandbuch/Entwicklerhandbuch.docx differ
diff --git a/docs/Entwicklerhandbuch/Entwicklerhandbuch.pdf b/docs/Entwicklerhandbuch/Entwicklerhandbuch.pdf
new file mode 100644
index 0000000..d975634
Binary files /dev/null and b/docs/Entwicklerhandbuch/Entwicklerhandbuch.pdf differ
diff --git a/docs/Entwicklerhandbuch/Sequenzdiagram-PenTool.svg b/docs/Entwicklerhandbuch/Sequenzdiagram-PenTool.svg
new file mode 100644
index 0000000..ad9c491
--- /dev/null
+++ b/docs/Entwicklerhandbuch/Sequenzdiagram-PenTool.svg
@@ -0,0 +1,261 @@
+
+
+
diff --git a/docs/Entwicklerhandbuch/Sequenzdiagram-PlainTool.svg b/docs/Entwicklerhandbuch/Sequenzdiagram-PlainTool.svg
new file mode 100644
index 0000000..074bb72
--- /dev/null
+++ b/docs/Entwicklerhandbuch/Sequenzdiagram-PlainTool.svg
@@ -0,0 +1,211 @@
+
+
+
diff --git a/docs/Entwicklerhandbuch/UML.svg b/docs/Entwicklerhandbuch/UML.svg
new file mode 100644
index 0000000..4e16946
--- /dev/null
+++ b/docs/Entwicklerhandbuch/UML.svg
@@ -0,0 +1,796 @@
+
+
+
diff --git a/docs/Entwicklerhandbuch/Use_Case_1.svg b/docs/Entwicklerhandbuch/Use_Case_1.svg
new file mode 100644
index 0000000..e6c0ffe
--- /dev/null
+++ b/docs/Entwicklerhandbuch/Use_Case_1.svg
@@ -0,0 +1,301 @@
+
+
+
diff --git a/docs/Entwicklerhandbuch/Use_Case_2.svg b/docs/Entwicklerhandbuch/Use_Case_2.svg
new file mode 100644
index 0000000..b7f34d6
--- /dev/null
+++ b/docs/Entwicklerhandbuch/Use_Case_2.svg
@@ -0,0 +1,172 @@
+
+
+
diff --git a/docs/Entwicklerhandbuch/Zustandsiagram-Layer-Color.svg b/docs/Entwicklerhandbuch/Zustandsiagram-Layer-Color.svg
new file mode 100644
index 0000000..5499341
--- /dev/null
+++ b/docs/Entwicklerhandbuch/Zustandsiagram-Layer-Color.svg
@@ -0,0 +1,185 @@
+
+
+
diff --git a/docs/Entwicklerhandbuch/Zustandsiagram-Tool.svg b/docs/Entwicklerhandbuch/Zustandsiagram-Tool.svg
new file mode 100644
index 0000000..4f51d04
--- /dev/null
+++ b/docs/Entwicklerhandbuch/Zustandsiagram-Tool.svg
@@ -0,0 +1,178 @@
+
+
+
diff --git a/docs/Manual/manual.pdf b/docs/Manual/manual.pdf
index f5df701..6fbbf3b 100644
Binary files a/docs/Manual/manual.pdf and b/docs/Manual/manual.pdf differ
diff --git a/docs/Manual/manual.tex b/docs/Manual/manual.tex
index d243e1d..19d8874 100644
--- a/docs/Manual/manual.tex
+++ b/docs/Manual/manual.tex
@@ -10,7 +10,10 @@
\usepackage{graphicx}
\usepackage{svg}
-\title{intelliPhoto 0.8 - Manual}
+\title{%
+ intelliPhoto 1.0 - Manual \\
+ \large "Shooting Star" }
+
\author{Paul Norberger \& the intelliPhoto team}
\begin{document}
@@ -18,21 +21,21 @@
\maketitle
\thispagestyle{empty}
\begin{center}
-\includegraphics[width=0.18\linewidth,keepaspectratio]{assets/icon}
+\includegraphics[width=0.15\linewidth,keepaspectratio]{assets/icon}
\end{center}
\tableofcontents
\end{titlepage}
\section{Introduction}
-intelliPhoto is a software for creating and editing graphics of various kinds. It uses 1 byte per pixel and is ideal for cases where this sort of limitation is required, because of various reasons, we will not go into. It has an extensive feature set, which includes, but is not limited to:
+intelliPhoto is a software for creating and editing graphics of various kinds. It uses 1 byte storage per pixel and is ideal for cases where this sort of limitation is required. It has an extensive feature set, which includes, but is not limited to:
\begin{itemize}
\item An advanced, highly usable user interface
-\item Loading and Saving images from and to standardized formats (such as .png, .bmp or .jpg)
-\item Drawing with a pen with adjustable width and color, clearing the whole canvas with one color and drawing lines, flood-filling similiar pixels, creating rectangles, circles and polygons
-\item A layer structure, that allows for creating, deleting, moving and changing the order of layers
+\item Loading and Saving images from and to standardised formats (such as .png, .bmp or .jpg)
+\item Drawing with a pen with adjustable width and color, clearing the whole canvas with one color and drawing lines, flood-filling similar pixels, creating rectangles, circles and polygons
+\item A layering structure, that allows creating, deleting, moving and changing the order of layers
\end{itemize}
\section{User Guide}
-After startup the following window opens:
+After startup the following window opens (OS: Windows):
\begin{center}
\includegraphics[width=0.55\linewidth,keepaspectratio]{assets/startup}
\end{center}
@@ -41,9 +44,9 @@ After startup the following window opens:
\subsubsection{Loading images}
To load a preexisting image, click on \texttt{File} in the top menu bar and then on \texttt{Open...} in the appearing context menu.
-A file explorer window opens. Navigate to the image you want to open and click on \texttt{Open} or the equivalent in your system language. The image will now be imported and displayed.
+A file explorer window opens. Navigate to the image you want to open and click on \texttt{Open}. The image will now be imported and displayed.
-\subsubsection{Saving images}
+\subsubsection{Exporting images}
To save the current canvas as an image, click on \texttt{File} in the top menu bar then hover over \texttt{Save As} and click on your preferred file format in the appearing context menu.
\begin{center}
\includegraphics[width=0.3\linewidth,keepaspectratio]{assets/file-save}
@@ -51,6 +54,9 @@ To save the current canvas as an image, click on \texttt{File} in the top menu b
A file explorer window opens. Navigate to your preferred save location, input a file name and click on \texttt{Save} or the equivalent in your system language. The image will be saved at that location in the selected file format.
+\subsubsection{Saving projects}
+To save the current project state click on \texttt{File > Save Project} or alternatively use the shortcut \texttt{CTRL+S} (or on \texttt{cmd+S} on MacOS). You may then select a location where to save your project.
+
\subsection{Working with layers}
\subsubsection{Creating a new layer}
To create a new layer, simply navigate to \texttt{Layer > Create Layer} and select the type of layer you want. Afterwards popups will appear, which will allow you to specify width and height of this new layer.
@@ -79,7 +85,7 @@ After the click, a popup will appear. The popup will allow you to specify a new
\subsubsection{Switching main and secondary color}
An often desired use case is to switch the main and secondary color. So that you don't have to this manually, which would be time consuming there is an easy command to do it under the color icons on the right-hand-side toolbar, besides the canvas.
-It is also bound to the keyboard shortcut \texttt{Ctrl+Shift+S}.
+It is also bound to the keyboard shortcut \texttt{Ctrl+Alt+S}.
\subsubsection{Drawing with the pen tool}
To activate the pen tool simply click on the pen tool icon on the right-hand-side toolbar.
@@ -108,7 +114,7 @@ The main color dictates the color of the edge, while the secondary color is used
\subsubsection{Using gradients}
To activate the gradient tool just click on the gradient tool icon on the right-hand-side toolbar. The gradient interpolates linearly from the main color to the second hand color. To change them refer to the section "Setting the main and secondary color".
-The use of this tool is very similiar to the line tool: Simply click and hold on the starting point of the gradient, move to the end location and release the mouse button. The pixels on the active layer will change accordingly.
+The use of this tool is very similar to the line tool: Simply click and hold on the starting point of the gradient, move to the end location and release the mouse button. The pixels on the active layer will change accordingly.
\subsubsection{Fill the active layer in one color}
To activate the plain tool just click on the plain tool icon on the right-hand-side toolbar.
@@ -120,6 +126,6 @@ For Windows 10, the desired symbol looks like this when hovered:
\begin{center}
\includegraphics[width=0.9\linewidth,keepaspectratio]{assets/close-window}
\end{center}
-Alternatively you can press \texttt{CTR+Q}.
+Alternatively you can press \texttt{CTRL+Q} (Windows) (or \texttt{cmd+Q} on MacOS).
-\end{document}
\ No newline at end of file
+\end{document}
diff --git a/docs/UML.uxf b/docs/UML.uxf
index 01eb3ce..7b6c53b 100644
--- a/docs/UML.uxf
+++ b/docs/UML.uxf
@@ -1,17 +1,18 @@
- 10
+ 6
UMLClass
- 2220
- 90
- 320
- 180
+ 1338
+ 84
+ 192
+ 120
/*IntelliImage*/
--
#imageData: QImage
+-isFastRendering: Boolean
--
#resizeImage(image, newSize): void
+drawPixel(p1, color): void
@@ -26,10 +27,10 @@
UMLClass
- 2230
- 400
- 310
- 80
+ 1344
+ 270
+ 186
+ 48
*IntelliRasterImage*
--
@@ -42,10 +43,10 @@
UMLClass
- 2220
- 680
- 320
- 150
+ 1338
+ 438
+ 192
+ 90
*IntelliShapedImage*
--
@@ -62,10 +63,10 @@
UMLClass
- 380
- 90
- 290
- 230
+ 744
+ 366
+ 174
+ 150
/*IntelliTool*/
--
@@ -74,6 +75,7 @@
#Active: LayerObject
#Canvas: LayerObject
#drawing: Boolean
+#ActiveType: Tooltype
--
/+onMouseRightPressed(x,y): void/
/+onMouseLeftPressed(x,y): void/
@@ -87,21 +89,21 @@
Relation
- 2310
- 260
- 30
- 160
+ 1392
+ 198
+ 18
+ 84
lt=<<-
- 10.0;10.0;10.0;140.0
+ 10.0;10.0;10.0;120.0
Relation
- 2310
- 470
- 30
- 230
+ 1392
+ 312
+ 18
+ 138
lt=<<-
10.0;10.0;10.0;210.0
@@ -109,10 +111,10 @@
UMLClass
- 1440
- 200
- 240
- 80
+ 870
+ 210
+ 144
+ 48
<<Enumeration>>
*ImageType*
@@ -124,10 +126,10 @@
UMLClass
- 140
- 940
- 250
- 150
+ 432
+ 810
+ 150
+ 90
*IntelliToolFloodFill*
--
@@ -144,10 +146,10 @@
UMLClass
- 140
- 480
- 250
- 150
+ 432
+ 564
+ 150
+ 90
*IntelliToolPlain*
--
@@ -164,15 +166,16 @@
UMLClass
- 1020
- 480
- 240
- 180
+ 876
+ 774
+ 144
+ 120
- *IntelliToolPen*
+ *IntelliToolGradient*
--
--penWidth: Integer
--point: QPoint
+-startPoint: QPoint
+-endPoint: QPoint
+-LineColor: QColor
--
+onMouseRightPressed(x,y): void
+onMouseLeftPressed(x,y): void
@@ -186,10 +189,10 @@
UMLClass
- 1020
- 960
- 250
- 180
+ 1122
+ 780
+ 150
+ 108
*IntelliToolRectangle*
--
@@ -208,10 +211,10 @@
UMLClass
- 1020
- 700
- 240
- 200
+ 1128
+ 642
+ 144
+ 120
*IntelliToolLine*
--
@@ -231,15 +234,15 @@
UMLClass
- 490
- 670
- 250
- 210
+ 672
+ 768
+ 150
+ 126
*IntelliToolPolygon*
--
-lineWidth: Integer
--isDrawing: Boolean
+-isDrawingOfPolygon: Boolean
-PointIsNearStart: Boolean
-alphaInner: Integer
--
@@ -255,76 +258,76 @@
Relation
- 640
- 310
- 400
- 190
+ 816
+ 510
+ 210
+ 276
lt=<<-
- 10.0;10.0;380.0;170.0
+ 10.0;10.0;330.0;440.0
Relation
- 380
- 310
- 100
- 650
+ 576
+ 510
+ 228
+ 312
lt=<<-
- 80.0;10.0;10.0;630.0
+ 360.0;10.0;10.0;500.0
Relation
- 250
- 310
- 160
- 190
+ 498
+ 510
+ 264
+ 66
lt=<<-
- 140.0;10.0;10.0;170.0
+ 420.0;10.0;10.0;90.0
Relation
- 510
- 310
- 540
- 670
+ 834
+ 510
+ 306
+ 282
lt=<<-
- 10.0;10.0;520.0;650.0
+ 10.0;10.0;490.0;450.0
Relation
- 560
- 310
- 480
- 410
+ 858
+ 510
+ 282
+ 144
lt=<<-
- 10.0;10.0;460.0;390.0
+ 10.0;10.0;450.0;220.0
Relation
- 480
- 310
- 140
- 380
+ 732
+ 510
+ 90
+ 270
lt=<<-
- 10.0;10.0;120.0;360.0
+ 130.0;10.0;10.0;430.0
UMLClass
- 140
- 680
- 250
- 200
+ 432
+ 684
+ 150
+ 120
*IntelliToolCircle*
--
@@ -344,21 +347,21 @@
Relation
- 380
- 310
- 80
- 390
+ 576
+ 510
+ 216
+ 186
lt=<<-
- 60.0;10.0;10.0;370.0
+ 340.0;10.0;10.0;290.0
UMLClass
- 1930
- 90
- 280
- 410
+ 1164
+ 84
+ 168
+ 246
*PaintingArea*
--
@@ -394,10 +397,10 @@ group=1
UMLClass
- 1690
- 90
- 230
- 150
+ 1020
+ 84
+ 138
+ 90
<<dataType>>
*LayerObject*
@@ -414,42 +417,30 @@ group=1
UMLClass
- 830
- 90
- 320
+ 324
+ 150
+ 192
+ 78
+
+ /*IntelliToolSetttings*/
+--
+-lineWidth: Integer
+-innerAlpha: Integer
+--
++getInnerAlpha(): Integer
++setInnerAlpha( innerAlpha): void
++getLineWidth(): Integer
++setLineWidth( LineWidth): void
+
+
+
+ UMLClass
+
+ 522
+ 84
+ 150
90
- /*IntelliHelper*/
---
---
-+isInTriangle(tri, P): Boolean
-+calculateTriangles(polyPoints): vector<Triangle>
-+isInPolygon(triangles, point): Boolean
-
-
-
- UMLClass
-
- 1440
- 90
- 240
- 80
-
- <<Enumeration>>
-*LineStyle*
---
- SOLID
- DOTTED
-
-
-
- UMLClass
-
- 1180
- 90
- 250
- 150
-
/*IntelliColorPicker*/
--
-firstColor: QColor
@@ -465,10 +456,10 @@ group=1
UMLClass
- 1690
- 250
- 230
- 100
+ 1020
+ 180
+ 138
+ 60
<<dataType>>
*Triangle*
@@ -482,10 +473,10 @@ group=1
UMLClass
- 1690
- 360
- 230
- 70
+ 1020
+ 246
+ 138
+ 42
<<dataType>>
*QImage*
@@ -498,10 +489,10 @@ group=1
UMLClass
- 1690
- 440
- 230
- 70
+ 1020
+ 294
+ 138
+ 42
<<dataType>>
*QPoint*
@@ -514,10 +505,81 @@ group=1
UMLClass
- 1690
- 530
- 230
- 90
+ 1020
+ 348
+ 138
+ 42
+
+ <<dataType>>
+*QColor*
+--
+--
+--
+ Cotains RGBA Color Data.
+
+
+
+ UMLClass
+
+ 1128
+ 516
+ 144
+ 108
+
+ *IntelliToolPen*
+--
+-penWidth: Integer
+-point: QPoint
+--
++onMouseRightPressed(x,y): void
++onMouseLeftPressed(x,y): void
++onMouseRightReleased(x,y): void
++onMousLeftReleased(x,y): void
++onWheelScrolled(value): void
++onMouseMoved(x,y): void
+...
+
+
+
+ Relation
+
+ 912
+ 498
+ 228
+ 30
+
+ lt=<<-
+ 10.0;10.0;360.0;30.0
+
+
+ UMLClass
+
+ 870
+ 84
+ 144
+ 114
+
+ <<Enumeration>>
+*Tooltype*
+--
+ CIRCLE
+ FLOODFILL
+ GRADIENT
+ LINE
+ PEN
+ PLAIN
+ POLYGON
+ RECTANGLE
+ NONE
+
+
+
+ UMLClass
+
+ 1020
+ 408
+ 138
+ 54
<<dataType>>
*vector<T>*
@@ -528,4 +590,51 @@ group=1
data with equal type as type T.
+
+ UMLClass
+
+ 324
+ 84
+ 192
+ 54
+
+ /*IntelliRenderSettings*/
+--
+-fastRendering: Boolean
+--
++isFastRendering(): Boolean
++setFastRendering(Updatesetting): void
+
+
+
+ UMLClass
+
+ 324
+ 240
+ 192
+ 54
+
+ /*IntelliTriangulation*/
+--
+--
++isInTriangle(tri, P): Boolean
++calculateTriangles(polyPoints): vector<Triangle>
++isInPolygon(triangles, point): Boolean
+
+
+
+ UMLClass
+
+ 684
+ 84
+ 174
+ 48
+
+ <<NAMESPACE>>
+*IntelliDatamanager*
+--
+ ::loadProject(Canvas, filePath): Boolean
+ ::saveProject(Canvas, filePath): Boolean
+
+
diff --git a/docs/Use Case/Use_Case_1.uxf b/docs/Use Case/Use_Case_1.uxf
index 251c8b9..0eef6a6 100644
--- a/docs/Use Case/Use_Case_1.uxf
+++ b/docs/Use Case/Use_Case_1.uxf
@@ -1,13 +1,13 @@
- 17
+ 13
UMLActor
- 17
- 459
- 170
- 187
+ 260
+ 299
+ 130
+ 143
3D-Künstler
bg=green
@@ -16,10 +16,10 @@ bg=green
UMLActor
- 68
- 714
- 136
- 187
+ 273
+ 546
+ 104
+ 143
Einsteiger
bg=red
@@ -28,10 +28,10 @@ bg=red
UMLUseCase
- 646
- 391
- 204
- 119
+ 689
+ 299
+ 156
+ 91
Zusammenfügen
von Bildern
@@ -41,10 +41,10 @@ bg=red
UMLUseCase
- 646
- 527
- 204
- 119
+ 689
+ 403
+ 156
+ 91
Ändern der
Bilderauflösung
@@ -54,10 +54,10 @@ bg=red
UMLUseCase
- 646
- 663
- 204
- 119
+ 689
+ 507
+ 156
+ 91
Drehen von
Bildern
@@ -67,10 +67,10 @@ bg=red
UMLUseCase
- 646
- 969
- 204
- 119
+ 689
+ 741
+ 156
+ 91
Retuschieren
der Bilder
@@ -80,10 +80,10 @@ bg=magenta
UMLActor
- 51
- 1037
- 170
- 187
+ 260
+ 793
+ 130
+ 143
Casual User
bg=red
@@ -92,98 +92,98 @@ bg=red
Relation
- 119
- 442
- 561
- 306
+ 312
+ 338
+ 403
+ 234
- 310.0;10.0;10.0;160.0
+ 290.0;10.0;10.0;160.0
Relation
- 119
- 561
- 561
- 187
+ 312
+ 429
+ 403
+ 143
- 310.0;10.0;10.0;90.0
+ 290.0;10.0;10.0;90.0
Relation
- 119
- 680
- 561
- 68
+ 312
+ 520
+ 403
+ 52
- 310.0;20.0;10.0;20.0
+ 290.0;20.0;10.0;20.0
Relation
- 119
- 442
- 561
- 629
+ 312
+ 338
+ 403
+ 481
- 310.0;10.0;10.0;350.0
+ 290.0;10.0;10.0;350.0
Relation
- 119
- 561
- 561
- 510
+ 312
+ 429
+ 403
+ 390
- 310.0;10.0;10.0;280.0
+ 290.0;10.0;10.0;280.0
Relation
- 119
- 697
- 561
- 374
+ 312
+ 533
+ 403
+ 286
- 310.0;10.0;10.0;200.0
+ 290.0;10.0;10.0;200.0
Relation
- 119
- 986
- 561
- 85
+ 312
+ 754
+ 403
+ 65
- 310.0;20.0;10.0;30.0
+ 290.0;20.0;10.0;30.0
Relation
- 136
- 1003
- 544
- 408
+ 312
+ 767
+ 403
+ 312
- 300.0;10.0;10.0;220.0
+ 290.0;10.0;10.0;220.0
UMLUseCase
- 646
- 1394
- 204
- 119
+ 689
+ 1066
+ 156
+ 91
Korrektur-
werkzeuge
@@ -193,10 +193,10 @@ bg=blue
UMLNote
- 629
- 1547
- 238
- 119
+ 676
+ 1183
+ 182
+ 91
Helligkeit/Kontrast
Farbton/Sättigung
@@ -207,21 +207,21 @@ bg=blue
Relation
- 136
- 1360
- 544
- 119
+ 312
+ 1040
+ 403
+ 91
- 300.0;50.0;10.0;10.0
+ 290.0;50.0;10.0;10.0
Relation
- 731
- 1496
- 51
- 85
+ 754
+ 1144
+ 39
+ 65
10.0;10.0;10.0;30.0
@@ -229,10 +229,10 @@ bg=blue
UMLUseCase
- 646
- 1122
- 204
- 119
+ 689
+ 858
+ 156
+ 91
Pinsel
bg=blue
@@ -241,10 +241,10 @@ bg=blue
UMLUseCase
- 646
- 1258
- 204
- 119
+ 689
+ 962
+ 156
+ 91
Auswahl-
werkzeuge
@@ -254,32 +254,32 @@ bg=blue
Relation
- 136
- 1292
- 544
- 119
+ 312
+ 988
+ 403
+ 91
- 300.0;10.0;10.0;50.0
+ 290.0;10.0;10.0;50.0
Relation
- 136
- 1156
- 544
- 255
+ 312
+ 884
+ 403
+ 195
- 300.0;10.0;10.0;130.0
+ 290.0;10.0;10.0;130.0
UMLActor
- 0
- 1377
- 306
- 187
+ 208
+ 1053
+ 234
+ 143
Freiberufliche Fotografen
bg=blue
@@ -288,10 +288,10 @@ bg=blue
UMLUseCase
- 646
- 816
- 204
- 119
+ 689
+ 624
+ 156
+ 91
Layerstruktur
bg=dark_gray
@@ -300,21 +300,21 @@ bg=dark_gray
Relation
- 85
- 272
- 595
- 221
+ 312
+ 208
+ 403
+ 117
- 330.0;10.0;10.0;110.0
+ 290.0;10.0;10.0;70.0
UMLUseCase
- 646
- 238
- 204
- 119
+ 689
+ 182
+ 156
+ 91
Schnittstelle
für 3D-Modelle
@@ -324,21 +324,21 @@ bg=green
Relation
- 85
- 136
- 595
- 357
+ 312
+ 104
+ 403
+ 221
- 330.0;10.0;10.0;190.0
+ 290.0;10.0;10.0;150.0
UMLUseCase
- 646
- 102
- 204
- 119
+ 689
+ 78
+ 156
+ 91
Erzeugen von
3D-Objekten
@@ -348,57 +348,58 @@ bg=green
Relation
- 136
- 867
- 544
- 544
+ 312
+ 663
+ 403
+ 416
- 300.0;10.0;10.0;300.0
+ 290.0;10.0;10.0;300.0
Relation
- 119
- 867
- 561
- 204
+ 312
+ 663
+ 403
+ 156
- 310.0;10.0;10.0;100.0
+ 290.0;10.0;10.0;100.0
Relation
- 119
- 697
- 561
- 221
+ 312
+ 533
+ 403
+ 169
- 310.0;110.0;10.0;10.0
+ 290.0;110.0;10.0;10.0
Relation
- 85
- 442
- 595
- 476
+ 312
+ 286
+ 403
+ 416
- 330.0;260.0;10.0;10.0
+ 290.0;300.0;10.0;10.0
UMLClass
- 527
+ 598
0
- 459
- 1836
+ 351
+ 1313
lw=2
-IntelliPhoto Benchmark 1.0
+IntelliPhoto 1.0
+"Shooting Star"
bg=gray
diff --git a/docs/Use Case/Use_Case_2.uxf b/docs/Use Case/Use_Case_2.uxf
index 6d075d7..7ff08c8 100644
--- a/docs/Use Case/Use_Case_2.uxf
+++ b/docs/Use Case/Use_Case_2.uxf
@@ -4,8 +4,8 @@
UMLActor
- 528
- 80
+ 128
+ 16
160
176
@@ -16,8 +16,8 @@ bg=green
UMLActor
- 544
- 272
+ 144
+ 208
128
176
@@ -28,8 +28,8 @@ bg=red
UMLUseCase
- 928
- 320
+ 496
+ 256
288
128
@@ -41,8 +41,8 @@ bg=red
UMLUseCase
- 880
- 624
+ 464
+ 560
352
96
@@ -53,8 +53,8 @@ bg=blue
UMLUseCase
- 928
- 480
+ 496
+ 416
304
112
@@ -65,8 +65,8 @@ bg=red
UMLActor
- 544
- 448
+ 128
+ 384
160
176
@@ -77,30 +77,30 @@ bg=red
Relation
- 592
- 256
- 368
+ 192
+ 192
+ 336
160
- 210.0;80.0;10.0;10.0
+ 190.0;80.0;10.0;10.0
Relation
- 608
- 432
- 352
+ 192
+ 368
+ 336
128
- 200.0;60.0;10.0;10.0
+ 190.0;60.0;10.0;10.0
Relation
- 608
- 400
+ 176
+ 336
368
288
@@ -110,8 +110,8 @@ bg=red
UMLActor
- 480
- 656
+ 48
+ 592
288
176
@@ -122,30 +122,30 @@ bg=blue
Relation
- 592
- 64
- 384
+ 192
+ 0
+ 352
320
- 220.0;180.0;10.0;10.0
+ 200.0;180.0;10.0;10.0
Relation
- 592
- 64
- 352
+ 192
+ 0
+ 320
176
- 200.0;90.0;10.0;10.0
+ 180.0;90.0;10.0;10.0
UMLUseCase
- 912
- 160
+ 480
+ 96
304
128
@@ -157,8 +157,8 @@ bg=green
UMLClass
- 848
- 80
+ 416
+ 16
432
704
@@ -170,19 +170,19 @@ bg=gray
Relation
- 608
- 624
- 304
+ 176
+ 560
+ 320
80
- 170.0;30.0;10.0;20.0
+ 180.0;30.0;10.0;20.0
Relation
- 608
- 432
+ 192
+ 368
320
256
diff --git a/docs/Volere Snow Cards/Req_0002.txt b/docs/Volere Snow Cards/Req_0002.txt
index 3c41b87..f014548 100644
--- a/docs/Volere Snow Cards/Req_0002.txt
+++ b/docs/Volere Snow Cards/Req_0002.txt
@@ -61,4 +61,5 @@ History:
- Erstellt am 30.10.2019 um 22:10, von Jonas Mucke
- Aktualisiert am 17.12.2019, von Paul Norberger
- Aktualisiert am 16.01.2019, von Paul Norberger, Gradiations-Tool, Cuttool, Selektionstool, Korrekturtool
- wurde gestrichen
\ No newline at end of file
+ wurde gestrichen
+ - Vollständig umgesetzt, Stand: 06.02.2020
\ No newline at end of file
diff --git a/docs/Volere Snow Cards/Req_0003.txt b/docs/Volere Snow Cards/Req_0003.txt
index 1b5fcc2..2f4efb8 100644
--- a/docs/Volere Snow Cards/Req_0003.txt
+++ b/docs/Volere Snow Cards/Req_0003.txt
@@ -24,4 +24,5 @@ Conflicts:
- Keine bekannten Konflikte, Stand: 16.01.2019
History:
- Erstellt am 17.12.2019
- - Aktualisiert am 16.01.2019
\ No newline at end of file
+ - Aktualisiert am 16.01.2019
+ - Vollständig umsetzt, Stand: 06.02.2020
\ No newline at end of file
diff --git a/docs/Volere Snow Cards/Req_0004_gestrichen.txt b/docs/Volere Snow Cards/Req_0005.txt
similarity index 93%
rename from docs/Volere Snow Cards/Req_0004_gestrichen.txt
rename to docs/Volere Snow Cards/Req_0005.txt
index 1ee6102..6ffe3bd 100644
--- a/docs/Volere Snow Cards/Req_0004_gestrichen.txt
+++ b/docs/Volere Snow Cards/Req_0005.txt
@@ -1,5 +1,5 @@
Req-ID:
- 0004
+ 0005
Req-Type:
Funktional
Events/UCs:
@@ -29,7 +29,7 @@ Priority:
Support Material:
Ubungsblat_01.pdf
Conflicts:
- - Keine bekannten Konflikte, Stand: 16.01.2020
+ - Keine bekannten Konflikte, Stand: 06.02.2020
History:
- Erstellt am 18.12.2019, von Paul Norberger
- - Gestrichen im Januar 2019
\ No newline at end of file
+ - Vollständig implementiert, Stand: 06.02.2020
diff --git a/docs/Volere Snow Cards/Req_0006.txt b/docs/Volere Snow Cards/Req_0006.txt
new file mode 100644
index 0000000..5c8c3da
--- /dev/null
+++ b/docs/Volere Snow Cards/Req_0006.txt
@@ -0,0 +1,27 @@
+Req-ID:
+ 0005
+Req-Type:
+ Nicht-Funktional
+Events/UCs:
+ -Dokumentation
+ -Designdokumentation
+Description:
+ -1 UML-Diagramm
+ -2 Sequenzdiagramme
+ -2 Zustandsdiagramme
+ -1 User Manual
+ -10 CRC-Karten
+ -8 Volere Snow Cards
+ -2 Use-Case-Diagramme
+Originator:
+ Paul Norberger
+Fit Criterion: auf Referenzsystem
+Priority:
+ 50
+Support Material:
+
+Conflicts:
+ - Keine bekannten Konflikte, Stand: 06.02.2020
+History:
+ - Erstellt am 18.12.2019, von Paul Norberger
+ - Vollständig umgesetzt, Stand: 06.02.2020
diff --git a/src/IntelliHelper/IntelliDatamanager.h b/src/IntelliHelper/IntelliDatamanager.h
index 9da93a4..e3c1683 100644
--- a/src/IntelliHelper/IntelliDatamanager.h
+++ b/src/IntelliHelper/IntelliDatamanager.h
@@ -1,4 +1,4 @@
-#ifndef INTELLIDATAMANAGER_H
+ #ifndef INTELLIDATAMANAGER_H
#define INTELLIDATAMANAGER_H
#include
diff --git a/src/Tool/IntelliToolGradient.cpp b/src/Tool/IntelliToolGradient.cpp
index 9639710..79a2b9a 100644
--- a/src/Tool/IntelliToolGradient.cpp
+++ b/src/Tool/IntelliToolGradient.cpp
@@ -44,11 +44,6 @@ void IntelliToolGradient::onMouseMoved(int x, int y){
if(this->isDrawing) {
hasMoved = true;
endPoint = QPoint(x,y);
- VectorStartEnd[0] = static_cast(endPoint.x() - startPoint.x());
- VectorStartEnd[1] = static_cast(endPoint.y() - startPoint.y());
- NormalVector[0] = VectorStartEnd[1];
- NormalVector[1] = (-1 * VectorStartEnd[0]);
- NormalDotNormal = dotProduct(NormalVector,NormalVector);
this->Canvas->image->drawPlain(Qt::transparent);
computeGradientLayer();
Canvas->image->drawLine(startPoint,endPoint,LineColor,1);
@@ -60,7 +55,7 @@ void IntelliToolGradient::onWheelScrolled(int value){
IntelliTool::onWheelScrolled(value);
}
-void IntelliToolGradient::computeAndDrawPixelColor(QPoint Point){
+void IntelliToolGradient::computeAndDrawPixelColor(QPoint Point, int FirstColor[4], int SecondColor[4], double NormalVector[2], double NormalDotNormal){
double doublePoint[2];
doublePoint[0] = static_cast(Point.x());
doublePoint[1] = static_cast(Point.y());
@@ -88,20 +83,10 @@ void IntelliToolGradient::computeAndDrawPixelColor(QPoint Point){
computedColor = colorPicker->getSecondColor();
}
else{
- int red;
- int green;
- int blue;
- int alpha;
- int red2;
- int green2;
- int blue2;
- int alpha2;
- colorPicker->getFirstColor().getRgb(&red,&green,&blue,&alpha);
- colorPicker->getSecondColor().getRgb(&red2,&green2,&blue2,&alpha2);
- computedColor.setRed(static_cast(ratio * red2 + (1 - ratio) * red));
- computedColor.setGreen(static_cast(ratio * green2 + (1 - ratio) * green));
- computedColor.setBlue(static_cast(ratio * blue2 + (1 - ratio) * blue));
- computedColor.setAlpha(static_cast(ratio * alpha2 + (1 - ratio) * alpha));
+ computedColor.setRed(static_cast(ratio * SecondColor[0] + (1 - ratio) * FirstColor[0]));
+ computedColor.setGreen(static_cast(ratio * SecondColor[1] + (1 - ratio) * FirstColor[1]));
+ computedColor.setBlue(static_cast(ratio * SecondColor[2] + (1 - ratio) * FirstColor[2]));
+ computedColor.setAlpha(static_cast(ratio * SecondColor[3] + (1 - ratio) * FirstColor[3]));
}
Canvas->image->drawPixel(Point,computedColor);
}
@@ -115,17 +100,23 @@ double IntelliToolGradient::lenghtVector(double Vector[2]){
}
void IntelliToolGradient::computeGradientLayer(){
- bool switched = false;
- if(Canvas->image->isFastRendering()) {
- switched = true;
- Canvas->image->updateRendererSetting(false);
- }
- for(int i = 0; i < activeLayer->height; i++) {
+ int FirstColor[4];
+ colorPicker->getFirstColor().getRgb(&FirstColor[0],&FirstColor[1],&FirstColor[2],&FirstColor[3]);
+ int SecondColor[4];
+ colorPicker->getSecondColor().getRgb(&SecondColor[0],&SecondColor[1],&SecondColor[2],&SecondColor[3]);
+
+ double NormalVector[2];
+ double NormalDotNormal;
+
+ VectorStartEnd[0] = static_cast(endPoint.x() - startPoint.x());
+ VectorStartEnd[1] = static_cast(endPoint.y() - startPoint.y());
+ NormalVector[0] = VectorStartEnd[1];
+ NormalVector[1] = (-1 * VectorStartEnd[0]);
+ NormalDotNormal = dotProduct(NormalVector,NormalVector);
+
+ for(int i = 0; i < activeLayer->height; i++) {
for(int j = 0; j < activeLayer->width; j++) {
- computeAndDrawPixelColor(QPoint(j,i));
+ computeAndDrawPixelColor(QPoint(j,i), FirstColor, SecondColor, NormalVector, NormalDotNormal);
}
}
- if(switched) {
- Canvas->image->updateRendererSetting(true);
- }
}
diff --git a/src/Tool/IntelliToolGradient.h b/src/Tool/IntelliToolGradient.h
index 7547a61..35021bd 100644
--- a/src/Tool/IntelliToolGradient.h
+++ b/src/Tool/IntelliToolGradient.h
@@ -82,16 +82,6 @@ double doubleStartPoint[2];
*/
double VectorStartEnd[2];
-/*!
- * \brief NormalVector of the VectorStartEnd
- */
-double NormalVector[2];
-
-/*!
- * \brief NormalDotNormal dot product of Normal*Normal
- */
-double NormalDotNormal;
-
/*!
* \brief LineColor color of th line.
*/
@@ -106,7 +96,7 @@ bool hasMoved;
* \brief computeAndDrawPixelColor computes the pixelcolor for a given point and sets it to the image.
* \param Point the point which shoud be computed
*/
-void computeAndDrawPixelColor(QPoint Point);
+void computeAndDrawPixelColor(QPoint Point, int FirstColor[4], int SecondColor[4], double NormalVector[2], double NormalDotNormal);
/*!
* \brief dotProduct calculates the dot product of 2 vetors.