summaryrefslogtreecommitdiffstats
path: root/src/gldisc.cpp
diff options
context:
space:
mode:
authorStefan Suhren <suhren.stefan@fh-swf.de>2015-12-07 23:09:33 +0100
committerStefan Suhren <suhren.stefan@fh-swf.de>2015-12-07 23:09:33 +0100
commit367b4f04d9b4b92f96d477c6ca3b93e90cd3caf0 (patch)
tree26b1a04daf3b3ad10bdd3fadd3a025f777e9bb3c /src/gldisc.cpp
parent9102c78b00f7175ca6be3f55b64a5cc666d044ba (diff)
downloadMultimedia-367b4f04d9b4b92f96d477c6ca3b93e90cd3caf0.tar.gz
Multimedia-367b4f04d9b4b92f96d477c6ca3b93e90cd3caf0.zip
Add texture support to GLDisc
Diffstat (limited to 'src/gldisc.cpp')
-rw-r--r--src/gldisc.cpp20
1 files changed, 10 insertions, 10 deletions
diff --git a/src/gldisc.cpp b/src/gldisc.cpp
index 5002fe8..601ef25 100644
--- a/src/gldisc.cpp
+++ b/src/gldisc.cpp
@@ -1,7 +1,7 @@
#include "gldisc.h"
-GLDisc::GLDisc(double radius, double height, int sides)
- :GLBody(radius)
+GLDisc::GLDisc(double radius, double height, int sides, GLColorRgba color, QString textureFile)
+ :GLBody(radius, color, textureFile)
{
m_height = height;
m_sides = sides;
@@ -11,23 +11,23 @@ void GLDisc::makeSurface(QVector<GLPoint> *pointContainer, QVector<GLshort> *ind
{
GLBody::makeSurface(pointContainer, indexContainer);
- QVector3D t0 = QVector3D(0.0, 0.0, 0.0); //dummy texture
-
m_firstPoint = m_points->size();
- m_points->append(GLPoint(v_Zero, -v_Z, t0, m_color));
+ m_points->append(GLPoint(v_Zero, -v_Z, QVector3D(0.5, 0.5, 0.0), m_color));
for(int side = 0; side < m_sides; side++)
{
QVector2D tmp = calculatePoint(side * 2 * M_PI / m_sides);
- m_points->append(GLPoint(m_radius * tmp, -v_Z, t0, m_color));
- m_points->append(GLPoint(m_radius * tmp, tmp, t0, m_color));
- m_points->append(GLPoint(QVector3D(m_radius * tmp, m_height), tmp, t0, m_color));
- m_points->append(GLPoint(QVector3D(m_radius * tmp, m_height), v_Z, t0, m_color));
+ QVector2D tmpTextCoo = (0.5 * tmp) + QVector2D(0.5, 0.5);
+
+ m_points->append(GLPoint(m_radius * tmp, -v_Z, tmpTextCoo, m_color));
+ m_points->append(GLPoint(m_radius * tmp, tmp, tmpTextCoo, m_color));
+ m_points->append(GLPoint(QVector3D(m_radius * tmp, m_height), tmp, tmpTextCoo, m_color));
+ m_points->append(GLPoint(QVector3D(m_radius * tmp, m_height), v_Z, tmpTextCoo, m_color));
}
- m_points->append(GLPoint(m_height * v_Z, v_Z, t0, m_color));
+ m_points->append(GLPoint(m_height * v_Z, v_Z, QVector3D(0.5, 0.5, 0.0), m_color));
m_nextPoint = m_points->size();