import msh file,
problems: it is not correctly displayed (vertice and what happend to the texture?) todo: improve the import, remove unused garbage, add move and zoom function
This commit is contained in:
@@ -1,14 +1,5 @@
|
||||
#include "..\Header\GeometryEngine.h"
|
||||
|
||||
#include <QVector2D>
|
||||
#include <QVector3D>
|
||||
|
||||
|
||||
struct VertexData
|
||||
{
|
||||
QVector3D position;
|
||||
QVector2D texCoord;
|
||||
};
|
||||
#include "..\Header\MshFile.h"
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
@@ -45,66 +36,89 @@ GeometryEngine::~GeometryEngine()
|
||||
void GeometryEngine::initCubeGeometry()
|
||||
{
|
||||
|
||||
QVector<VertexData> vertices = {
|
||||
// Vertex data for face 0
|
||||
{QVector3D(-1.0f, -1.0f, 1.0f), QVector2D(0.0f, 0.0f)}, // v0
|
||||
{QVector3D( 1.0f, -1.0f, 1.0f), QVector2D(0.33f, 0.0f)}, // v1
|
||||
{QVector3D(-1.0f, 1.0f, 1.0f), QVector2D(0.0f, 0.5f)}, // v2
|
||||
{QVector3D( 1.0f, 1.0f, 1.0f), QVector2D(0.33f, 0.5f)}, // v3
|
||||
try
|
||||
{
|
||||
MshFile file("..\\Release\\Msh\\cube.msh");
|
||||
m_models = file.getModels();
|
||||
//TODO use models local, apply MVP directly to the vertex, save size and tex index info
|
||||
|
||||
// Vertex data for face 1
|
||||
{QVector3D( 1.0f, -1.0f, 1.0f), QVector2D( 0.0f, 0.5f)}, // v4
|
||||
{QVector3D( 1.0f, -1.0f, -1.0f), QVector2D(0.33f, 0.5f)}, // v5
|
||||
{QVector3D( 1.0f, 1.0f, 1.0f), QVector2D(0.0f, 1.0f)}, // v6
|
||||
{QVector3D( 1.0f, 1.0f, -1.0f), QVector2D(0.33f, 1.0f)}, // v7
|
||||
|
||||
// Vertex data for face 2
|
||||
{QVector3D( 1.0f, -1.0f, -1.0f), QVector2D(0.66f, 0.5f)}, // v8
|
||||
{QVector3D(-1.0f, -1.0f, -1.0f), QVector2D(1.0f, 0.5f)}, // v9
|
||||
{QVector3D( 1.0f, 1.0f, -1.0f), QVector2D(0.66f, 1.0f)}, // v10
|
||||
{QVector3D(-1.0f, 1.0f, -1.0f), QVector2D(1.0f, 1.0f)}, // v11
|
||||
|
||||
// Vertex data for face 3
|
||||
{QVector3D(-1.0f, -1.0f, -1.0f), QVector2D(0.66f, 0.0f)}, // v12
|
||||
{QVector3D(-1.0f, -1.0f, 1.0f), QVector2D(1.0f, 0.0f)}, // v13
|
||||
{QVector3D(-1.0f, 1.0f, -1.0f), QVector2D(0.66f, 0.5f)}, // v14
|
||||
{QVector3D(-1.0f, 1.0f, 1.0f), QVector2D(1.0f, 0.5f)}, // v15
|
||||
|
||||
// Vertex data for face 4
|
||||
{QVector3D(-1.0f, -1.0f, -1.0f), QVector2D(0.33f, 0.0f)}, // v16
|
||||
{QVector3D( 1.0f, -1.0f, -1.0f), QVector2D(0.66f, 0.0f)}, // v17
|
||||
{QVector3D(-1.0f, -1.0f, 1.0f), QVector2D(0.33f, 0.5f)}, // v18
|
||||
{QVector3D( 1.0f, -1.0f, 1.0f), QVector2D(0.66f, 0.5f)}, // v19
|
||||
|
||||
// Vertex data for face 5
|
||||
{QVector3D(-1.0f, 1.0f, 1.0f), QVector2D(0.33f, 0.5f)}, // v20
|
||||
{QVector3D( 1.0f, 1.0f, 1.0f), QVector2D(0.66f, 0.5f)}, // v21
|
||||
{QVector3D(-1.0f, 1.0f, -1.0f), QVector2D(0.33f, 1.0f)}, // v22
|
||||
{QVector3D( 1.0f, 1.0f, -1.0f), QVector2D(0.66f, 1.0f)} // v23
|
||||
};
|
||||
|
||||
QVector<GLushort> indices = {
|
||||
0,1,2, //vorne (4)
|
||||
3,2,1,
|
||||
4,5,7, //rechts (1)
|
||||
6,4,7,
|
||||
8,9,11, //hinten (3)*
|
||||
8,11,10,
|
||||
14,12,13, //links (6)*
|
||||
14,13,15,
|
||||
18,16,17, //unten (5)
|
||||
19,18,17,
|
||||
23,22,20, //oben (2)*
|
||||
23,20,21
|
||||
};
|
||||
//TODO: handle the textures
|
||||
}
|
||||
catch (std::invalid_argument e)
|
||||
{
|
||||
//TODO: make a cool message box
|
||||
auto msg = e.what();
|
||||
}
|
||||
|
||||
// Transfer vertex data to VBO 0
|
||||
m_arrayBuf.bind();
|
||||
m_arrayBuf.allocate(vertices.data(), vertices.size() * sizeof(VertexData));
|
||||
m_arrayBuf.allocate(m_models->first()->segmList.front()->vertices.data(), m_models->first()->segmList.front()->vertices.size() * sizeof(VertexData));
|
||||
|
||||
// Transfer index data to VBO 1
|
||||
m_indexBuf.bind();
|
||||
m_indexBuf.allocate(indices.data(), indices.size() * sizeof(GLushort));
|
||||
m_indexBuf.allocate(m_models->first()->segmList.front()->indices.data(), m_models->first()->segmList.front()->indices.size() * sizeof(GLushort));
|
||||
|
||||
|
||||
//QVector<VertexData> vertices = {
|
||||
// // Vertex data for face 0
|
||||
// {QVector3D(-1.0f, -1.0f, 1.0f), QVector2D(0.0f, 0.0f)}, // v0
|
||||
// {QVector3D( 1.0f, -1.0f, 1.0f), QVector2D(0.33f, 0.0f)}, // v1
|
||||
// {QVector3D(-1.0f, 1.0f, 1.0f), QVector2D(0.0f, 0.5f)}, // v2
|
||||
// {QVector3D( 1.0f, 1.0f, 1.0f), QVector2D(0.33f, 0.5f)}, // v3
|
||||
|
||||
// // Vertex data for face 1
|
||||
// {QVector3D( 1.0f, -1.0f, 1.0f), QVector2D( 0.0f, 0.5f)}, // v4
|
||||
// {QVector3D( 1.0f, -1.0f, -1.0f), QVector2D(0.33f, 0.5f)}, // v5
|
||||
// {QVector3D( 1.0f, 1.0f, 1.0f), QVector2D(0.0f, 1.0f)}, // v6
|
||||
// {QVector3D( 1.0f, 1.0f, -1.0f), QVector2D(0.33f, 1.0f)}, // v7
|
||||
|
||||
// // Vertex data for face 2
|
||||
// {QVector3D( 1.0f, -1.0f, -1.0f), QVector2D(0.66f, 0.5f)}, // v8
|
||||
// {QVector3D(-1.0f, -1.0f, -1.0f), QVector2D(1.0f, 0.5f)}, // v9
|
||||
// {QVector3D( 1.0f, 1.0f, -1.0f), QVector2D(0.66f, 1.0f)}, // v10
|
||||
// {QVector3D(-1.0f, 1.0f, -1.0f), QVector2D(1.0f, 1.0f)}, // v11
|
||||
|
||||
// // Vertex data for face 3
|
||||
// {QVector3D(-1.0f, -1.0f, -1.0f), QVector2D(0.66f, 0.0f)}, // v12
|
||||
// {QVector3D(-1.0f, -1.0f, 1.0f), QVector2D(1.0f, 0.0f)}, // v13
|
||||
// {QVector3D(-1.0f, 1.0f, -1.0f), QVector2D(0.66f, 0.5f)}, // v14
|
||||
// {QVector3D(-1.0f, 1.0f, 1.0f), QVector2D(1.0f, 0.5f)}, // v15
|
||||
|
||||
// // Vertex data for face 4
|
||||
// {QVector3D(-1.0f, -1.0f, -1.0f), QVector2D(0.33f, 0.0f)}, // v16
|
||||
// {QVector3D( 1.0f, -1.0f, -1.0f), QVector2D(0.66f, 0.0f)}, // v17
|
||||
// {QVector3D(-1.0f, -1.0f, 1.0f), QVector2D(0.33f, 0.5f)}, // v18
|
||||
// {QVector3D( 1.0f, -1.0f, 1.0f), QVector2D(0.66f, 0.5f)}, // v19
|
||||
|
||||
// // Vertex data for face 5
|
||||
// {QVector3D(-1.0f, 1.0f, 1.0f), QVector2D(0.33f, 0.5f)}, // v20
|
||||
// {QVector3D( 1.0f, 1.0f, 1.0f), QVector2D(0.66f, 0.5f)}, // v21
|
||||
// {QVector3D(-1.0f, 1.0f, -1.0f), QVector2D(0.33f, 1.0f)}, // v22
|
||||
// {QVector3D( 1.0f, 1.0f, -1.0f), QVector2D(0.66f, 1.0f)} // v23
|
||||
// };
|
||||
|
||||
//QVector<GLushort> indices = {
|
||||
// 0,1,2, //vorne (4)
|
||||
// 3,2,1,
|
||||
// 4,5,7, //rechts (1)
|
||||
// 6,4,7,
|
||||
// 8,9,11, //hinten (3)*
|
||||
// 8,11,10,
|
||||
// 14,12,13, //links (6)*
|
||||
// 14,13,15,
|
||||
// 18,16,17, //unten (5)
|
||||
// 19,18,17,
|
||||
// 23,22,20, //oben (2)*
|
||||
// 23,20,21
|
||||
//};
|
||||
|
||||
//// Transfer vertex data to VBO 0
|
||||
//m_arrayBuf.bind();
|
||||
//m_arrayBuf.allocate(vertices.data(), vertices.size() * sizeof(VertexData));
|
||||
|
||||
//// Transfer index data to VBO 1
|
||||
//m_indexBuf.bind();
|
||||
//m_indexBuf.allocate(indices.data(), indices.size() * sizeof(GLushort));
|
||||
|
||||
// load the texture
|
||||
initTexture();
|
||||
|
||||
Reference in New Issue
Block a user