www.pudn.com > tristripper-1.1.0-beta-5.zip > gl_model.cpp
#include "stdafx.h"
#include "gl_model.h"
#include "fileio.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
// Members Functions
//////////////////////////////////////////////////////////////////////
bool gl_model::LoadFromVXO(std::istream & File)
{
using io_facilities::readvar;
const std::ios::iostate States = File.exceptions();
File.exceptions(std::ios::badbit | std::ios::eofbit | std::ios::failbit);
bool Result = true;
try {
// Is this really a VXO file?
char String[18];
File.read(String, 18);
if (strcmp(String, "OPENGL ENGINE VXO") != 0)
File.clear(std::ios::failbit);
// Number of Meshes
size_t NbMeshes;
readvar(File, NbMeshes, 4);
m_Meshes.resize(NbMeshes);
// Load Each Mesh
for (size_t i = 0; i < NbMeshes; ++i)
Mesh(i).LoadFromVxo(File);
}
catch (const std::ios::failure &)
{
Result = false;
}
File.exceptions(States);
return Result;
}