njin
Engine 2D gọn nhẹ để tự tay làm game theo ý mình. Vibe coding cũng ổn luôn
Loading...
Searching...
No Matches
njin::cloth3d_desc Struct Tham chiếu

Mô tả một tấm vải cho cloth3d_create(): một lưới chữ nhật columns x rows ô, nằm trong mặt phẳng x–y của nó (đứng thẳng như lá cờ, rèm cửa), tâm ở position. Tiếp...

#include <njin_physics3d.h>

Các thuộc tính Public

vec3 position {0.0f, 0.0f, 0.0f}
 Tâm tấm vải.
vec3 rotation {0.0f, 0.0f, 0.0f}
 Góc xoay, độ, cùng thứ tự với njin::transform3d.
vec2 size {2.0f, 2.0f}
 Chiều rộng (x) và chiều cao (y).
i32 columns = 20
 Số ô theo chiều rộng, 1..512.
i32 rows = 20
 Số ô theo chiều cao, 1..512.
f32 mass = 0.5f
 Khối lượng cả tấm, kg.
f32 stiffness = 1.0f
 Độ cứng của sợi vải, 0 (dãn) .. 1 (không dãn).
f32 bend = 0.05f
 Độ cứng khi gập, 0 (lụa) .. 1 (bìa cứng).
f32 damping = 0.1f
 Cản chuyển động: vận tốc giảm theo tỉ lệ này mỗi giây.
f32 friction = 0.5f
 Ma sát, 0..1.
f32 drag = 1.0f
 Hệ số cản của không khí, như njin::softbody3d_desc::drag.
f32 thickness = 0.02f
 Độ dày, đơn vị thế giới: các đỉnh giữ cách mặt vật khác chừng này, để vải không chìm vào bàn khi vẽ.
u8 pin_edges = 0
 Các cạnh bị ghim (bit njin::cloth3d_edge).
const u32 * pinned = nullptr
 Các đỉnh bị ghim thêm (góc trên của lá cờ...).
u32 pinned_count = 0
 Số phần tử của pinned.
u64 user = 0
 Số của game, đọc lại bằng softbody3d_user().
bool collide_soft = true
 Như njin::softbody3d_desc::collide_soft: hai tấm vải không xuyên qua nhau.
bool walkable = true
 Như njin::softbody3d_desc::walkable: đứng được trên tấm vải nằm ngang.

Mô tả chi tiết

Mô tả một tấm vải cho cloth3d_create(): một lưới chữ nhật columns x rows ô, nằm trong mặt phẳng x–y của nó (đứng thẳng như lá cờ, rèm cửa), tâm ở position.

Đỉnh ở hàng r, cột c có chỉ số r * (columns + 1) + c; hàng 0 là cạnh trên, cột 0 là cạnh trái (phía -x). Xoay rotation.x = 90 để vải nằm ngang (khăn trải bàn).