diff options
author | Tomi Korpipää <tomi.korpipaa@digia.com> | 2013-09-10 11:42:13 +0300 |
---|---|---|
committer | Tomi Korpipää <tomi.korpipaa@digia.com> | 2013-09-10 12:04:24 +0300 |
commit | a28cdb72a4ea768a898ca07f0df0fa3c17c073a8 (patch) | |
tree | 0bafdcfa99fc783e9f5204539a8242bf6128d795 /src/datavis3d/utils/meshloader.cpp | |
parent | f3e38983d77c72f3121c33a149a58fdf9c64158c (diff) |
Module renamed
Task-number: QTRD-2224
Change-Id: Iec18b6121809300b11d85445281d3c626c434f35
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'src/datavis3d/utils/meshloader.cpp')
-rw-r--r-- | src/datavis3d/utils/meshloader.cpp | 125 |
1 files changed, 0 insertions, 125 deletions
diff --git a/src/datavis3d/utils/meshloader.cpp b/src/datavis3d/utils/meshloader.cpp deleted file mode 100644 index ee2f12a6..00000000 --- a/src/datavis3d/utils/meshloader.cpp +++ /dev/null @@ -1,125 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc -** All rights reserved. -** For any questions to Digia, please use contact form at http://qt.digia.com -** -** This file is part of the QtDataVis3D module. -** -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise License Agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. -** -** If you have questions regarding the use of this file, please use -** contact form at http://qt.digia.com -** -****************************************************************************/ - -#include "meshloader_p.h" - -#include <QFile> -#include <QStringList> -#include <QVector> -#include <QVector2D> -#include <QVector3D> - -#include <QDebug> - -QT_DATAVIS3D_BEGIN_NAMESPACE - -QString slashTag = QStringLiteral("/"); - -bool MeshLoader::loadOBJ(const QString &path, - QVector<QVector3D> &out_vertices, - QVector<QVector2D> &out_uvs, - QVector<QVector3D> &out_normals) -{ - //qDebug() << "Loading OBJ file" << path; - - QVector<unsigned int> vertexIndices, uvIndices, normalIndices; - QVector<QVector3D> temp_vertices; - QVector<QVector2D> temp_uvs; - QVector<QVector3D> temp_normals; - - QFile file(path); - if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { - qWarning("Cannot open the file"); - return false; - } - - QTextStream textIn(&file); - while (!textIn.atEnd()) { - QString line = textIn.readLine(); - QStringList lineContents = line.split(QStringLiteral(" ")); - if (!lineContents.at(0).compare(QStringLiteral("v"))) { - QVector3D vertex; - vertex.setX(lineContents.at(1).toFloat()); - vertex.setY(lineContents.at(2).toFloat()); - vertex.setZ(lineContents.at(3).toFloat()); - temp_vertices.append(vertex); - } - else if (!lineContents.at(0).compare(QStringLiteral("vt"))) { - QVector2D uv; - uv.setX(lineContents.at(1).toFloat()); - uv.setY(lineContents.at(2).toFloat()); // invert this if using DDS textures - temp_uvs.append(uv); - } - else if (!lineContents.at(0).compare(QStringLiteral("vn"))) { - QVector3D normal; - normal.setX(lineContents.at(1).toFloat()); - normal.setY(lineContents.at(2).toFloat()); - normal.setZ(lineContents.at(3).toFloat()); - temp_normals.append(normal); - } - else if (!lineContents.at(0).compare(QStringLiteral("f"))) { - unsigned int vertexIndex[3], uvIndex[3], normalIndex[3]; - QStringList set1 = lineContents.at(1).split(slashTag); - QStringList set2 = lineContents.at(2).split(slashTag); - QStringList set3 = lineContents.at(3).split(slashTag); - vertexIndex[0] = set1.at(0).toUInt(); - vertexIndex[1] = set2.at(0).toUInt(); - vertexIndex[2] = set3.at(0).toUInt(); - uvIndex[0] = set1.at(1).toUInt(); - uvIndex[1] = set2.at(1).toUInt(); - uvIndex[2] = set3.at(1).toUInt(); - normalIndex[0] = set1.at(2).toUInt(); - normalIndex[1] = set2.at(2).toUInt(); - normalIndex[2] = set3.at(2).toUInt(); - vertexIndices.append(vertexIndex[0]); - vertexIndices.append(vertexIndex[1]); - vertexIndices.append(vertexIndex[2]); - uvIndices.append(uvIndex[0]); - uvIndices.append(uvIndex[1]); - uvIndices.append(uvIndex[2]); - normalIndices.append(normalIndex[0]); - normalIndices.append(normalIndex[1]); - normalIndices.append(normalIndex[2]); - } - else { - //qWarning("Line did not contain usable data"); - } - } - - // For each vertex of each triangle - for (int i = 0; i < vertexIndices.size(); i++) { - // Get the indices of its attributes - unsigned int vertexIndex = vertexIndices[i]; - unsigned int uvIndex = uvIndices[i]; - unsigned int normalIndex = normalIndices[i]; - - // Get the attributes thanks to the index - QVector3D vertex = temp_vertices[vertexIndex - 1]; - QVector2D uv = temp_uvs[uvIndex - 1]; - QVector3D normal = temp_normals[normalIndex - 1]; - - // Put the attributes in buffers - out_vertices.append(vertex); - out_uvs.append(uv); - out_normals.append(normal); - } - - return true; -} - -QT_DATAVIS3D_END_NAMESPACE |