summaryrefslogtreecommitdiff
path: root/editor/import/resource_importer_obj.cpp
diff options
context:
space:
mode:
authorRĂ©mi Verschelde <remi@verschelde.fr>2023-01-16 22:10:30 +0100
committerGitHub <noreply@github.com>2023-01-16 22:10:30 +0100
commit14a6a5b79ff95f2f32f69b2ac01a207444b950f0 (patch)
tree47a03c102c7d82e3cf03d8b2045c6e275adfbf7d /editor/import/resource_importer_obj.cpp
parent629796c333bcc46f2aeb4399c1a5786d6b013289 (diff)
parent0442a656561e7d22e942cfb2184d5020e7ea7b35 (diff)
Merge pull request #71077 from rsjtdrjgfuzkfg/obj-import
obj: Avoid empty names and meshes
Diffstat (limited to 'editor/import/resource_importer_obj.cpp')
-rw-r--r--editor/import/resource_importer_obj.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/editor/import/resource_importer_obj.cpp b/editor/import/resource_importer_obj.cpp
index f1fd1d5a03..ad6d41e10c 100644
--- a/editor/import/resource_importer_obj.cpp
+++ b/editor/import/resource_importer_obj.cpp
@@ -218,7 +218,8 @@ static Error _parse_obj(const String &p_path, List<Ref<Mesh>> &r_meshes, bool p_
Vector<Vector3> normals;
Vector<Vector2> uvs;
Vector<Color> colors;
- String name;
+ const String default_name = "Mesh";
+ String name = default_name;
HashMap<String, HashMap<String, Ref<StandardMaterial3D>>> material_map;
@@ -395,9 +396,12 @@ static Error _parse_obj(const String &p_path, List<Ref<Mesh>> &r_meshes, bool p_
if (l.begins_with("o ") || f->eof_reached()) {
if (!p_single_mesh) {
- mesh->set_name(name);
- r_meshes.push_back(mesh);
- mesh.instantiate();
+ if (mesh->get_surface_count() > 0) {
+ mesh->set_name(name);
+ r_meshes.push_back(mesh);
+ mesh.instantiate();
+ }
+ name = default_name;
current_group = "";
current_material = "";
}
@@ -460,6 +464,7 @@ Node *EditorOBJImporter::import_scene(const String &p_path, uint32_t p_flags, co
for (const Ref<Mesh> &m : meshes) {
Ref<ImporterMesh> mesh;
mesh.instantiate();
+ mesh->set_name(m->get_name());
for (int i = 0; i < m->get_surface_count(); i++) {
mesh->add_surface(m->surface_get_primitive_type(i), m->surface_get_arrays(i), Array(), Dictionary(), m->surface_get_material(i));
}