// Copyright (C) 2004-2009 Christoph Kubisch & Eike Decker
// This file is part of the "Luxinia Engine".
// For conditions of distribution and use, see copyright notice in luxiniapublicsdk.txt

#ifndef __F3D_H__
#define __F3D_H__

#include "../exmodelout.h"

#define F3D_MESHES 5

class EXModelOutputF3D : public EXModelOutput
{
	const static EXMeshType m_typeorder[F3D_MESHES];
	const static ushort		m_header = 0x1F3D;
	const static ushort		m_version = 260;

public:
	booln	Export(EXModelPTR model, std::ostream &outstream);

private:
	booln	WriteHeader(std::ostream &outstream,EXModelPTR model);
	booln	WriteMesh(std::ostream &outstream,EXMeshPTR mesh);
	booln	WriteMaterial(std::ostream &outstream,EXMaterialPTR material);
	booln	WriteSkin(std::ostream &outstream,EXSkinPTR skin);

	booln	WriteMeshIndices(std::ostream &outstream,EXMeshPTR mesh, booln asushort);

};

extern EXModelOutputF3D g_EXOutF3D;


#endif

