From 5c3f1612edc6cc19de2d56132b98be67102cb78a Mon Sep 17 00:00:00 2001 From: Stefan Suhren Date: Tue, 24 Nov 2015 10:16:04 +0100 Subject: Revert "Merge branch 'sphereTriangleStrip'" This reverts commit dddffcb89a3e53a6945698c0dcc769b4c3f8542b, reversing changes made to 4db18dc608b6739c90b76166d2560fbd7013832c. --- src/glsphere.cpp | 60 ++++++++++---------------------------------------------- src/glsphere.h | 3 --- src/mmscene.cpp | 2 +- 3 files changed, 11 insertions(+), 54 deletions(-) (limited to 'src') diff --git a/src/glsphere.cpp b/src/glsphere.cpp index 77cb7f7..1a40540 100644 --- a/src/glsphere.cpp +++ b/src/glsphere.cpp @@ -3,9 +3,8 @@ GLSphere::GLSphere(double radius, int stacks, int slices) : GLBody(radius) { - // Force an even number - m_stacks = stacks / 2 * 2; - m_slices = slices / 2 * 2; + m_stacks = stacks; + m_slices = slices; } void GLSphere::makeSurface(QVector *pointContainer, @@ -18,70 +17,31 @@ void GLSphere::makeSurface(QVector *pointContainer, QVector3D northpol = v_Y; QVector3D southpol = -v_Y; - QVector firstPointRow = calculateRow(0); - - QVector sliceA = firstPointRow; - QVector sliceB; + QVector3D point1; + QVector3D point2; m_firstPoint = m_points->size(); for (int slice = 1; slice < m_slices; slice += 2) { - sliceB = calculateRow(slice); - m_points->append(GLPoint(m_radius * northpol, northpol, t0, m_color)); - for (int i = 0; i < m_stacks - 1; i++) + for (int stack = 1; stack < m_stacks; stack++) { - m_points->append(GLPoint(m_radius * sliceA[i], sliceA[i], - t0, m_color)); - - m_points->append(GLPoint(m_radius * sliceB[i], sliceB[i], - t0, m_color)); - } - - m_points->append(GLPoint(m_radius * southpol, southpol, t0, m_color)); + point1 = calculatePoint(2 * M_PI * slice / m_slices, stack * M_PI / m_stacks); + m_points->append(GLPoint(m_radius * point1, point1, t0, m_color)); - sliceA = calculateRow(slice + 1); + point2 = calculatePoint(2 * M_PI * (slice - 1) / m_slices, stack * M_PI / m_stacks); + m_points->append(GLPoint(m_radius * point2, point2, t0, m_color)); - for (int i = m_stacks - 2; i >= 0; i--) - { - m_points->append(GLPoint(m_radius * sliceA[i], sliceA[i], - t0, m_color)); - - m_points->append(GLPoint(m_radius * sliceB[i], sliceB[i], - t0, m_color)); } - m_points->append(GLPoint(m_radius * northpol, northpol, t0, m_color)); + m_points->append(GLPoint(m_radius * southpol, southpol, t0, m_color)); } m_nextPoint = m_points->size(); } -QVector GLSphere::calculateRow(int slice) -{ - if(slice == m_stacks) - { - return firstRow; - } - - QVector longitude; - - for (int stack = 1; stack < m_stacks; stack++) - { - longitude.append(calculatePoint(2 * M_PI * slice / m_slices, - stack * M_PI / m_stacks)); - } - - if (slice == 0) - { - firstRow = longitude; - } - - return longitude; -} - QVector3D GLSphere::calculatePoint(double sliceRotation, double stackRotation) { double x = sin(stackRotation) * sin(sliceRotation); diff --git a/src/glsphere.h b/src/glsphere.h index f884117..9aae032 100644 --- a/src/glsphere.h +++ b/src/glsphere.h @@ -22,11 +22,8 @@ private: */ QVector3D calculatePoint(double sliceRotation, double stackRotation); - QVector calculateRow(int slice); - int m_stacks; int m_slices; - QVector firstRow; }; #endif // GLSPHERE_H diff --git a/src/mmscene.cpp b/src/mmscene.cpp index 8de2c87..f199563 100644 --- a/src/mmscene.cpp +++ b/src/mmscene.cpp @@ -96,7 +96,7 @@ void MMScene::createSphere() { m_sphere = new GLSphere(); - m_sphere->setDrawingMode(GL_TRIANGLE_STRIP); + m_sphere->setDrawingMode(GL_POINTS); m_sphere->makeSurface(&m_points, &m_indices); } -- cgit v1.2.3-70-g09d2