14#include <lagrange/SurfaceMesh.h>
15#include <lagrange/fs/filesystem.h>
16#include <lagrange/io/types.h>
18#include <tiny_obj_loader.h>
22namespace lagrange::io::internal {
27tinyobj::ObjReader load_obj(
const fs::path& filename,
const LoadOptions& options = {});
32tinyobj::ObjReader load_obj(
33 std::istream& input_stream_obj,
34 std::istream& input_stream_mtl,
35 const LoadOptions& options = {});
40template <
typename MeshType>
46template <
typename SceneType>
47SceneType load_simple_scene_obj(
const tinyobj::ObjReader& reader,
const LoadOptions& options = {});
52template <
typename SceneType>
53SceneType
load_scene_obj(
const tinyobj::ObjReader& reader,
const LoadOptions& options = {});
64template <
typename Scalar,
typename Index>
81template <
typename MeshType>
83 const tinyobj::ObjReader& reader,
96template <
typename MeshType>
98 -> ObjReaderResult<typename MeshType::Scalar, typename MeshType::Index>;
110template <
typename MeshType>
112 std::istream& input_stream_obj,
113 std::istream& input_stream_mtl,
114 const LoadOptions& options = {})
115 -> ObjReaderResult<typename MeshType::Scalar, typename MeshType::Index>;
MeshType load_mesh_obj(std::istream &input_stream_obj, const LoadOptions &options={})
Loads a mesh from a file in MSH format.
Definition: load_obj.cpp:488
SceneType load_scene_obj(const fs::path &filename, const LoadOptions &options={})
Load an obj into a scene.
Definition: load_obj.cpp:511
Options used when loading a mesh or a scene.
Definition: types.h:77
Output of the obj mesh loader.
Definition: load_obj.h:66
SurfaceMesh< Scalar, Index > mesh
Aggregated mesh containing all elements in the .obj file.
Definition: load_obj.h:72
bool success
Whether the load operation was successful.
Definition: load_obj.h:68
std::vector< tinyobj::material_t > materials
Materials associated with the mesh.
Definition: load_obj.h:75
std::vector< std::string > names
Names of each object in the aggregate mesh.
Definition: load_obj.h:78