Umístění a konfigurace Tipu
Tip umístěte na skutečný přední povrch a jeho osu namiřte ve směru zamýšleného zasouvání.
jolt_penetrator_tip(body) připraví neaktivní JoltPenetrator s modelem 2. Nastavte pozici a osu přes set_local_position/set_local_axis a aktivujte set_enabled(true). Varianta (body, config) dál vytváří okamžitě a zachovává výchozí model 1. Penetrator musí být Dynamic non-sensor podporovaného solid tvaru. Polohu a osu zadávejte v lokálním prostoru body, nikoli ve world space; rotace body je pak přenese do světa.
tip = jolt_penetrator_tip(penetrator, {
local_position: { x: 0, y: 0, z: -0.4 },
local_axis: { x: 0, y: 0, z: -1 },
capture_model: 2,
max_angle: 40,
max_insertion: 0.2,
mask: 1
});Základní konfigurace#
| Název | Výchozí / rozsah | Význam |
|---|---|---|
| enabled | false / legacy config: true | Povolí admission tohoto Tipu. |
| local_position | {x:0,y:0,z:0} | Konečný lokální bod na předním povrchu kolizního tvaru. |
| local_axis | {x:0,y:0,z:1} | Konečný nenulový vektor. Normalizuje se; kladný směr znamená zasouvání. |
| mask | 4294967295 / uint32 | Povolené category_bits targetů; musí mít alespoň jeden společný bit. |
| max_angle | 20° / 0 ≤ angle < 90° | Největší aktuální úhel osy vůči normále mířící dovnitř targetu. |
| max_insertion | 0.5 m / > 0 | Limit zasunutí Tipu vůči vstupnímu bodu. |
| max_simultaneous_penetrations | 1 / integer 1–32 | Maximum současných relationships na jednom Tipu; také platí kapacita světa. |
| max_capture_axial_speed | 0 m/s / ≥ 0 | 0 vypíná tento rychlostní strop. Kladná hodnota omezuje vstupní relativní axiální rychlost, nikoli následný pohyb. |
| capture_model | 2 setters / 1 legacy config; 0, 1, 2, 3 | Nový připravený objekt používá model 2. U kompatibilní varianty s config strukturou jej zvolte výslovně, jinak zůstává původní model 1. Model 3 se zapíná konstantou JOLT_PENETRATION_CAPTURE_STRICT_PREDICTIVE. |
Parametry capture modelu 2#
| Název | Výchozí / rozsah | Význam |
|---|---|---|
| probe_length | 0.05 m / 0 < x ≤ 1 | Dosah hledání osového povrchu. Support geometrie může odůvodnit delší ray; tento parametr nepovoluje capture přes větší mezeru. |
| probe_radius | 0 m / 0 ≤ x ≤ 0.1 | Rozšíření kandidátního hledání kolem osy. Nejde o další collider ani povolení bočního zásahu. |
| capture_gap | 0.001 m / 0 < x ≤ 0.005 | Maximální kladná mezera předního supportu před ověřeným povrchem. |
| capture_overlap | 0.02 m / 0 < x ≤ 0.03 | Maximální počáteční vnoření authored Tipu podle normály povrchu. Není to výsledný max_depth. |
| tip_surface_tolerance | 0.001 m / 0 < x ≤ 0.002 | Tolerance registrace Tipu na předním povrchu. |
| rearm_separation | 0.01 m / 0 < x ≤ 1 | Odstup potřebný k novému připravení po úplném vytažení; kontroluje se i těleso, nejen bod Tipu. |
| contact_assisted | true | Zachovaný parametr modelu 1. V modelu 2 rozhodnutí nemění; nepřepíná segmentaci ani support geometrie. |
| contact_tolerance | 0.02 m / 0 < x ≤ 0.1 | Původní tolerance; u moderních modelů slouží také jako fallback pro probe_length a rearm_separation, pokud je při vytvoření výslovně dodaná. Používejte přesnější samostatné parametry. |
Při configure() se nejprve načte aktuální plná konfigurace. Změna samotného contact_tolerance tedy nepřepíše již existující probe_length ani rearm_separation. Čísla musí být konečná; hodnoty mimo rozsah se odmítají. Neznámé klíče nejsou veřejné nastavení a nemají zaručený účinek.
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ík | Signatura | Kontrakt operace |
|---|---|---|
| jolt_penetrator_tip | jolt_penetrator_tip(body,config=undefined) | Živý Body; bez config vrací připravený neaktivní JoltPenetrator (handle 0), s config aktivuje podle enabled (default true). Chyba undefined. Pozor rozdíl defaultu capture_model: builder 2, přímé options bez pole 1. Pro Strict Predictive nastav explicitně JOLT_PENETRATION_CAPTURE_STRICT_PREDICTIVE (3). |