Paths
Řídicí body dráhy
Definuje pozice, roll a volitelné explicitní tangenty hladké cesty.
Control points používají veřejné pravotočivé Z-up souřadnice. Každý bod obsahuje pozici a roll; tangenta může vzniknout automaticky nebo být zadána ručně.
Automatická tangenta#
track.add_point(x, y, z, roll=0);Explicitní tangenta#
track.add_point_tangent(
x, y, z,
tangent_x, tangent_y, tangent_z,
roll=0
);Explicitní tangenta musí být konečná a nenulová. Její směr a délka přímo tvarují Hermite křivku kolem daného control pointu.
Čtení bodů#
var count = track.get_point_count();
var point = track.get_point(1);| Field | Význam |
|---|---|
| index | Index control pointu od nuly. |
| x, y, z | Veřejná pozice bodu. |
| roll | Natočení kolem tangenty ve stupních. |
| tangent_x/y/z | Explicitní nebo vygenerovaná tangenta. |
| explicit_tangent | Zda tangentu dodalo add_point_tangent(). |
Limity a validace#
- Cesta může obsahovat nejvýše 2048 control points.
- Pozice, tangenty i roll musí být konečné.
- Dva sousední body nesmějí ležet na stejné pozici.
- get_point() s indexem mimo rozsah vrátí undefined a nastaví high-level 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 |
|---|---|---|
| JoltPath.add_point | JoltPath.add_point(x, y, z, roll = 0) | Boolean; místní XYZ m a roll° default 0, nejvýše2048 bodů. Explicitní tangent konečný nenulový, jeho délka ovlivní Hermite křivku. Editace zahodí starý build; poté build_smooth. |
| JoltPath.add_point_tangent | JoltPath.add_point_tangent(x, y, z, tx, ty, tz, roll = 0) | Boolean; místní XYZ m a roll° default 0, nejvýše2048 bodů. Explicitní tangent konečný nenulový, jeho délka ovlivní Hermite křivku. Editace zahodí starý build; poté build_smooth. |
| JoltPath.get_point | JoltPath.get_point(index) | 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.get_point_count | JoltPath.get_point_count() | 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. |