Blender V4.5
obj_import_mesh.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
8
9#pragma once
10
11#include "BLI_utility_mixins.hh"
12
13#include "obj_import_mtl.hh"
14#include "obj_import_objects.hh"
15
16struct Main;
17struct Mesh;
18struct Material;
19struct Object;
20struct OBJImportParams;
21
22namespace blender::io::obj {
23
28 private:
29 Geometry &mesh_geometry_;
30 const GlobalVertices &global_vertices_;
31
32 public:
33 MeshFromGeometry(Geometry &mesh_geometry, const GlobalVertices &global_vertices)
34 : mesh_geometry_(mesh_geometry), global_vertices_(global_vertices)
35 {
36 }
37
38 Mesh *create_mesh(const OBJImportParams &import_params);
39
41 Map<std::string, std::unique_ptr<MTLMaterial>> &materials,
42 Map<std::string, Material *> &created_materials,
43 const OBJImportParams &import_params);
44
45 private:
51 void fixup_invalid_faces();
52 void create_vertices(Mesh *mesh);
56 void create_faces(Mesh *mesh, bool use_vertex_groups);
60 void create_edges(Mesh *mesh);
64 void create_uv_verts(Mesh *mesh);
68 void create_materials(Main *bmain,
69 Map<std::string, std::unique_ptr<MTLMaterial>> &materials,
70 Map<std::string, Material *> &created_materials,
71 Object *obj,
72 bool relative_paths);
73 void create_normals(Mesh *mesh);
74 void create_colors(Mesh *mesh);
75 void create_vertex_groups(Object *obj);
76
77 bool has_normals() const;
78};
79
80} // namespace blender::io::obj
NonCopyable(const NonCopyable &other)=delete
NonMovable(NonMovable &&other)=delete
MeshFromGeometry(Geometry &mesh_geometry, const GlobalVertices &global_vertices)
Mesh * create_mesh(const OBJImportParams &import_params)
Object * create_mesh_object(Main *bmain, Map< std::string, std::unique_ptr< MTLMaterial > > &materials, Map< std::string, Material * > &created_materials, const OBJImportParams &import_params)