SWBF2-Classic-Msh-Viewer/MshViewer/Source/Object.cpp

71 lines
1.5 KiB
C++
Raw Normal View History

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