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>
41MeshType load_mesh_obj(
const tinyobj::ObjReader& reader,
const LoadOptions& options = {});
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>;
A general purpose polygonal mesh class.
Definition SurfaceMesh.h:66
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
Options used when loading a mesh or a scene.
Definition types.h:80
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