Pozice
Čte nebo mění origin JoltBody ve world space.
Pozice používá veřejný pravotočivý Z-up souřadnicový systém. Popisuje origin body transformu, který se při použití center_of_mass_offset může lišit od těžiště.
High-Level API#
body.get_position()
body.set_position(x, y, z)
body.get_transform()
body.get_center_of_mass_position()
body.get_center_of_mass_offset()Hodnoty a návratové typy#
| Metoda | Návrat | Popis |
|---|---|---|
| get_position() | {x,y,z} nebo undefined | Aktuální world-space body origin. |
| set_position(x,y,z) | Boolean | Teleportuje origin na konečnou world-space pozici. |
| get_transform() | Struct nebo undefined | Vrátí {position, rotation} ze dvou validovaných čtení. |
| get_center_of_mass_position() | {x,y,z} nebo undefined | Aktuální world-space pozice těžiště. |
| get_center_of_mass_offset() | {x,y,z} | Lokální offset zadaný při vytvoření a uložený wrapperem. |
Chování podle motion typu#
- Dynamic a Kinematic bodies se po úspěšném set_position() aktivují.
- Static body lze přemístit, ale neaktivuje se.
- set_position() je okamžitý teleport a nevypočítává velocity směrem k cíli.
- Pro pohyb Kinematic body k cíli v čase použijte move_kinematic() nebo move_kinematic_euler(); Dynamic kontakty pak vnímají výslednou rychlost.
Kinematic pohyb k cíli#
body.move_kinematic(x, y, z, qx, qy, qz, qw, seconds)
body.move_kinematic_euler(x, y, z, rx, ry, rz, seconds)Metody vyžadují Kinematic body, konečné cílové souřadnice, platnou rotaci a konečné seconds > 0. Euler úhly jsou ve stupních. Při úspěchu vracejí true.
Creation option a příklad#
var body = jolt_box_create_dynamic(0, 0, 4, 1, 1, 1, {
center_of_mass_offset: {x:0.25, y:0, z:-0.1}
});
body.set_position(3, -2, 6);
var origin = body.get_position();
var centre = body.get_center_of_mass_position();center_of_mass_offset musí být konečný struct {x,y,z} a po vytvoření jej nelze změnit.
Low-Level / Advanced API#
Low-level setter vrací číselné 1/0. Component gettery vracejí Real a při selhání používají native error state.
Settery vracejí true při úspěchu a false při neplatném vstupu, invalidním nebo stale body či nepodporovaném motion typu. Gettery vracejí požadovanou hodnotu nebo undefined při selhání. High-level chybu zjistíte přes jolt_get_error().
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 |
|---|---|---|
| JoltBody.get_position | JoltBody.get_position() | Světový {x, y, z} m / quaternion XYZW / Euler XYZ° / {position, rotation}, dle metody. undefined při chybě. Pozice je origin tělesa, ne COM. |
| JoltBody.set_position | JoltBody.set_position(x, y, z) | Boolean teleportu; světová pozice m, rotace XYZW nebo Euler XYZ°. set_rotation se třemi složkami znamená Euler°, se čtyřmi quaternion. Synchronizuje připojené senzory; pro pohyblivou plošinu použij move_kinematic. |