diff options
author | Tomi Korpipää <tomi.korpipaa@digia.com> | 2013-09-09 10:34:08 +0300 |
---|---|---|
committer | Tomi Korpipää <tomi.korpipaa@digia.com> | 2013-09-09 11:01:35 +0300 |
commit | 0153f9889ee757b0a215e5c36c14a9561cc9b098 (patch) | |
tree | 16c7b51ad2380e78badd6f8033b050f045b14f5d /src | |
parent | 23f72f348defe10a37c95c39fdd48c90ea88b96d (diff) |
Scatter data outside area -issue fix
Task-number: QTRD-2251
+ Fixed z-axis grid line and label drawing bug
Change-Id: I027701264c946e3c284c5a46985f5e98d6154aa6
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/datavis3d/engine/scatter3drenderer.cpp | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/src/datavis3d/engine/scatter3drenderer.cpp b/src/datavis3d/engine/scatter3drenderer.cpp index ad78c3a0..151d1d2f 100644 --- a/src/datavis3d/engine/scatter3drenderer.cpp +++ b/src/datavis3d/engine/scatter3drenderer.cpp @@ -657,7 +657,7 @@ void Scatter3DRenderer::drawScene(CameraHelper *camera, // Floor lines #ifndef USE_UNIFORM_SCALING GLfloat lineStep = aspectRatio * m_axisCacheZ.subSegmentStep(); - GLfloat linePos = aspectRatio * m_axisCacheZ.min(); // Start line + GLfloat linePos = -aspectRatio * m_axisCacheZ.min(); // Start line int lastSegment = m_axisCacheZ.subSegmentCount() * m_axisCacheZ.segmentCount(); #else GLfloat lineStep = aspectRatio * axisCacheMax->subSegmentStep(); @@ -724,14 +724,14 @@ void Scatter3DRenderer::drawScene(CameraHelper *camera, // Draw the object m_drawer->drawObject(lineShader, m_gridLineObj); } - linePos += lineStep; + linePos -= lineStep; } // Side wall lines #ifndef USE_UNIFORM_SCALING GLfloat lineXTrans = (aspectRatio * backgroundMargin * m_areaSize.width()) / m_scaleFactor; - linePos = aspectRatio * m_axisCacheZ.min(); // Start line + linePos = -aspectRatio * m_axisCacheZ.min(); // Start line #else GLfloat lineXTrans = aspectRatio * backgroundMargin; linePos = -aspectRatio * m_scaleFactor; // Start line @@ -778,7 +778,7 @@ void Scatter3DRenderer::drawScene(CameraHelper *camera, // Draw the object m_drawer->drawObject(lineShader, m_gridLineObj); } - linePos += lineStep; + linePos -= lineStep; } } @@ -1070,7 +1070,7 @@ void Scatter3DRenderer::drawScene(CameraHelper *camera, if (m_axisCacheZ.segmentCount() > 0) { #ifndef USE_UNIFORM_SCALING GLfloat posStep = aspectRatio * m_axisCacheZ.segmentStep(); - GLfloat labelPos = aspectRatio * m_axisCacheZ.max(); + GLfloat labelPos = -aspectRatio * m_axisCacheZ.min(); int lastSegment = m_axisCacheZ.segmentCount(); #else GLfloat posStep = aspectRatio * axisCacheMax->segmentStep(); @@ -1468,9 +1468,8 @@ void Scatter3DRenderer::calculateTranslation(ScatterRenderItem &item) void Scatter3DRenderer::calculateSceneScalingFactors() { m_heightNormalizer = (GLfloat)qMax(qAbs(m_axisCacheY.max()), qAbs(m_axisCacheY.min())); - // TODO: Get rid of m_areaSize and use m_axisCaches directly? - m_areaSize.setHeight(m_axisCacheZ.max()); - m_areaSize.setWidth(m_axisCacheX.max()); + m_areaSize.setHeight(qMax(qAbs(m_axisCacheZ.max()), qAbs(m_axisCacheZ.min()))); + m_areaSize.setWidth(qMax(qAbs(m_axisCacheX.max()), qAbs(m_axisCacheX.min()))); m_scaleFactor = qMax(m_areaSize.width(), m_areaSize.height()); //qDebug() << m_heightNormalizer << m_areaSize << m_scaleFactor << m_axisCacheY.max() << m_axisCacheX.max() << m_axisCacheZ.max(); } |