Files
SWBF2-Classic-Msh-Viewer/MshViewer/Source/Object.cpp
2016-09-12 16:49:05 +02:00

71 lines
1.5 KiB
C++

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