diff options
Diffstat (limited to 'src/datavisualization/engine')
-rw-r--r-- | src/datavisualization/engine/bars3drenderer.cpp | 8 | ||||
-rw-r--r-- | src/datavisualization/engine/scatter3drenderer.cpp | 9 | ||||
-rw-r--r-- | src/datavisualization/engine/seriesrendercache.cpp | 6 |
3 files changed, 13 insertions, 10 deletions
diff --git a/src/datavisualization/engine/bars3drenderer.cpp b/src/datavisualization/engine/bars3drenderer.cpp index 7b610cd9..264d25d0 100644 --- a/src/datavisualization/engine/bars3drenderer.cpp +++ b/src/datavisualization/engine/bars3drenderer.cpp @@ -44,7 +44,6 @@ const GLfloat labelMargin = 0.05f; const GLfloat gridLineWidth = 0.005f; const bool sliceGridLabels = true; -const QQuaternion identityQuaternion; Bars3DRenderer::Bars3DRenderer(Bars3DController *controller) : Abstract3DRenderer(controller), @@ -262,13 +261,6 @@ void Bars3DRenderer::updateData() void Bars3DRenderer::updateSeries(const QList<QAbstract3DSeries *> &seriesList, bool updateVisibility) { Abstract3DRenderer::updateSeries(seriesList, updateVisibility); - - // Fix the series rotations - ignore any rotations that are not along Y-axis - for (int series = 0; series < m_visibleSeriesList.size(); series++) { - QVector3D vector = m_visibleSeriesList.at(series).meshRotation().vector(); - if (vector.x() || vector.z()) - m_visibleSeriesList[series].setMeshRotation(identityQuaternion); - } } void Bars3DRenderer::updateScene(Q3DScene *scene) diff --git a/src/datavisualization/engine/scatter3drenderer.cpp b/src/datavisualization/engine/scatter3drenderer.cpp index 92c5a619..0c835c77 100644 --- a/src/datavisualization/engine/scatter3drenderer.cpp +++ b/src/datavisualization/engine/scatter3drenderer.cpp @@ -210,7 +210,14 @@ void Scatter3DRenderer::updateData() && (dotPos.z() >= minZ && dotPos.z() <= maxZ)) { renderItem.setPosition(dotPos); renderItem.setVisible(true); - renderItem.setRotation(dataArray.at(i).rotation()); + float angle = dataArray.at(i).rotationAngle(); + if (angle) { + renderItem.setRotation(QQuaternion::fromAxisAndAngle( + dataArray.at(i).rotationAxis(), + dataArray.at(i).rotationAngle())); + } else { + renderItem.setRotation(identityQuaternion); + } calculateTranslation(renderItem); } else { renderItem.setVisible(false); diff --git a/src/datavisualization/engine/seriesrendercache.cpp b/src/datavisualization/engine/seriesrendercache.cpp index 5d20e761..9ce0fe99 100644 --- a/src/datavisualization/engine/seriesrendercache.cpp +++ b/src/datavisualization/engine/seriesrendercache.cpp @@ -128,7 +128,11 @@ void SeriesRenderCache::populate(QAbstract3DSeries *series, Abstract3DRenderer * } if (seriesChanged || changeTracker.meshRotationChanged) { - m_meshRotation = series->meshRotation(); + float angle = series->meshRotationAngle(); + if (angle) + m_meshRotation = QQuaternion::fromAxisAndAngle(series->meshRotationAxis(), series->meshRotationAngle()); + else + m_meshRotation = identityQuaternion; changeTracker.meshRotationChanged = false; } |