Files
UnrealEngine/Engine/Source/ThirdParty/MaterialX/MaterialX-1.38.10/source/MaterialXRender/TinyObjLoader.h
2025-05-18 13:04:45 +08:00

40 lines
982 B
C++

//
// Copyright Contributors to the MaterialX Project
// SPDX-License-Identifier: Apache-2.0
//
#ifndef MATERIALX_TINYOBJLOADER_H
#define MATERIALX_TINYOBJLOADER_H
/// @file
/// OBJ geometry format loader using the TinyObj library
#include <MaterialXRender/GeometryHandler.h>
MATERIALX_NAMESPACE_BEGIN
/// Shared pointer to a TinyObjLoader
using TinyObjLoaderPtr = std::shared_ptr<class TinyObjLoader>;
/// @class TinyObjLoader
/// Wrapper for geometry loader to read in OBJ files using the TinyObj library.
class MX_RENDER_API TinyObjLoader : public GeometryLoader
{
public:
TinyObjLoader()
{
_extensions = { "obj", "OBJ" };
}
virtual ~TinyObjLoader() { }
/// Create a new TinyObjLoader
static TinyObjLoaderPtr create() { return std::make_shared<TinyObjLoader>(); }
/// Load geometry from disk
bool load(const FilePath& filePath, MeshList& meshList, bool texcoordVerticalFlip = false) override;
};
MATERIALX_NAMESPACE_END
#endif