41 std::string outfile_path_;
46 : export_params_(export_params), outfile_path_(filepath), outfile_(nullptr)
50 throw std::system_error(errno, std::system_category(),
"Cannot open file " + outfile_path_);
55 if (outfile_ && std::fclose(outfile_)) {
56 std::cerr <<
"Error: could not close the file '" << outfile_path_
57 <<
"' properly, it may be corrupted." << std::endl;
81 bool write_colors)
const;
108 const OBJMesh &obj_mesh_data)
const;
124 func_vert_uv_normal_indices get_face_element_writer(
int total_uv_vertices)
const;
170 FILE *outfile_ =
nullptr;
171 std::string mtl_filepath_;
180 MTLWriter(
const char *obj_filepath,
bool write_file)
noexcept(
false);
191 const char *dest_dir,
209 void write_bsdf_properties(
const MTLMaterial &mtl_material,
bool write_pbr);
213 void write_texture_map(
const MTLMaterial &mtl_material,
216 const char *blen_filedir,
217 const char *dest_dir,
219 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, bool write_file) 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, bool write_pbr)
StringRefNull mtl_file_path() const
const char * mtlmaterial_name(int index)
FILE * get_outfile() const
void write_normals(FormatHandler &fh, OBJMesh &obj_mesh_data)
OBJWriter(const char *filepath, const OBJExportParams &export_params) noexcept(false)
void write_uv_coords(FormatHandler &fh, OBJMesh &obj_mesh_data) const
void write_header() const
void write_mtllib_name(const StringRefNull mtl_filepath) const
void write_nurbs_curve(FormatHandler &fh, const OBJCurve &obj_nurbs_data) const
void write_face_elements(FormatHandler &fh, const IndexOffsets &offsets, const OBJMesh &obj_mesh_data, FunctionRef< const char *(int)> matname_fn)
void write_vertex_coords(FormatHandler &fh, const OBJMesh &obj_mesh_data, bool write_colors) const
void write_edges_indices(FormatHandler &fh, const IndexOffsets &offsets, const OBJMesh &obj_mesh_data) const
void write_object_name(FormatHandler &fh, const OBJMesh &obj_mesh_data) const
draw_view push_constant(Type::INT, "radiance_src") .push_constant(Type capture_info_buf storage_buf(1, Qualifier::READ, "ObjectBounds", "bounds_buf[]") .push_constant(Type draw_view int