| 201 | } |
| 202 | |
| 203 | s32 parse_node(Node &n, const ufbx_node *node) |
| 204 | { |
| 205 | Vector3 pos; |
| 206 | pos.x = (f32)node->local_transform.translation.x; |
| 207 | pos.y = (f32)node->local_transform.translation.y; |
| 208 | pos.z = (f32)node->local_transform.translation.z; |
| 209 | |
| 210 | Quaternion rot; |
| 211 | rot.x = (f32)node->local_transform.rotation.x; |
| 212 | rot.y = (f32)node->local_transform.rotation.y; |
| 213 | rot.z = (f32)node->local_transform.rotation.z; |
| 214 | rot.w = (f32)node->local_transform.rotation.w; |
| 215 | |
| 216 | Vector3 scl; |
| 217 | scl.x = (f32)node->local_transform.scale.x; |
| 218 | scl.y = (f32)node->local_transform.scale.y; |
| 219 | scl.z = (f32)node->local_transform.scale.z; |
| 220 | |
| 221 | n._local_pose = from_quaternion_translation(rot, pos); |
| 222 | set_scale(n._local_pose, scl); |
| 223 | |
| 224 | if (node->mesh != NULL) |
| 225 | n._geometry.from_string_id(StringId32((const char *)&node->mesh, sizeof(node->mesh))); |
| 226 | |
| 227 | return 0; |
| 228 | } |
| 229 | |
| 230 | s32 parse_nodes(Mesh &m, const ufbx_node_list *nodes, CompileOptions &opts) |
| 231 | { |
no test coverage detected