summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine/surface3drenderer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/datavisualization/engine/surface3drenderer.cpp')
-rw-r--r--src/datavisualization/engine/surface3drenderer.cpp27
1 files changed, 10 insertions, 17 deletions
diff --git a/src/datavisualization/engine/surface3drenderer.cpp b/src/datavisualization/engine/surface3drenderer.cpp
index 28a81e0d..559679ab 100644
--- a/src/datavisualization/engine/surface3drenderer.cpp
+++ b/src/datavisualization/engine/surface3drenderer.cpp
@@ -271,16 +271,18 @@ void Surface3DRenderer::updateSliceDataModel(int selectionId)
m_sliceDataArray.reserve(2);
QSurfaceDataRow *sliceRow;
+ qreal adjust = (0.025 * m_heightNormalizer) / 2.0;
+ qreal stepDown = 2.0 * adjust;
if (m_cachedSelectionMode == QDataVis::SelectionModeSliceRow) {
QSurfaceDataRow *src = m_dataArray.at(row);
sliceRow = new QSurfaceDataRow(src->size());
for (int i = 0; i < sliceRow->size(); i++)
- (*sliceRow)[i].setPosition(QVector3D(src->at(i).x(), src->at(i).y(), -1.0));
+ (*sliceRow)[i].setPosition(QVector3D(src->at(i).x(), src->at(i).y() + adjust, -1.0));
} else if (m_cachedSelectionMode == QDataVis::SelectionModeSliceColumn) {
sliceRow = new QSurfaceDataRow(m_sampleSpace.height());
for (int i = 0; i < m_sampleSpace.height(); i++) {
(*sliceRow)[i].setPosition(QVector3D(m_dataArray.at(i)->at(column).z(),
- m_dataArray.at(i)->at(column).y(),
+ m_dataArray.at(i)->at(column).y() + adjust,
-1.0));
}
}
@@ -290,7 +292,7 @@ void Surface3DRenderer::updateSliceDataModel(int selectionId)
// Make a duplicate, so that we get a little bit depth
QSurfaceDataRow *duplicateRow = new QSurfaceDataRow(*sliceRow);
for (int i = 0; i < sliceRow->size(); i++)
- (*sliceRow)[i].setPosition(QVector3D(sliceRow->at(i).x(), sliceRow->at(i).y(), 1.0));
+ (*sliceRow)[i].setPosition(QVector3D(sliceRow->at(i).x(), sliceRow->at(i).y() - stepDown, 1.0));
m_sliceDataArray << duplicateRow;
@@ -469,8 +471,7 @@ void Surface3DRenderer::drawSlicedScene()
// Set up projection matrix
QMatrix4x4 projectionMatrix;
- projectionMatrix.perspective(45.0f, (GLfloat)m_sliceViewPort.width()
- / (GLfloat)m_sliceViewPort.height(), 0.1f, 100.0f);
+ projectionMatrix.ortho(-3.0f, 3.0, -3.0, 3.0, 0.1f, 100.0f);
// Set view matrix
QMatrix4x4 viewMatrix;
@@ -576,6 +577,10 @@ void Surface3DRenderer::drawSlicedScene()
lineShader->setUniformValue(lineShader->color(), lineColor);
lineShader->setUniformValue(lineShader->ambientS(), m_cachedTheme.m_ambientStrength);
+ // Set shadowless shader bindings, no shadows on slice view
+ lineShader->setUniformValue(lineShader->lightS(),
+ m_cachedTheme.m_lightStrength * 0.5f);
+
// Back wall
GLfloat lineStep = 2.0f * m_axisCacheY.subSegmentStep() / m_heightNormalizer;
GLfloat linePos = -1.0f;
@@ -599,10 +604,6 @@ void Surface3DRenderer::drawSlicedScene()
itModelMatrix.inverted().transposed());
lineShader->setUniformValue(lineShader->MVP(), MVPMatrix);
- // Set shadowless shader bindings, no shadows on slice view
- lineShader->setUniformValue(lineShader->lightS(),
- m_cachedTheme.m_lightStrength);
-
// Draw the object
m_drawer->drawObject(lineShader, m_gridLineObj);
@@ -645,10 +646,6 @@ void Surface3DRenderer::drawSlicedScene()
itModelMatrix.inverted().transposed());
lineShader->setUniformValue(lineShader->MVP(), MVPMatrix);
- // Set shadowless shader bindings
- lineShader->setUniformValue(lineShader->lightS(),
- m_cachedTheme.m_lightStrength);
-
// Draw the object
m_drawer->drawObject(lineShader, m_gridLineObj);
@@ -677,10 +674,6 @@ void Surface3DRenderer::drawSlicedScene()
itModelMatrix.inverted().transposed());
lineShader->setUniformValue(lineShader->MVP(), MVPMatrix);
- // Set shadowless shader bindings
- lineShader->setUniformValue(lineShader->lightS(),
- m_cachedTheme.m_lightStrength);
-
// Draw the object
m_drawer->drawObject(lineShader, m_gridLineObj);