| 5873 | } |
| 5874 | |
| 5875 | ImporterMeshInstance3D *GLTFDocument::_generate_mesh_instance(Ref<GLTFState> p_state, const GLTFNodeIndex p_node_index) { |
| 5876 | Ref<GLTFNode> gltf_node = p_state->nodes[p_node_index]; |
| 5877 | |
| 5878 | ERR_FAIL_INDEX_V(gltf_node->mesh, p_state->meshes.size(), nullptr); |
| 5879 | |
| 5880 | ImporterMeshInstance3D *mi = memnew(ImporterMeshInstance3D); |
| 5881 | print_verbose("glTF: Creating mesh for: " + gltf_node->get_name()); |
| 5882 | |
| 5883 | p_state->scene_mesh_instances.insert(p_node_index, mi); |
| 5884 | Ref<GLTFMesh> mesh = p_state->meshes.write[gltf_node->mesh]; |
| 5885 | if (mesh.is_null()) { |
| 5886 | return mi; |
| 5887 | } |
| 5888 | Ref<ImporterMesh> import_mesh = mesh->get_mesh(); |
| 5889 | if (import_mesh.is_null()) { |
| 5890 | return mi; |
| 5891 | } |
| 5892 | mi->set_mesh(import_mesh); |
| 5893 | import_mesh->merge_meta_from(*mesh); |
| 5894 | return mi; |
| 5895 | } |
| 5896 | |
| 5897 | Light3D *GLTFDocument::_generate_light(Ref<GLTFState> p_state, const GLTFNodeIndex p_node_index) { |
| 5898 | Ref<GLTFNode> gltf_node = p_state->nodes[p_node_index]; |