ViewDesignEngine  3.1.0
高性能 CAD 计算几何引擎
io_obj.h
浏览该文件的文档.
1 #pragma once
2 #include <string>
3 #include <vector>
5 
6 namespace vde::foundation {
7 
18 struct ObjMeshData {
20  std::vector<Point3D> vertices;
22  std::vector<Point2D> texcoords;
24  std::vector<Vector3D> normals;
25 
32  std::vector<std::vector<int>> faces;
33 
39  std::vector<std::vector<int>> face_texcoords;
40 
46  std::vector<std::vector<int>> face_normals;
47 
54  std::vector<std::string> face_materials;
55 
57  [[nodiscard]] bool has_texcoords() const { return !texcoords.empty(); }
58 };
59 
86 ObjMeshData read_obj(const std::string& filepath);
87 
108 void write_obj(const std::string& filepath, const ObjMeshData& data);
109 
110 } // namespace vde::foundation
ObjMeshData read_obj(const std::string &filepath)
读取 Wavefront OBJ 文件
void write_obj(const std::string &filepath, const ObjMeshData &data)
写入 Wavefront OBJ 文件
自适应双精度谓词后端(默认)
Definition: error_codes.h:4
OBJ 文件解析结果数据结构
Definition: io_obj.h:18
std::vector< std::vector< int > > faces
每个面的顶点索引列表(0-based)
Definition: io_obj.h:32
std::vector< Vector3D > normals
顶点法线数组(可能为空)
Definition: io_obj.h:24
bool has_texcoords() const
是否有纹理坐标数据
Definition: io_obj.h:57
std::vector< std::vector< int > > face_texcoords
每个面的纹理坐标索引列表(0-based)
Definition: io_obj.h:39
std::vector< std::string > face_materials
每个面对应的材质名称
Definition: io_obj.h:54
std::vector< std::vector< int > > face_normals
每个面的法线索引列表(0-based)
Definition: io_obj.h:46
std::vector< Point2D > texcoords
纹理坐标数组(可能为空)
Definition: io_obj.h:22
std::vector< Point3D > vertices
顶点位置数组
Definition: io_obj.h:20