Uchycení, velikost a vykreslování
Nastavte souřadnice ovladače vůči světu nebo tělesu a zobrazte skutečný pohyb bez ruční rekonstrukce úhlu.
| Položka | Význam / výchozí hodnota |
|---|---|
| parent | Výchozí undefined: uchycení ke světu. Jinak platný JoltBody ve stejném managed světě; Static, Kinematic i Dynamic. |
| position / rotation | Bez parentu: světový bod {x:0,y:0,z:0} a quaternion {x:0,y:0,z:0,w:1}. |
| local_position / local_rotation | S parentem: stejné výchozí hodnoty v jeho lokálním prostoru. Nekombinujte se světovými položkami. |
| mass / size | Kladná hmotnost a rozměry; konkrétní výchozí hodnoty má stránka typu. Změnu geometrie či dráhy řešte znovuvytvořením. |
| resistance / output | Výchozí odpor 0. Výstup 0..1 bez inverze; joystick −1..1 na každé ose. |
Svět je pravotočivý a Z-up. Local mount je relativní k veřejnému originu parentu, nikoli k těžišti. Platný nenulový quaternion se normalizuje. Při vytvoření na pohybujícím se parentu ovladač převezme jeho lokální rychlost v bodě uchycení. Kolize mezi parentem a ovladačem je pro mechanismus potlačená; kontakt s dalšími tělesy zůstává podle jejich vrstev.
Příklad#
var panel = jolt_box_create_static(0, 0, 1, 2, 1, 0.1);
var lever = jolt_control_lever({
parent: panel,
local_position: {x: 0.4, y: 0, z: 0.06},
local_rotation: {x: 0, y: 0, z: 0, w: 1},
size: {x: 0.08, y: 0.08, z: 0.5}
});Pohyblivá část a základna#
get_transform() vrací {position:{x,y,z}, rotation:{x,y,z,w}} pohyblivého tělesa ve světě. get_base_transform() vrací ve stejném formátu aktuální montážní rám. Lever a Joystick mají origin pohyblivého tělesa uprostřed tyče, Pedal uprostřed desky. Crank má origin v pivotu, ale těžiště mimo osu. Mesh musí mít odpovídající lokální origin; případný offset modelu složte s transformem.
// End Step: lever_instance je renderovací instance registrovaná u BBMOD rendereru.
var pose = lever.get_transform();
if (!is_undefined(pose)) {
lever_instance.Matrix = model_matrix_from_transform(pose.position, pose.rotation);
}Nové související postupy#
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 |
|---|---|---|
| JoltControl.get_base_transform | JoltControl.get_base_transform() | Světový transform pohyblivé části / montážního rámce {position m, rotation XYZW}; undefined při chybě. Parent transform se započítává. |
| JoltControl.get_transform | JoltControl.get_transform() | Světový transform pohyblivé části / montážního rámce {position m, rotation XYZW}; undefined při chybě. Parent transform se započítává. |