f32 distance(vec2 a, vec2 b)
Khoảng cách giữa hai điểm.
Definition _math.h:69
void spline_draw_debug(context &ctx, const spline3d &spline, rgba color={1.0f, 0.8f, 0.2f, 1.0f})
Vẽ đường và các điểm điều khiển bằng gizmo (njin_gizmo.h) trong frame này.
vec3 spline_tangent(const spline3d &spline, f32 t)
Hướng của đường ở tham số t, độ dài 1.
vec3 spline_tangent_at(const spline3d &spline, f32 distance)
Hướng ở khoảng cách distance, độ dài 1.
spline_kind
Loại đường cong của một spline.
Definition njin_spline.h:13
vec3 spline_point_at(const spline3d &spline, f32 distance)
Điểm ở khoảng cách distance tính từ đầu đường: đi đều theo khoảng cách.
f32 spline_nearest(const spline3d &spline, vec3 p, vec3 *out_point=nullptr)
Chỗ gần p nhất trên đường: để bám vào đường ray, biết người chơi đã đi được bao xa trên đường đua.
f32 spline_t_at(const spline3d &spline, f32 distance)
Tham số t ở khoảng cách distance tính từ đầu đường.
void spline_bake(spline3d &spline, i32 steps=64)
Lập bảng độ dài sau khi sửa điểm.
vec3 spline_follow(const spline3d &spline, spline_follower &follower, f32 dt)
Đi tiếp dt giây dọc đường và trả về chỗ mới.
f32 spline_length(const spline3d &spline)
Độ dài cả đường.
i32 spline_segment_count(const spline3d &spline)
Số đoạn: t của spline_point() chạy từ 0 đến số này.
spline_end
Khi đến cuối đường thì làm gì.
Definition njin_spline.h:133
vec3 spline_point(const spline3d &spline, f32 t)
Điểm trên đường ở tham số t: phần nguyên là đoạn, phần lẻ là vị trí trong đoạn.
@ spline_catmull_rom
Catmull-Rom: đường đi qua mọi điểm.
Definition njin_spline.h:17
@ spline_bezier
Bezier bậc ba: điểm 0, 3, 6... nằm trên đường, hai điểm giữa mỗi cặp là tay cầm kéo đường cong (như c...
Definition njin_spline.h:21
@ spline_ping_pong
Quay đầu đi ngược lại, rồi lại quay đầu ở đầu đường.
Definition njin_spline.h:136
@ spline_stop
Dừng ở cuối, finished thành true.
Definition njin_spline.h:134
@ spline_loop
Quay về đầu (đường kín thì đi tiếp vòng mới).
Definition njin_spline.h:135
std::int32_t i32
Số nguyên có dấu 32 bit.
Definition _types.h:14
float f32
Số thực 32 bit.
Definition _types.h:28
Màu gồm đỏ, xanh lá, xanh dương và alpha.
Definition _types.h:64
Như njin::spline3d, trên mặt phẳng: đường đi của quái 2D, quỹ đạo đạn cong.
Definition njin_spline.h:44
std::vector< f32 > table
Độ dài từ đầu đường tới từng mẫu.
Definition njin_spline.h:51
i32 steps
Số mẫu mỗi đoạn.
Definition njin_spline.h:52
spline_kind kind
Loại đường cong.
Definition njin_spline.h:46
f32 alpha
Như spline3d::alpha.
Definition njin_spline.h:48
bool closed
Đường kín.
Definition njin_spline.h:47
std::vector< vec2 > points
Các điểm điều khiển.
Definition njin_spline.h:45
Một đường cong 3D: đường ray của camera, bục di chuyển, lối bay, đường tuần tra.
Definition njin_spline.h:29
f32 alpha
Chỉ cho Catmull-Rom: 0 là đều (uniform), 0.5 là centripetal (mặc định, không thắt nút),...
Definition njin_spline.h:35
bool closed
Đường kín: điểm cuối nối về điểm đầu.
Definition njin_spline.h:32
spline_kind kind
Loại đường cong.
Definition njin_spline.h:31
std::vector< f32 > table
Độ dài từ đầu đường tới từng mẫu.
Definition njin_spline.h:38
i32 steps
Số mẫu mỗi đoạn.
Definition njin_spline.h:39
std::vector< vec3 > points
Các điểm điều khiển.
Definition njin_spline.h:30
Trạng thái của một vật đi dọc đường với tốc độ đều: camera trên ray, bục di chuyển,...
Definition njin_spline.h:141
f32 speed
Đơn vị mỗi giây. Âm là đi ngược.
Definition njin_spline.h:143
spline_end end
Khi đến cuối đường.
Definition njin_spline.h:144
f32 distance
Đã đi được bao xa từ đầu đường.
Definition njin_spline.h:142
bool finished
Đã dừng ở cuối (chỉ với spline_stop).
Definition njin_spline.h:145
Vector 2 chiều. Dùng cho vị trí, kích thước, độ dời.
Definition _types.h:39
Vector 3 chiều.
Definition _types.h:47