Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/io/wavefront_obj/exporter/obj_export_file_writer.cc')
-rw-r--r--source/blender/io/wavefront_obj/exporter/obj_export_file_writer.cc31
1 files changed, 7 insertions, 24 deletions
diff --git a/source/blender/io/wavefront_obj/exporter/obj_export_file_writer.cc b/source/blender/io/wavefront_obj/exporter/obj_export_file_writer.cc
index 4eea2e51521..302b20783c2 100644
--- a/source/blender/io/wavefront_obj/exporter/obj_export_file_writer.cc
+++ b/source/blender/io/wavefront_obj/exporter/obj_export_file_writer.cc
@@ -178,31 +178,13 @@ void OBJWriter::write_mtllib_name(const StringRefNull mtl_filepath) const
file_handler_->write<eOBJSyntaxElement::mtllib>(mtl_file_name);
}
-void OBJWriter::write_object_group(const OBJMesh &obj_mesh_data) const
-{
- /* "o object_name" is not mandatory. A valid .OBJ file may contain neither
- * "o name" nor "g group_name". */
- BLI_assert(export_params_.export_object_groups);
- if (!export_params_.export_object_groups) {
- return;
- }
- const std::string object_name = obj_mesh_data.get_object_name();
- const char *object_mesh_name = obj_mesh_data.get_object_mesh_name();
- const char *object_material_name = obj_mesh_data.get_object_material_name(0);
- if (export_params_.export_materials && export_params_.export_material_groups &&
- object_material_name) {
- file_handler_->write<eOBJSyntaxElement::object_group>(object_name + "_" + object_mesh_name +
- "_" + object_material_name);
- return;
- }
- file_handler_->write<eOBJSyntaxElement::object_group>(object_name + "_" + object_mesh_name);
-}
-
void OBJWriter::write_object_name(const OBJMesh &obj_mesh_data) const
{
const char *object_name = obj_mesh_data.get_object_name();
if (export_params_.export_object_groups) {
- write_object_group(obj_mesh_data);
+ const std::string object_name = obj_mesh_data.get_object_name();
+ const char *mesh_name = obj_mesh_data.get_object_mesh_name();
+ file_handler_->write<eOBJSyntaxElement::object_group>(object_name + "_" + mesh_name);
return;
}
file_handler_->write<eOBJSyntaxElement::object_name>(object_name);
@@ -278,13 +260,14 @@ int16_t OBJWriter::write_poly_material(const OBJMesh &obj_mesh_data,
file_handler_->write<eOBJSyntaxElement::poly_usemtl>(MATERIAL_GROUP_DISABLED);
return current_mat_nr;
}
- if (export_params_.export_object_groups) {
- write_object_group(obj_mesh_data);
- }
const char *mat_name = matname_fn(current_mat_nr);
if (!mat_name) {
mat_name = MATERIAL_GROUP_DISABLED;
}
+ if (export_params_.export_material_groups) {
+ const std::string object_name = obj_mesh_data.get_object_name();
+ file_handler_->write<eOBJSyntaxElement::object_group>(object_name + "_" + mat_name);
+ }
file_handler_->write<eOBJSyntaxElement::poly_usemtl>(mat_name);
return current_mat_nr;