39 std::string outfile_path_;
44 : export_params_(export_params), outfile_path_(filepath), outfile_(nullptr)
48 throw std::system_error(errno, std::system_category(),
"Cannot open file " + outfile_path_);
53 if (outfile_ && std::fclose(outfile_)) {
54 std::cerr <<
"Error: could not close the file '" << outfile_path_
55 <<
"' properly, it may be corrupted." << std::endl;
79 bool write_colors)
const;
100 std::function<
const char *(
int)> matname_fn);
106 const OBJMesh &obj_mesh_data)
const;
122 func_vert_uv_normal_indices get_poly_element_writer(
int total_uv_vertices)
const;
169 std::string mtl_filepath_;
178 MTLWriter(
const char *obj_filepath) noexcept(
false);
189 const char *dest_dir);
206 void write_bsdf_properties(
const MTLMaterial &mtl_material);
210 void write_texture_map(
const MTLMaterial &mtl_material,
212 const char *blen_filedir,
213 const char *dest_dir,
215 Set<std::pair<std::string, std::string>> ©_set);
FILE * BLI_fopen(const char *filepath, const char *mode) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
MTLWriter(const char *obj_filepath) noexcept(false)
Vector< int > add_materials(const OBJMesh &mesh_to_export)
void write_header(const char *blen_filepath)
void write_materials(const char *blen_filepath, ePathReferenceMode path_mode, const char *dest_dir)
StringRefNull mtl_file_path() const
const char * mtlmaterial_name(int index)
void write_nurbs_curve(FormatHandler< eFileType::OBJ > &fh, const OBJCurve &obj_nurbs_data) const
OBJWriter(const char *filepath, const OBJExportParams &export_params) noexcept(false)
void write_poly_elements(FormatHandler< eFileType::OBJ > &fh, const IndexOffsets &offsets, const OBJMesh &obj_mesh_data, std::function< const char *(int)> matname_fn)
void write_header() const
void write_mtllib_name(const StringRefNull mtl_filepath) const
void write_vertex_coords(FormatHandler< eFileType::OBJ > &fh, const OBJMesh &obj_mesh_data, bool write_colors) const
void write_uv_coords(FormatHandler< eFileType::OBJ > &fh, OBJMesh &obj_mesh_data) const
void write_edges_indices(FormatHandler< eFileType::OBJ > &fh, const IndexOffsets &offsets, const OBJMesh &obj_mesh_data) const
void write_object_name(FormatHandler< eFileType::OBJ > &fh, const OBJMesh &obj_mesh_data) const
FILE * get_outfile() const
void write_poly_normals(FormatHandler< eFileType::OBJ > &fh, OBJMesh &obj_mesh_data)
SyclQueue void void size_t num_bytes void