SpiecsEngine
 
Loading...
Searching...
No Matches

◆ GltfBuffers()

Spices::GltfBuffers::GltfBuffers ( const Json & data,
const std::filesystem::path & path )
inline

Constructor Function.

Parameters
[in]dataSpecific Json element.
[in]pathgltf file directory path.

Read buffer file.

Definition at line 37 of file GltfBuffers.h.

38 : GltfObject(data)
39 , m_Path(path)
40 {
42
43 m_BuffersData.resize(data.size());
44
45 for (int i = 0; i < data.size(); i++)
46 {
47 Item& item = m_BuffersData[i];
48 const Json& json = data[i];
49
50 item.byteLength = GltfHelper::GetElementInt(json, "byteLength", -1);
51 item.uri = GltfHelper::GetElementString(json, "uri", "");
52
56 std::stringstream file;
57 file << path.string() << "/" << item.uri;
58
59 std::ifstream f(file.str(), std::ios::in | std::ios::binary);
60 if (!f)
61 {
62 std::stringstream ss;
63 ss << "Buffer Files: " << file.str() << " is not finded.";
64
65 SPICES_CORE_ERROR(ss.str())
66 continue;
67 }
68
69 f.seekg(0, f.end);
70 std::streamoff length = f.tellg();
71 f.seekg(0, f.beg);
72
73 item.buffer = std::make_unique<std::vector<char>>(length, 0);
74 f.read(item.buffer->data(), length);
75 }
76 }
#define SPICES_PROFILE_ZONE
std::filesystem::path m_Path
gltf file directory path.
Definition GltfBuffers.h:88
std::vector< Item > m_BuffersData
Data of Gltf Json Buffers.
Definition GltfBuffers.h:93
static int GetElementInt(const Json::object_t &root, const char *path, int pDefault)
Get int value in Json::object_t.
static std::string GetElementString(const Json::object_t &root, const char *path, const std::string &pDefault)
Get string value in Json::object_t.
GltfObject(const Json &data)
Constructor Function.
Definition GltfObject.h:33
nlohmann::json Json
using Json insteadd of nlohmann::json
Definition GltfObject.h:25
STL namespace.

References GltfBuffers().

Referenced by GltfBuffers().