========================================================
Projekt: gamematrix (C++ Library)
Rolle: Projektleiter
Datei: requirements.txt
Datum: 10.11.2025
Team: NieOhneMeinTeam
========================================================

# ----------------------------
# 1. Projektziel
# ----------------------------
Beschreiben Sie hier kurz das Ziel des Projekts:

Ziel: 
Es soll eine erweiterbare C++-Library entwickelt werden, die grundlegende
3D-Transformationen (Translation, Rotation, Matrizenmultiplikation) in Form
von 4x4-Matrizen bereitstellt.

# ----------------------------
# 2. Funktionale Anforderungen
# ----------------------------
Listen Sie alle Funktionen auf, die die Bibliothek bereitstellen soll.
Tragen Sie ein: Funktion, Eingabe, Ausgabe, kurze Beschreibung

| Funktion        | Eingabe                            | Ausgabe       | Kurzbeschreibung                                  |
|-----------------|------------------------------------|--------------|----------------------------------------------------|
| matmul          | 4x4 Matrix A, 4x4 Matrix B         | 4x4 Matrix   | Führt Matrizenmultiplikation A * B durch           |
| translate       | 3D Vektor (x,y,z)                  | 4x4 Matrix   | Erzeugt Translationsmatrix für Verschiebung im Raum|
| rot3D           | Winkel in °, Achse ('X','Y','Z')   | 4x4 Matrix   | Rotation um eine beliebige kartesische Achse       |
| identity        | ---                                | 4x4 Matrix   | Liefert 4x4 Einheitsmatrix                         |
| applyToVec      | Matrix, Vec3                       | Vec3         | Wendet 4x4-Matrix auf 3D-Vektor an                 |
| scale (optional)| 3D Vektor                          | 4x4 Matrix   | Erzeugt Skalierungsmatrix                          |

# ----------------------------
# 3. Nicht-funktionale Anforderungen
# ----------------------------
(z. B. Performance, Lesbarkeit, Wartbarkeit, Python-Kompatibilität via pybind11)

- Hohe Lesbarkeit (klarer Namespace: Matrix3D)
- Wartbarer Code (Templates nur wenn notwendig)
- ____________________________________________________________

# ----------------------------
# 4. Annahmen / Einschränkungen
# ----------------------------
(z. B. alle Matrizen sind 4x4, Winkel in Grad, nur double)

- Alle Matrizen sind 4x4 und vom Typ std::array<double,16>
- Alle Rotationen erfolgen im rechten Koordinatensystem
- Die Library soll unabhängig vom Spielprojekt kompiliert werden können

# ----------------------------
# 5. Abnahmekriterien
# ----------------------------
Wie soll geprüft werden, dass die Anforderungen erfüllt sind?
(z. B. Unit-Tests, Beispielrotationen, Matrizenmultiplikation)

- Korrekte Rotationsergebnisse (z. B. 90° um Z-Achse: (1,0,0) → (0,1,0))
- Matrizenmultiplikation liefert identische Werte wie Referenzberechnung
- Integration in das Spielprojekt erfolgreich

========================================================
Hinweis:
- Diese Datei wird vom Projektleiter erstellt und gepflegt.
- Jede Phase des Projekts soll hier dokumentiert werden.
========================================================