#include "io_m3dme.h"
#include "m3dme.h"

QList< Format > M3DMEImporter::importFormats( )
{
	QList<Format> formatList;
	formatList << Format("Magic3D engine mesh file format","M3DME");
	return formatList;
}

QList< Format > M3DMEImporter::exportFormats( )
{
	QList<Format> formatList;
	formatList << Format("Magic3D engine mesh file format","M3DME");
	return formatList;
}

void M3DMEImporter::GetExportMaskCapability( QString & format, int & capability, int & defaultBits )
{
	if(format.toUpper() == "M3DME")
	{
		capability=defaultBits= vcg::tri::io::Mask::IOM_VERTCOORD | 
				vcg::tri::io::Mask::IOM_VERTNORMAL |
				vcg::tri::io::Mask::IOM_VERTTEXCOORD |
				vcg::tri::io::Mask::IOM_FACEINDEX;
	}	
}

bool M3DMEImporter::open( const QString & format, const QString & fileName, MeshModel & m, int & mask, const FilterParameterSet & par, vcg::CallBackPos * cb, QWidget * parent )
{
	//Загрузим файл
	M3DME file;
	file.load( fileName);
	M3DME_Header *header = file.get_header();
	M3DME_Vertex_Data *vertex = file.get_vertex_data();
	M3DME_Index_Data *index = file.get_index_data();
	
	//Выставим список параметров загружаемых из файла
	mask = vcg::tri::io::Mask::IOM_VERTCOORD | 
			vcg::tri::io::Mask::IOM_VERTNORMAL |
			vcg::tri::io::Mask::IOM_VERTTEXCOORD |
			vcg::tri::io::Mask::IOM_FACEINDEX;
	//Начнем загружать данные в MeshLab 
	for (int a=0; a<header->vertex_data_size/sizeof(M3DME_Vertex_Data); ++a)
	{
		vcg::tri::Allocator<CMeshO>::AddVertex(m.cm, 
	}
	for (int a=0; a<header->index_data_size/sizeof(M3DME_Index_Data); ++a)
	{
		vcg::tri::Allocator<CMeshO>::AddFace(m.cm, 
	}
}

bool M3DMEImporter::save( const QString & format, const QString & fileName, MeshModel & m, const int mask, const FilterParameterSet & par, vcg::CallBackPos * cb, QWidget * parent )
{
}

