Paths
Uzavřené cesty
Spojí poslední control point s prvním a vytvoří souvislý okruh.
Před build_smooth() zavolejte set_loop(true). Loop potřebuje nejméně tři body a přidá Hermite segment od posledního bodu zpět k prvnímu.
Vytvoření loopu#
var loop = jolt_path();
loop.add_point(-7, 12, 3, 0);
loop.add_point(0, 7, 5, 30);
loop.add_point(7, 12, 3, 90);
loop.add_point(0, 17, 1, 0);
loop.set_loop(true);
loop.build_smooth();Loop state#
loop.is_loop();
loop.set_loop(false);Změna loop state zahodí nativní build. Před samplingem nebo vytvořením constraintu znovu zavolejte build_smooth().
Zalamování vzdálenosti#
- Distance sampling se zalamuje modulo délkou cesty.
- Záporné vzdálenosti se zalomí zpět kolem loopu.
- Motor target distances používají stejný převod z délky na fraction.
- Normalizovaný fraction sampling zůstává v rozsahu 0 až 1.
Souvislé tangenty#
Každá automatická tangenta loopu používá previous a next s cyklickými indexy. Spojení posledního a prvního bodu se proto vyhladí stejným pravidlem jako ostatní body.
Motorizovaný loop#
var rail = jolt_path_world(cart, loop, {
rotation_mode: JOLT_PATH_ROTATION_FOLLOW,
motor_max_force: 500,
motor_velocity: 4
});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 |
|---|---|---|
| JoltPath.is_loop | JoltPath.is_loop() | set_loop Boolean výsledku, změna zahodí build; is_loop Boolean, count číslo/0 při chybě. get_point(index od0) kopie position/roll/tangent/explicit_tangent nebo undefined. |
| JoltPath.set_loop | JoltPath.set_loop(loop) | set_loop Boolean výsledku, změna zahodí build; is_loop Boolean, count číslo/0 při chybě. get_point(index od0) kopie position/roll/tangent/explicit_tangent nebo undefined. |