| 217 | } |
| 218 | |
| 219 | static s32 parse_node(Node &n, const ufbx_node *node) |
| 220 | { |
| 221 | Vector3 pos; |
| 222 | pos.x = (f32)node->local_transform.translation.x; |
| 223 | pos.y = (f32)node->local_transform.translation.y; |
| 224 | pos.z = (f32)node->local_transform.translation.z; |
| 225 | |
| 226 | Quaternion rot; |
| 227 | rot.x = (f32)node->local_transform.rotation.x; |
| 228 | rot.y = (f32)node->local_transform.rotation.y; |
| 229 | rot.z = (f32)node->local_transform.rotation.z; |
| 230 | rot.w = (f32)node->local_transform.rotation.w; |
| 231 | |
| 232 | Vector3 scl; |
| 233 | scl.x = (f32)node->local_transform.scale.x; |
| 234 | scl.y = (f32)node->local_transform.scale.y; |
| 235 | scl.z = (f32)node->local_transform.scale.z; |
| 236 | |
| 237 | n._local_pose = from_quaternion_translation(rot, pos); |
| 238 | set_scale(n._local_pose, scl); |
| 239 | |
| 240 | if (node->mesh != NULL) |
| 241 | n._geometry.from_string_id(StringId32((const char *)&node->mesh, sizeof(node->mesh))); |
| 242 | |
| 243 | return 0; |
| 244 | } |
| 245 | |
| 246 | static s32 parse_nodes(Mesh &m, const ufbx_node_list *nodes, CompileOptions &opts) |
| 247 | { |
no test coverage detected