tutorial 04
This commit is contained in:
@@ -13,6 +13,7 @@
|
||||
#include "../../loader.hpp"
|
||||
#include "../builder/mesh_builder_data.hpp"
|
||||
#include <string>
|
||||
#include <memory>
|
||||
|
||||
namespace Tyra {
|
||||
|
||||
@@ -24,13 +25,12 @@ struct MD2LoaderOptions {
|
||||
/** Class responsible for loading & parsing Quake's II ".md2" 3D files */
|
||||
class MD2Loader : public Loader {
|
||||
public:
|
||||
MD2Loader();
|
||||
~MD2Loader();
|
||||
|
||||
MeshBuilderData* load(const char* fullpath);
|
||||
MeshBuilderData* load(const char* fullpath, MD2LoaderOptions options);
|
||||
MeshBuilderData* load(const std::string& fullpath);
|
||||
MeshBuilderData* load(const std::string& fullpath, MD2LoaderOptions options);
|
||||
static std::unique_ptr<MeshBuilderData> load(const char* fullpath);
|
||||
static std::unique_ptr<MeshBuilderData> load(const char* fullpath,
|
||||
MD2LoaderOptions options);
|
||||
static std::unique_ptr<MeshBuilderData> load(const std::string& fullpath);
|
||||
static std::unique_ptr<MeshBuilderData> load(const std::string& fullpath,
|
||||
MD2LoaderOptions options);
|
||||
};
|
||||
|
||||
} // namespace Tyra
|
||||
|
||||
@@ -38,32 +38,30 @@ struct MaterialVertexCount {
|
||||
/** Class responsible for loading & parsing obj files */
|
||||
class ObjLoader : public Loader {
|
||||
public:
|
||||
ObjLoader();
|
||||
~ObjLoader();
|
||||
|
||||
std::unique_ptr<MeshBuilderData> load(const char* fullpath);
|
||||
std::unique_ptr<MeshBuilderData> load(const char* fullpath,
|
||||
const ObjLoaderOptions& options);
|
||||
std::unique_ptr<MeshBuilderData> load(const std::string& fullpath);
|
||||
std::unique_ptr<MeshBuilderData> load(const std::string& fullpath,
|
||||
const ObjLoaderOptions& options);
|
||||
static std::unique_ptr<MeshBuilderData> load(const char* fullpath);
|
||||
static std::unique_ptr<MeshBuilderData> load(const char* fullpath,
|
||||
const ObjLoaderOptions& options);
|
||||
static std::unique_ptr<MeshBuilderData> load(const std::string& fullpath);
|
||||
static std::unique_ptr<MeshBuilderData> load(const std::string& fullpath,
|
||||
const ObjLoaderOptions& options);
|
||||
|
||||
private:
|
||||
void addOutputMaterialsAndFrames(
|
||||
static void addOutputMaterialsAndFrames(
|
||||
MeshBuilderData* output, const tinyobj::attrib_t& attrib,
|
||||
const std::vector<tinyobj::shape_t>& shapes,
|
||||
const std::vector<tinyobj::material_t>& materials, const u16& framesCount,
|
||||
std::vector<MaterialVertexCount>& materialVertexCounts);
|
||||
|
||||
std::vector<MaterialVertexCount> scan(
|
||||
static std::vector<MaterialVertexCount> scan(
|
||||
const std::vector<tinyobj::shape_t>& shapes,
|
||||
const std::vector<tinyobj::material_t>& materials);
|
||||
|
||||
void importFrame(MeshBuilderData* output, const tinyobj::attrib_t& attrib,
|
||||
const std::vector<tinyobj::shape_t>& shapes,
|
||||
const std::vector<tinyobj::material_t>& materials,
|
||||
const u16& frameIndex, const float& scale,
|
||||
const bool& invertY, const u16& count);
|
||||
static void importFrame(MeshBuilderData* output,
|
||||
const tinyobj::attrib_t& attrib,
|
||||
const std::vector<tinyobj::shape_t>& shapes,
|
||||
const std::vector<tinyobj::material_t>& materials,
|
||||
const u16& frameIndex, const float& scale,
|
||||
const bool& invertY, const u16& count);
|
||||
};
|
||||
|
||||
} // namespace Tyra
|
||||
|
||||
Reference in New Issue
Block a user