summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMika Salmela <mika.salmela@digia.com>2013-10-04 16:18:39 +0300
committerMika Salmela <mika.salmela@digia.com>2013-10-04 16:25:19 +0300
commit57f84a6683f6554b19a1463df1070603380f189e (patch)
tree52548da251c4eff9072c0bf537a26a8ac3ea0fdf /src
parentb9b72df8bc8fd7078622661a6576c52627c1b327 (diff)
No perspective for surface slice
Task-number: QTRD-2375 Change-Id: I6e6da54628a0b16fcfe7a9371deaff02686d1b1e Reviewed-by: Mika Salmela <mika.salmela@digia.com>
Diffstat (limited to 'src')
-rw-r--r--src/datavisualization/engine/selectionpointer.cpp10
-rw-r--r--src/datavisualization/engine/surface3drenderer.cpp27
2 files changed, 17 insertions, 20 deletions
diff --git a/src/datavisualization/engine/selectionpointer.cpp b/src/datavisualization/engine/selectionpointer.cpp
index 421c547e..8a68d792 100644
--- a/src/datavisualization/engine/selectionpointer.cpp
+++ b/src/datavisualization/engine/selectionpointer.cpp
@@ -100,13 +100,17 @@ void SelectionPointer::render(GLuint defaultFboHandle)
// Get view matrix
QMatrix4x4 viewMatrix;
+ QMatrix4x4 projectionMatrix;
if (m_cachedIsSlicingActivated) {
GLfloat camZPosSliced = 5.0f / m_autoScaleAdjustment + zComp;
viewMatrix.lookAt(QVector3D(0.0f, 0.0f, camZPosSliced),
QVector3D(0.0f, 0.0f, zComp),
QVector3D(0.0f, 1.0f, 0.0f));
+ projectionMatrix.ortho(-3.0f, 3.0, -3.0, 3.0, 0.1f, 100.0f);
} else {
viewMatrix = camera->viewMatrix();
+ projectionMatrix.perspective(45.0f, (GLfloat)m_mainViewPort.width()
+ / (GLfloat)m_mainViewPort.height(), 0.1f, 100.0f);
}
// Calculate scale factor to get uniform font size
@@ -114,9 +118,9 @@ void SelectionPointer::render(GLuint defaultFboHandle)
GLfloat scaleFactor = scaledFontSize / (GLfloat)textureSize.height();
// Set up projection matrix
- QMatrix4x4 projectionMatrix;
- projectionMatrix.perspective(45.0f, (GLfloat)m_mainViewPort.width()
- / (GLfloat)m_mainViewPort.height(), 0.1f, 100.0f);
+// QMatrix4x4 projectionMatrix;
+// projectionMatrix.perspective(45.0f, (GLfloat)m_mainViewPort.width()
+// / (GLfloat)m_mainViewPort.height(), 0.1f, 100.0f);
QMatrix4x4 modelMatrix;
QMatrix4x4 MVPMatrix;
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);