/*
    QGLView
    Copyright (C) 2012  Ivan Pelipenko peri4ko@gmail.com

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

#ifndef LOADER_OBJ_H
#define LOADER_OBJ_H

#include "gltexture_manager.h"
#include "globject.h"
#include <QGLWidget>
#include <QFileInfo>
#include <QDateTime>

namespace LoaderOBJ {
#pragma pack(push, 1)
	struct Face {
		ushort v0;
		ushort v1;
		ushort v2;
		ushort flags;
	};
#pragma pack(pop)
	void initOBJMesh(GLObjectBase * o, const QVector<Vector3d> & vertices, const QVector<Vector3d> & normals, const QVector<Vector3d> & texcoords);
	Material materialByName(const QVector<Material> & materials, const QString & name);
}

GLObjectBase * loadFromOBJFile(const QString & filepath, double scale = 1.0);

#endif // LOADER_3DS_H
