#ifndef slic3r_Format_OBJ_hpp_ #define slic3r_Format_OBJ_hpp_ #include "libslic3r/Color.hpp" #include namespace Slic3r { class TriangleMesh; class Model; class ModelObject; typedef std::function &input_colors, bool is_single_color, std::vector &filament_ids, unsigned char &first_extruder_id)> ObjImportColorFn; // Load an OBJ file into a provided model. struct ObjInfo { std::vector vertex_colors; std::vector face_colors; bool is_single_mtl{false}; std::vector> uvs; std::string obj_dircetory; std::map pngs; std::unordered_map uv_map_pngs; bool has_uv_png{false}; }; extern bool load_obj(const char *path, TriangleMesh *mesh, ObjInfo &vertex_colors, std::string &message); extern bool load_obj(const char *path, Model *model, ObjInfo &vertex_colors, std::string &message, const char *object_name = nullptr); extern bool store_obj(const char *path, TriangleMesh *mesh); extern bool store_obj(const char *path, ModelObject *model); extern bool store_obj(const char *path, Model *model); }; // namespace Slic3r #endif /* slic3r_Format_OBJ_hpp_ */