2016-09-06 13:15:29 +00:00
|
|
|
#include "Object.h"
|
2016-09-12 14:49:05 +00:00
|
|
|
#include <fstream>
|
|
|
|
#include <iostream>
|
2016-09-06 13:15:29 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////
|
|
|
|
// public constructor/destructor
|
|
|
|
|
2016-09-12 14:49:05 +00:00
|
|
|
Object::Object(const char* path)
|
2016-09-06 13:15:29 +00:00
|
|
|
{
|
2016-09-12 14:49:05 +00:00
|
|
|
// open file
|
|
|
|
std::fstream fsMesh(path, std::ios::in | std::ios::binary);
|
2016-09-06 13:15:29 +00:00
|
|
|
|
2016-09-12 14:49:05 +00:00
|
|
|
if (!fsMesh.is_open())
|
|
|
|
throw std::invalid_argument(std::string("file not found: ") += path);
|
2016-09-06 13:15:29 +00:00
|
|
|
|
2016-09-12 14:49:05 +00:00
|
|
|
std::uint8_t ui8x4Header[5] = { 0 };
|
2016-09-06 13:15:29 +00:00
|
|
|
|
2016-09-12 14:49:05 +00:00
|
|
|
fsMesh.seekg(4, std::ios_base::cur);
|
|
|
|
std::uint32_t ui32FileSize;
|
|
|
|
fsMesh.read(reinterpret_cast<char*>(&ui32FileSize), sizeof(ui32FileSize));
|
2016-09-06 13:15:29 +00:00
|
|
|
|
2016-09-12 14:49:05 +00:00
|
|
|
fsMesh.seekg(4, std::ios_base::cur);
|
|
|
|
std::uint32_t ui32MshSize;
|
|
|
|
fsMesh.read(reinterpret_cast<char*>(&ui32MshSize), sizeof(ui32MshSize));
|
2016-09-06 13:15:29 +00:00
|
|
|
|
2016-09-12 14:49:05 +00:00
|
|
|
std::cout << "Hedr " << ui32FileSize << std::endl;
|
|
|
|
std::cout << "Msh " << ui32MshSize << std::endl;
|
2016-09-06 13:15:29 +00:00
|
|
|
|
|
|
|
|
2016-09-12 14:49:05 +00:00
|
|
|
do
|
|
|
|
{
|
2016-09-06 13:15:29 +00:00
|
|
|
|
2016-09-12 14:49:05 +00:00
|
|
|
char tempChunkName[5] = { 0 };
|
|
|
|
std::uint32_t tempChunkSize = 0;
|
|
|
|
fsMesh.read(reinterpret_cast<char*>(&tempChunkName[0]), sizeof(tempChunkName) - 1);
|
|
|
|
fsMesh.read(reinterpret_cast<char*>(&tempChunkSize), sizeof(tempChunkSize));
|
2016-09-06 13:15:29 +00:00
|
|
|
|
2016-09-12 14:49:05 +00:00
|
|
|
std::cout << tempChunkName << " " << tempChunkSize << std::endl;
|
2016-09-06 13:15:29 +00:00
|
|
|
|
2016-09-12 14:49:05 +00:00
|
|
|
fsMesh.seekg(tempChunkSize, std::ios_base::cur);
|
2016-09-06 13:15:29 +00:00
|
|
|
|
2016-09-12 14:49:05 +00:00
|
|
|
if (!std::strcmp(tempChunkName, "CL1L"))
|
|
|
|
break;
|
|
|
|
} while (!fsMesh.eof());
|
|
|
|
|
|
|
|
|
|
|
|
fsMesh.close();
|
2016-09-06 13:15:29 +00:00
|
|
|
}
|
|
|
|
|
2016-09-12 14:49:05 +00:00
|
|
|
Object::~Object()
|
2016-09-06 13:15:29 +00:00
|
|
|
{
|
2016-09-12 14:49:05 +00:00
|
|
|
|
2016-09-06 13:15:29 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////
|
2016-09-12 14:49:05 +00:00
|
|
|
// private functions
|
2016-09-06 13:15:29 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
2016-09-12 14:49:05 +00:00
|
|
|
/////////////////////////////////////////////////////////////////////////
|
|
|
|
// public getter
|
2016-09-06 13:15:29 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////
|
|
|
|
// public functions
|
|
|
|
|