======================================================== Projekt: gamematrix (C++ Library) Rolle: Projektleiter Datei: requirements.txt Datum: 03.11.2025 Team: getBeerreturntrue(3 Personen) ======================================================== # ---------------------------- # 1. Projektziel # ---------------------------- Ziel: Entwicklung einer C++-Bibliothek für 3D-Transformationen (4x4-Matrizen) zur späteren Nutzung über pybind11 in Python sowie Integration in das bestehende Spielprojekt. Bereitstellung von Funktionen für Translation, Rotation und Matrixmultiplikation im 3D-Raum. # ---------------------------- # 2. Funktionale Anforderungen # ---------------------------- | Funktion | Eingabe | Ausgabe | Kurzbeschreibung | |---------------|------------------------------------|-----------------------|----------------------------------------| | matmul | 4x4 Matrix A, 4x4 Matrix B | 4x4 Matrix | Multiplikation zweier 4x4 Matrizen | | translate | 3D Vektor (x,y,z) | 4x4 Matrix | Erzeugt Translationsmatrix | | rot3D | Winkel in °, Rotationsachse (x/y/z)| 4x4 Matrix | Rotationsmatrix um Achse | | identity | --- | 4x4 Matrix | Identitätsmatrix zurückgeben | | apply | Matrix, Vec3 | Vec3 | Vektor mit Transformationsmatrix transformieren | # ---------------------------- # 3. Nicht-funktionale Anforderungen # ---------------------------- - Lesbarkeit & Wartbarkeit (klarer Namespace, Header-Trennung) - Ausführung in Echtzeit-Spielumgebung (gute Performance) - Kompatibilität mit pybind11 - Keine dynamische Speicherallokation innerhalb der Matrixoperationen # ---------------------------- # 4. Annahmen / Einschränkungen # ---------------------------- - Alle Matrizen im homogenen Format 4x4 - Winkelangabe in Grad - Datentyp double - Koordinatensystem: Rechtshändig # ---------------------------- # 5. Abnahmekriterien # ---------------------------- - Beispiel-Transformationen funktionieren korrekt - Unit-Tests für alle Funktionen bestehen - Vergleich mit bekannten Resultaten (z. B. 90°-Rotation) - Bibliothek lässt sich erfolgreich in Python binden ======================================================== Hinweis: Diese Datei wird vom Projektleiter gepflegt. ========================================================