Shape Queries
Shape Casts
Cast posouvá tvar mezi dvěma středy ve světových souřadnicích s neměnnou orientací. Není to rotační sweep a sám neřeší pohyb ani klouzání podél překážek. Základní variantu použijte pro nejbližší překážku, _all pro všechna tělesa na trase.
jolt_cast_box(sx, sy, sz, ex, ey, ez, width, depth, height, options=undefined)
jolt_cast_sphere(sx, sy, sz, ex, ey, ez, radius, options=undefined)
jolt_cast_capsule(sx, sy, sz, ex, ey, ez, height, radius, options=undefined)
jolt_cast_shape(shape, sx, sy, sz, ex, ey, ez, options=undefined)
// The same argument lists apply to jolt_cast_*_all.Platné minutí má hit: false, fraction: 1 a distance: 0; distance při minutí není délka celého dotazu. Varianta _all zachovává nejbližší zásah každého tělesa a řadí podle fraction. Počáteční průnik má fraction: 0 a initial_overlap: true; vyžaduje řešení průniku, nikoliv běžný pohyb vpřed.
var r = jolt_cast_sphere(0, 0, 2, 10, 0, 2, 0.25);
if (r.error_code != 0) show_debug_message(r.error_message);
else if (r.hit) show_debug_message(r.shape_position);
var hits = jolt_cast_sphere_all(0, 0, 2, 10, 0, 2, 0.25);
if (jolt_has_error()) show_debug_message(jolt_get_error_message());
else show_debug_message(array_length(hits));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_cast_box | jolt_cast_box(sx,sy,sz,ex,ey,ez,width,depth,height,options=undefined) | Světové start/end body m, pevná orientace a rozměry jako overlap; generic pouze convex-compatible resource. Neotáčí tvar během sweepu. Nejbližší hit struct nebo hit:false, error_code/message. Pole position, query_position, shape_position, normal, penetration_depth, fraction, distance, subshape IDs, initial_overlap, body/entity. |
| jolt_cast_box_all | jolt_cast_box_all(sx,sy,sz,ex,ey,ez,width,depth,height,options=undefined) | Stejné parametry jako nearest cast, vrací pole hitů místo jednoho. [] znamená bez zásahu nebo chybu; chybu rozliš přes jolt_get_error. Žádné dočasné těleso ani posun existujícího tělesa. |
| jolt_cast_capsule | jolt_cast_capsule(sx,sy,sz,ex,ey,ez,height,radius,options=undefined) | Světové start/end body m, pevná orientace a rozměry jako overlap; generic pouze convex-compatible resource. Neotáčí tvar během sweepu. Nejbližší hit struct nebo hit:false, error_code/message. Pole position, query_position, shape_position, normal, penetration_depth, fraction, distance, subshape IDs, initial_overlap, body/entity. |
| jolt_cast_capsule_all | jolt_cast_capsule_all(sx,sy,sz,ex,ey,ez,height,radius,options=undefined) | Stejné parametry jako nearest cast, vrací pole hitů místo jednoho. [] znamená bez zásahu nebo chybu; chybu rozliš přes jolt_get_error. Žádné dočasné těleso ani posun existujícího tělesa. |
| jolt_cast_shape | jolt_cast_shape(shape,sx,sy,sz,ex,ey,ez,options=undefined) | Světové start/end body m, pevná orientace a rozměry jako overlap; generic pouze convex-compatible resource. Neotáčí tvar během sweepu. Nejbližší hit struct nebo hit:false, error_code/message. Pole position, query_position, shape_position, normal, penetration_depth, fraction, distance, subshape IDs, initial_overlap, body/entity. |
| jolt_cast_shape_all | jolt_cast_shape_all(shape,sx,sy,sz,ex,ey,ez,options=undefined) | Stejné parametry jako nearest cast, vrací pole hitů místo jednoho. [] znamená bez zásahu nebo chybu; chybu rozliš přes jolt_get_error. Žádné dočasné těleso ani posun existujícího tělesa. |
| jolt_cast_sphere | jolt_cast_sphere(sx,sy,sz,ex,ey,ez,radius,options=undefined) | Světové start/end body m, pevná orientace a rozměry jako overlap; generic pouze convex-compatible resource. Neotáčí tvar během sweepu. Nejbližší hit struct nebo hit:false, error_code/message. Pole position, query_position, shape_position, normal, penetration_depth, fraction, distance, subshape IDs, initial_overlap, body/entity. |
| jolt_cast_sphere_all | jolt_cast_sphere_all(sx,sy,sz,ex,ey,ez,radius,options=undefined) | Stejné parametry jako nearest cast, vrací pole hitů místo jednoho. [] znamená bez zásahu nebo chybu; chybu rozliš přes jolt_get_error. Žádné dočasné těleso ani posun existujícího tělesa. |