From a3091b204ce73168e7eb1564ccaed45c13e5d7c2 Mon Sep 17 00:00:00 2001 From: "Adam Skotarczak (DEVELOP)" Date: Sun, 20 Jul 2025 01:08:19 +0000 Subject: [PATCH] v0.9.0 --- CHANGELOG.md | 9 +- README.md | 10 +- VERSION | 4 +- dokus/frameworks/havok-engine.md | 108 ++++++++++++++ dokus/git/git.md | 7 +- dokus/git/git_workflow.md | 244 +++++++++++++++++++++++++++++++ tools/collector/processed.log | 2 + 7 files changed, 377 insertions(+), 7 deletions(-) create mode 100644 dokus/frameworks/havok-engine.md create mode 100644 dokus/git/git_workflow.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 6454dfc..f9797dc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,16 @@ # Changelog +- **20/07/25** - commit: v0.9.0 + - **Hinzugefügt:** + - [X] Git Workflow + - [x] HAVOK Engine + +--- + - **18/07/25** - commit: v0.8.0 - **Hinzugefügt:** - [X] Wahrheitstabelle. - - + - **17/07/25** - commit: v0.7.0 - **Hinzugefügt:** - [X] Voltcraft Probe. diff --git a/README.md b/README.md index 296c840..b163ab3 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,7 @@ Die Artikel sind auch zur Vorbereitung für neue Artikel auf addEntity(ground); + +// 4. Erstellen einer dynamischen Kiste (bewegliches Objekt) +hkpBoxShape* boxShape = new hkpBoxShape(hkVector4(0.5f, 0.5f, 0.5f)); +hkpRigidBody::Cinfo boxInfo; +boxInfo.m_shape = boxShape; +boxInfo.m_mass = 10.0f; // Masse von 10 kg +boxInfo.m_motionType = hkpMotion::MOTION_DYNAMIC; // Wird von Physik beeinflusst +boxInfo.m_position.set(0.0f, 10.0f, 0.0f); // Startposition über dem Boden +hkpInertiaTensorComputer::setShapeVolumeMassProperties(boxShape, boxInfo.m_mass, boxInfo); +hkpRigidBody* box = new hkpRigidBody(boxInfo); +physicsWorld->addEntity(box); + +// 5. Die Simulations-Schleife (in der Praxis pro Frame) +for (int i = 0; i < 300; ++i) { + // Physik-Welt um einen Zeitschritt (1/60s) fortschreiten lassen + physicsWorld->stepDeltaTime(1.0f / 60.0f); + + // Position der Kiste abfragen und ausgeben/darstellen + hkVector4 currentPosition = box->getPosition(); + printf("Position nach Schritt %d: (%.2f, %.2f, %.2f)\n", i, currentPosition(0), currentPosition(1), currentPosition(2)); +} + +// 6. Aufräumen +box->removeReference(); +ground->removeReference(); +physicsWorld->removeReference(); +Havok::quitBaseSystems(); +Havok::quitMemory(); +``` + +--- + +### Erläuterung des Codes + +1. **Initialisierung:** Starten der internen Speichermanager und Basissysteme von Havok. +2. **Physik-Welt:** Das `hkpWorld`-Objekt ist das Herzstück der Simulation. Es verwaltet alle Objekte und wendet Kräfte wie die Schwerkraft an. +3. **Statischer Boden:** Ein unbeweglicher Körper (`MOTION_FIXED`), der als Kollisionsobjekt dient, damit die Kiste nicht ins Unendliche fällt. +4. **Dynamische Kiste:** Das "Hello, World!"-Objekt. Es hat eine Masse, ist als `MOTION_DYNAMIC` definiert und wird somit von der Schwerkraft beeinflusst und reagiert auf Kollisionen. +5. **Simulations-Schleife:** Der Aufruf von `physicsWorld->stepDeltaTime()` lässt die Zeit in der Simulation vergehen und aktualisiert die Positionen der dynamischen Objekte. +6. **Aufräumen:** Der belegte Speicher wird nach der Simulation wieder freigegeben. diff --git a/dokus/git/git.md b/dokus/git/git.md index 03a1e68..6e480ed 100644 --- a/dokus/git/git.md +++ b/dokus/git/git.md @@ -2,6 +2,7 @@ ![GITLOGO](../../media/logo-git.png) -- [SSH-Zugriff auf Git-Repository in WSL einrichten](git/git-ssh-remote.md) -- [Git – Remote-Branches: Häufige Aufgaben und Lösungen](git/git-remote-branch.md) -- [Git-Submodule: Der umfassende Praxisleitfaden](git/git-submodule-leitfaden.md) +- [SSH-Zugriff auf Git-Repository in WSL einrichten](git-ssh-remote.md) +- [Git – Remote-Branches: Häufige Aufgaben und Lösungen](git-remote-branch.md) +- [Git – Submodule: Der umfassende Praxisleitfaden](git-submodule-leitfaden.md) +- [Git – Workflow](git_workflow.md) diff --git a/dokus/git/git_workflow.md b/dokus/git/git_workflow.md new file mode 100644 index 0000000..9e0fc2f --- /dev/null +++ b/dokus/git/git_workflow.md @@ -0,0 +1,244 @@ +# Git Workflow + +![Git Logo](../../media/logo-git.png) + +## 📝 Inhalt + +- [Git Workflow](#git-workflow) + - [📝 Inhalt](#-inhalt) + - [📦 Workflow](#-workflow) + - [✏️ Neues Feature starten](#️-neues-feature-starten) + - [💾 Arbeiten und Zwischenspeichern](#-arbeiten-und-zwischenspeichern) + - [🔄 Zwischenstand von main holen (wenn andere auch pushen)](#-zwischenstand-von-main-holen-wenn-andere-auch-pushen) + - [✅ Feature fertig? Merge in main](#-feature-fertig-merge-in-main) + - [❌ Oops! Auf main gearbeitet?](#-oops-auf-main-gearbeitet) + - [✅ Git-Regeln für sauberes Arbeiten](#-git-regeln-für-sauberes-arbeiten) + - [💡 Git Merksätze](#-git-merksätze) + - [ℹ️ Mini-Cheatsheet](#ℹ️-mini-cheatsheet) + - [📦 GIT\_BRANCH\_CLEANUP.md](#-git_branch_cleanupmd) + - [🧹 Wann lösche ich einen Feature-Branch?](#-wann-lösche-ich-einen-feature-branch) + - [✅ Nach dem Merge in `main`](#-nach-dem-merge-in-main) + - [❗ Nicht löschen, wenn …](#-nicht-löschen-wenn-) + - [🔁 Nachträglich löschen (wenn vergessen)](#-nachträglich-löschen-wenn-vergessen) + - [📦 Merksatz](#-merksatz) + - [📦 Branch-Namenskonventionen](#-branch-namenskonventionen) + - [🔧 Aufbau](#-aufbau) + - [📚 Übersicht der Präfixe](#-übersicht-der-präfixe) + - [🧼 Empfehlung für Schönheitskorrekturen](#-empfehlung-für-schönheitskorrekturen) + - [📝 Hinweis](#-hinweis) + +## 📦 Workflow + +Tägliche Arbeit mit Git + +--- + +### ✏️ Neues Feature starten + +```bash +git checkout main +git pull +git checkout -b feature/mein-feature +``` + +> ➔ Jetzt bist du auf einem neuen Branch. Alles was du änderst, bleibt NUR hier. + +--- + +### 💾 Arbeiten und Zwischenspeichern + +```bash +git add . +git commit -m "WIP: Kurze Beschreibung meiner Arbeit" +``` + +- `WIP` = Work in Progress +- Lieber öfter kleine Commits als einen Monster-Commit. + +--- + +### 🔄 Zwischenstand von main holen (wenn andere auch pushen) + +```bash +git pull origin main +``` + +- **Wichtig:** Nur im Feature-Branch bleiben! +- `git pull` sorgt dafür, dass du aktuellen Code hast. + +--- + +### ✅ Feature fertig? Merge in main + +```bash +git checkout main +git pull +git merge feature/mein-feature +git push +``` + +- Danach kannst du den Branch löschen: + +```bash +git branch -d feature/mein-feature +``` + +--- + +### ❌ Oops! Auf main gearbeitet? + +Noch **kein Commit** gemacht? + +```bash +git checkout -b feature/schnell-gerettet +``` + +> ➔ Änderungen wandern automatisch mit. `main` bleibt sauber. + +--- + +### ✅ Git-Regeln für sauberes Arbeiten + +- Niemals direkt auf `main` coden. +- Immer neuen Branch für neue Aufgaben. +- Vor dem `git pull` **immer committen** oder **stashen**. +- Viele kleine Commits sind besser als ein riesiger. +- Beim Merge zuerst `git pull`, dann `merge`. + +--- + +### 💡 Git Merksätze + +| **Situation** | **Lösung** | +|:---|:---| +| Änderungen da, noch kein Commit | `git checkout -b neuer-branch` | +| Änderungen gestaged, aber kein Commit | Geht genauso: `git checkout -b neuer-branch` | +| Änderungen gemacht, will aber neuen Stand von origin | Erst `commit` oder `stash`, dann `pull` | +| Feature abgeschlossen | `merge` zurück auf `main` | + +--- + +### ℹ️ Mini-Cheatsheet + +```bash +git add . # Alle Änderungen vormerken +git commit -m "Commit" # Änderungen sichern +git checkout main # Wechsel auf main +git pull # main aktualisieren +git checkout -b neuer-branch # Neuen Feature-Branch starten +``` + +[🚀 TOP](#-inhalt) + +--- + +## 📦 GIT_BRANCH_CLEANUP.md + +### 🧹 Wann lösche ich einen Feature-Branch? + +#### ✅ Nach dem Merge in `main` + +```bash +# Lokal löschen +git branch -d feature/xyz + +# Remote löschen +git push origin --delete feature/xyz +``` + +#### ❗ Nicht löschen, wenn … + +- Der Branch wird noch gebraucht (z. B. Review, Bugfix) +- Der Merge war nur testweise oder unvollständig +- Du arbeitest noch weiter dran + +--- + +### 🔁 Nachträglich löschen (wenn vergessen) + +```bash +# Lokalen Branch löschen +git branch -d feature/xyz + +# Remote-Branch löschen +git push origin --delete feature/xyz +``` + +--- + +### 📦 Merksatz + +| Feature fertig und gemerged? | Dann: | +|:---|:---| +| ✅ | `git branch -d` + `git push origin --delete` | +| ❌ oder nicht sicher | Branch behalten | + +[🚀 TOP](#-inhalt) + +--- + +## 📦 Branch-Namenskonventionen + +Dieses Dokument beschreibt die standardisierten Branch-Namenskonventionen für unser Projekt. Ziel ist eine klare, nachvollziehbare Struktur für parallele Entwicklungszweige. + +--- + +### 🔧 Aufbau + +Alle Branch-Namen folgen diesem Schema: + +```plaintext +/- +``` + +Beispiel: + +```plaintext +feature/user-login +refactor/frontend-structure +chore/update-readme +``` + +Optional mit Ticket- oder Issue-ID: + +```plaintext +feature/123-user-login +bugfix/87-fix-auth-header +``` + +--- + +### 📚 Übersicht der Präfixe + +| Präfix | Zweck | Beispiel | +|--------------|------------------------------------------------------|------------------------------------------| +| `feature/` | Neue Funktionen / Erweiterungen | `feature/pdf-export` | +| `bugfix/` | Fehlerbehebung (nicht kritisch) | `bugfix/button-hover` | +| `hotfix/` | Kritische Fehlerbehebung auf produktivem System | `hotfix/payment-error` | +| `refactor/` | Code-Umbau ohne Funktionsänderung | `refactor/state-management` | +| `chore/` | Wartung, Infrastruktur, Dokumentation | `chore/clean-docker`, `chore/update-doc` | +| `cleanup/` | Entfernen von Altlasten oder veralteten Strukturen | `cleanup/unused-scripts` | +| `test/` | Tests und Testinfrastruktur | `test/mock-api` | +| `docs/` | Dokumentationsänderungen | `docs/setup-instructions` | +| `ci/` | Änderungen an CI/CD oder Build-System | `ci/add-github-actions` | +| `wip/` | Work in Progress (noch nicht bereit für Merge) | `wip/experimental-ui` | +| `release/` | Vorbereitung und Verwaltung von Releases | `release/v1.2.0` | +| `revert/` | Rücknahme von früheren Änderungen | `revert/broken-auth` | + +--- + +### 🧼 Empfehlung für Schönheitskorrekturen + +Für reine Schönheits- und Strukturkorrekturen (keine funktionalen Änderungen): + +- `refactor/ui-cleanup` +- `chore/html-beautify` +- `cleanup/unused-css` + +--- + +### 📝 Hinweis + +- Branch-Namen **immer klein schreiben**, mit `-` als Trenner. +- Kein Datum, kein Entwicklerkürzel im Namen (außer bei besonderen Teamregeln). +- `main` oder `master` ist unser stabiler Produktionszweig. diff --git a/tools/collector/processed.log b/tools/collector/processed.log index 7473e98..9369d54 100644 --- a/tools/collector/processed.log +++ b/tools/collector/processed.log @@ -24,3 +24,5 @@ dokus/git/git-submodule-leitfaden.md dokus/git/commit-etscheidungshilfe.md dokus/products/voltcraft625logicprobe/voltcraft625-logic-probe-anleitung.md dokus/grundlagen/wahrheitstabelle.md +dokus/git/git_workflow.md +dokus/frameworks/havok-engine.md