diff options
| author | Stefan Suhren <suhren.stefan@fh-swf.de> | 2015-11-24 11:22:13 +0100 |
|---|---|---|
| committer | Stefan Suhren <suhren.stefan@fh-swf.de> | 2015-11-24 11:22:13 +0100 |
| commit | 1c359b169dd1c103420c8e8a8c31db4861929eff (patch) | |
| tree | 197dcf2c818cdac9906498c3fc177a135436418d /src/glsphere.cpp | |
| parent | fd75b29eb231e262c8ccc2214aaec6dcffecf769 (diff) | |
| download | Multimedia-1c359b169dd1c103420c8e8a8c31db4861929eff.tar.gz Multimedia-1c359b169dd1c103420c8e8a8c31db4861929eff.zip | |
Add first version of indicies
Diffstat (limited to 'src/glsphere.cpp')
| -rw-r--r-- | src/glsphere.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/glsphere.cpp b/src/glsphere.cpp index 15f745a..8fedd0e 100644 --- a/src/glsphere.cpp +++ b/src/glsphere.cpp @@ -35,6 +35,31 @@ void GLSphere::makeSurface(QVector<GLPoint> *pointContainer, m_points->append(GLPoint(m_radius * southpol, southpol, t0, m_color)); m_nextPoint = m_points->size(); + + m_firstIndex = m_indices->size(); + + for (int slice = 1; slice < m_slices - 1; slice += 2) + { + m_indices->append(m_firstPoint); + + for (int stack = 0; stack < m_stacks - 1; stack++) + { + m_indices->append((m_firstPoint + 1) + stack + ((m_stacks - 1) * (slice - 1))); + m_indices->append((m_firstPoint + 1) + stack + ((m_stacks - 1) * slice)); + } + + m_indices->append(m_nextPoint - 1); + + for (int stack = m_stacks - 2; stack >= 0; stack--) + { + m_indices->append((m_firstPoint + 1) + stack + ((m_stacks - 1) * (slice + 1))); + m_indices->append((m_firstPoint + 1) + stack + ((m_stacks - 1) * slice)); + } + + m_indices->append(m_firstPoint); + } + + m_nextIndex = m_indices->size(); } QVector3D GLSphere::calculatePoint(double sliceRotation, double stackRotation) |
