On collision enter hat die Ausgänge normal x, normal y und impulse aus Rapiers Kontakt. On collision stay und On collision exit haben sie nicht.
On collision stay feuert wie bisher in jedem Tick, solange das Paar besteht.
Zu klären
Welche Form das Feuern haben soll: ein Intervall am Node (wie On timer), nur bei geänderter Normale, oder ein Daten-Node „Contact of (a, b)“, den man bei Bedarf abfragt.
Welche Daten dazukommen: Normale, Impuls, Kontaktpunkt.
Aus #146, Antwort 6: vorerst kein Stay mit Kontaktdaten. Später vielleicht ein Stay, das nicht in jedem Tick feuert.
## Stand nach #146
- `On collision enter` hat die Ausgänge `normal x`, `normal y` und `impulse` aus Rapiers Kontakt. `On collision stay` und `On collision exit` haben sie nicht.
- `On collision stay` feuert wie bisher in jedem Tick, solange das Paar besteht.
## Zu klären
- Welche Form das Feuern haben soll: ein Intervall am Node (wie `On timer`), nur bei geänderter Normale, oder ein Daten-Node „Contact of (a, b)“, den man bei Bedarf abfragt.
- Welche Daten dazukommen: Normale, Impuls, Kontaktpunkt.
admin
added this to the Development project 2026-09-18 18:01:02 +02:00
admin
moved this to Next in Development on 2026-09-18 18:01:24 +02:00
admin
moved this to Queue in Development on 2026-09-18 18:01:44 +02:00
On collision stay hat ein Feld Interval (s). Bei 0 feuert es wie bisher jeden Frame. Sonst feuert es einmal pro Intervall seit dem Treffen — mit einer eigenen Uhr pro Node und Paar, die bei einem neuen Treffen von vorn beginnt.
Stay und Enter liefern normal, impulse und neu point (Kontaktpunkt). Die Kontaktdaten werden nur geholt, wenn der Node wirklich feuert. Im Editor-Run (ohne Rapier) sind alle drei 0.
Selbst entschieden
Zu den offenen Punkten stand kein Vorschlag. Gewählt habe ich das Intervall am Node statt eines Daten-Nodes „Contact of“.
Gemessen
Rapier meldet für einen ruhenden Body konstant 1,25 × m·g·dt als Impuls, nicht den reinen Nettoimpuls. Der Wert wird unverändert weitergegeben; der Test prüft nur, dass er mit der Masse wächst (Faktor 3 bei dreifacher Dichte), und das Wiki sagt es so.
Tests
tests/core/collision-stay.test.ts: Intervall, Uhr pro Paar, Neustart beim erneuten Treffen, Kontaktdaten.
e2e-Modul 43: Stay alle 0,5 s mit normal −1 und impulse > 0.
Lokal: npm run check → 1560 Tests, CHECK EXIT 0; GM_STEPS=39-43 → ALL PASSED – 99 checks. CI zu 6a31f5e lief beim Schreiben noch — Nachtrag folgt.
Umgesetzt in `6a31f5e`, zusammen mit #153 und #155.
## Was gebaut ist
- `On collision stay` hat ein Feld **Interval (s)**. Bei 0 feuert es wie bisher jeden Frame. Sonst feuert es einmal pro Intervall seit dem Treffen — mit einer eigenen Uhr pro Node und Paar, die bei einem neuen Treffen von vorn beginnt.
- Stay und Enter liefern **normal**, **impulse** und neu **point** (Kontaktpunkt). Die Kontaktdaten werden nur geholt, wenn der Node wirklich feuert. Im Editor-Run (ohne Rapier) sind alle drei 0.
## Selbst entschieden
Zu den offenen Punkten stand kein Vorschlag. Gewählt habe ich das Intervall am Node statt eines Daten-Nodes „Contact of“.
## Gemessen
Rapier meldet für einen ruhenden Body konstant **1,25 × m·g·dt** als Impuls, nicht den reinen Nettoimpuls. Der Wert wird unverändert weitergegeben; der Test prüft nur, dass er mit der Masse wächst (Faktor 3 bei dreifacher Dichte), und das Wiki sagt es so.
## Tests
- `tests/core/collision-stay.test.ts`: Intervall, Uhr pro Paar, Neustart beim erneuten Treffen, Kontaktdaten.
- e2e-Modul 43: Stay alle 0,5 s mit normal −1 und impulse > 0.
- Lokal: `npm run check` → 1560 Tests, `CHECK EXIT 0`; `GM_STEPS=39-43` → `ALL PASSED – 99 checks`. CI zu `6a31f5e` lief beim Schreiben noch — Nachtrag folgt.
Nachtrag CI zu 6a31f5e: grün, selbst in den Job-Logs nachgelesen. Gate (Task 144): 109 Testdateien grün, CHECK EXIT 0. Suite (Task 145): ALL PASSED – 1073 checks – die Summe 1073 in README und Wiki ist damit gemessen. Smokes 24 / 19 / 21, alle grün.
**Nachtrag CI zu `6a31f5e`:** grün, selbst in den Job-Logs nachgelesen. Gate (Task 144): 109 Testdateien grün, `CHECK EXIT 0`. Suite (Task 145): `ALL PASSED – 1073 checks` – die Summe 1073 in README und Wiki ist damit gemessen. Smokes 24 / 19 / 21, alle grün.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Aus #146, Antwort 6: vorerst kein Stay mit Kontaktdaten. Später vielleicht ein Stay, das nicht in jedem Tick feuert.
Stand nach #146
On collision enterhat die Ausgängenormal x,normal yundimpulseaus Rapiers Kontakt.On collision stayundOn collision exithaben sie nicht.On collision stayfeuert wie bisher in jedem Tick, solange das Paar besteht.Zu klären
On timer), nur bei geänderter Normale, oder ein Daten-Node „Contact of (a, b)“, den man bei Bedarf abfragt.Umgesetzt in
6a31f5e, zusammen mit #153 und #155.Was gebaut ist
On collision stayhat ein Feld Interval (s). Bei 0 feuert es wie bisher jeden Frame. Sonst feuert es einmal pro Intervall seit dem Treffen — mit einer eigenen Uhr pro Node und Paar, die bei einem neuen Treffen von vorn beginnt.Selbst entschieden
Zu den offenen Punkten stand kein Vorschlag. Gewählt habe ich das Intervall am Node statt eines Daten-Nodes „Contact of“.
Gemessen
Rapier meldet für einen ruhenden Body konstant 1,25 × m·g·dt als Impuls, nicht den reinen Nettoimpuls. Der Wert wird unverändert weitergegeben; der Test prüft nur, dass er mit der Masse wächst (Faktor 3 bei dreifacher Dichte), und das Wiki sagt es so.
Tests
tests/core/collision-stay.test.ts: Intervall, Uhr pro Paar, Neustart beim erneuten Treffen, Kontaktdaten.npm run check→ 1560 Tests,CHECK EXIT 0;GM_STEPS=39-43→ALL PASSED – 99 checks. CI zu6a31f5elief beim Schreiben noch — Nachtrag folgt.Nachtrag CI zu
6a31f5e: grün, selbst in den Job-Logs nachgelesen. Gate (Task 144): 109 Testdateien grün,CHECK EXIT 0. Suite (Task 145):ALL PASSED – 1073 checks– die Summe 1073 in README und Wiki ist damit gemessen. Smokes 24 / 19 / 21, alle grün.