‹
JoltPhysics

Historie penetrací

Záznamy skutečných vstupů jsou uložené na cílovém tělese a nemění fyziku.

GML
target_body.set_penetration_history_capacity(32);
var records = target_body.get_penetration_records();
var count = target_body.get_penetration_record_count();

Kapacita je celé číslo 0–4096; default 0 historii vypíná. Limit se týká dokončených záznamů, aktivní jsou chráněné a mohou zvýšit celkový počet nad kapacitu. Zmenšení ponechá nejnovější dokončené záznamy. Zapnutí nedoplňuje libovolnou minulost.

Záznam#

PoleVýznam
id, activeID záznamu a stav probíhající penetrace.
entry_step, end_step, end_reasonFyzikální kroky a číselný důvod ukončení.
source_body, source_tipIdentifikátory původu; nejsou zárukou stále platných wrapperů.
local_position, local_axis, local_normal, local_rotationV lokálním prostoru cíle; rotace XYZW.
max_depth_reached, current_depth, final_depthHloubky v metrech; final_depth je u aktivního záznamu null.

get_penetration_record(index) je od nuly; mimo rozsah vrací undefined. get_penetration_records() vrací kopii snapshotu. clear_penetration_history() smaže pouze dokončené záznamy; aktivní vztahy zůstanou. Kapacita 0 odstraní i aktivní záznamy historie, nikoli fyzikální vztahy.

Debug#

GML
jolt_debug_enable(true);
jolt_debug_set(JOLT_DEBUG_PENETRATION, true);
jolt_debug_set_penetration_history(true);

Debug zobrazuje nejvýše pět nejnovějších uložených záznamů na cíl. Historie není damage, díra do meshe ani permanentní deformace.

Ověřené kontrakty operací#

Následující kontrakty rozlišují jednotky, návratové hodnoty, chyby a životnost podle aktuální implementace. Nevynechávej kontrolu výsledku: false, 0 a undefined mohou mít u různých metod odlišný význam.

Symbol / vlastníkSignaturaKontrakt operace
JoltBody.get_penetration_history_capacityJoltBody.get_penetration_history_capacity()Číselná kapacita / počet aktuálních záznamů; při chybě 0. Počet může přesáhnout kapacitu hotových záznamů díky chráněným aktivním záznamům.
JoltBody.get_penetration_record_countJoltBody.get_penetration_record_count()Číselná kapacita / počet aktuálních záznamů; při chybě 0. Počet může přesáhnout kapacitu hotových záznamů díky chráněným aktivním záznamům.
JoltBody.get_penetration_recordsJoltBody.get_penetration_records()Nezávislé snapshoty, od nejstaršího entry ID; chyba vrací []. Nejde o reference živých relationships.

Úplný seznam deklarací API#

Deklarace odpovídají produkčním GML zdrojům. Hodnota za = označuje volitelný argument. Toto je seznam signatur; význam, jednotky a omezení popisují příslušné části návodu. Název typu před tečkou označuje vlastníka metody, nikoli globální funkci.