======================================================== Projekt: gamematrix (C++ Library) Rolle: Architekt Datei: design.txt Datum: 03.11 Team: Stone_Development ======================================================== # ---------------------------- # 1. Projektstruktur / Namespace # ---------------------------- Namespace: Matrix3D Ziel: Saubere Trennung der Bibliothek, Vermeidung von Namenskonflikten. Beispiel: namespace Matrix3D { // Funktionen, ggf Klasse(n) } # ---------------------------- # 2. Datenstrukturen / Klassen # ---------------------------- Listen Sie die Klassen oder Structs auf, die verwendet werden: | Name | Typ | Beschreibung | |--------|------------------------------------------|--------------| | Vec3 | struct Vec3 | 3D-Vektor (x, y, z) | | Mat4 | std::array,4> | 4x4-Matrix (homogen) | | ______ | ________ | ___________________ | | ______ | ________ | ___________________ | # ---------------------------- # 3. Operatoren / Templates # ---------------------------- Welche Operatoren oder Templates sollen definiert werden? - Templates für unterschiedliche Datentypen? x Ja - Operatoren: - Mat4 * Mat4 - Mat4 * Vec3 # ---------------------------- # 4. Funktionen / Schnittstellen # ---------------------------- Liste der Funktionen mit Eingabe/Ausgabe und kurzer Beschreibung: | Funktion | Eingabe | Ausgabe | Kurzbeschreibung | |---------------|------------------------------------|-----------------------|----------------------------------------| | matmul | Mat4 A, Mat4 B | Mat4 | Matrixmultiplikation 4x4 | | translate | Vec3 pos | Mat4 | Verschiebungstransformation | | rot3D | double angle_deg, char axis | Mat4 | Rotation um Achse x/y/z | | | _____________ | __________________________________ | ____________________ | ______________________________ | # ---------------------------- # 5. Designentscheidungen / Hinweise # ---------------------------- - Rückgabe der Matrizen per Wert oder Referenz? Rückgabe - Verwendung von std::array oder std::vector? std::array - Homogene Koordinaten für Translation / Rotation (4x4)? ☐ Ja - Weitere Designüberlegungen: ___________________________ # ---------------------------- # 6. Deliverables / Milestones # ---------------------------- - design.txt fertig und im Branch architect committed - Übergabe an Entwickler für Implementierung ======================================================== Hinweis: - Dieses Dokument dient als Grundlage für die Implementierung. - Alle Designentscheidungen sollen klar nachvollziehbar sein. ======================================================== test