From eb92ad69dbe1568a3055d01066d975cce9fdcc39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomi=20Korpip=C3=A4=C3=A4?= Date: Mon, 15 Apr 2013 12:11:55 +0300 Subject: Preset camera function moved to camerahelper Change-Id: I6b96abd8a951622496abab0495f44fcd4ec1764b Change-Id: I6b96abd8a951622496abab0495f44fcd4ec1764b Reviewed-by: Mika Salmela --- src/datavis3d/engine/q3dbars.cpp | 114 +++-------------------------------- src/datavis3d/engine/qdataset.cpp | 11 +++- src/datavis3d/utils/camerahelper.cpp | 103 +++++++++++++++++++++++++++++++ src/datavis3d/utils/camerahelper_p.h | 2 + 4 files changed, 121 insertions(+), 109 deletions(-) (limited to 'src/datavis3d') diff --git a/src/datavis3d/engine/q3dbars.cpp b/src/datavis3d/engine/q3dbars.cpp index d7a7c16b..a9d18c73 100644 --- a/src/datavis3d/engine/q3dbars.cpp +++ b/src/datavis3d/engine/q3dbars.cpp @@ -126,14 +126,13 @@ void Q3DBars::initialize() , QVector3D(0.0f, 0.0f, zComp) , QVector3D(0.0f, 1.0f, 0.0f)); - CameraHelper::setCameraRotation(QPointF(d_ptr->m_horizontalRotation - , d_ptr->m_verticalRotation)); - // Set view port glViewport(0, 0, width(), height()); // Set initialized -flag d_ptr->m_isInitialized = true; + + //qDebug("Initialized"); } void Q3DBars::render() @@ -1195,6 +1194,7 @@ void Q3DBars::setupSampleSpace(QPoint sampleCount, const QString &labelRow , const QString &labelColumn, const QString &labelHeight) { d_ptr->m_sampleCount = sampleCount; + d_ptr->m_dataSet->setLabels(labelRow, labelColumn, labelHeight); // TODO: Invent "idiotproof" max scene size formula.. // This seems to work ok if spacing is not negative d_ptr->m_maxSceneSize = 2 * qSqrt(sampleCount.x() * sampleCount.y()); @@ -1208,107 +1208,7 @@ void Q3DBars::setupSampleSpace(QPoint sampleCount, const QString &labelRow void Q3DBars::setCameraPreset(CameraPreset preset) { - // TODO: This should be moved to CameraHelper to be directly usable by other vis types - just call directly a function there? - // TODO: Move these enums to namespace level? - switch (preset) { - case PresetFrontLow: { - qDebug("PresetFrontLow"); - setCameraPosition(0.0f, 0.0f); - break; - } - case PresetFront: { - qDebug("PresetFront"); - setCameraPosition(0.0f, 22.5f); - break; - } - case PresetFrontHigh: { - qDebug("PresetFrontHigh"); - setCameraPosition(0.0f, 45.0f); - break; - } - case PresetLeftLow: { - qDebug("PresetLeftLow"); - setCameraPosition(90.0f, 0.0f); - break; - } - case PresetLeft: { - qDebug("PresetLeft"); - setCameraPosition(90.0f, 22.5f); - break; - } - case PresetLeftHigh: { - qDebug("PresetLeftHigh"); - setCameraPosition(90.0f, 45.0f); - break; - } - case PresetRightLow: { - qDebug("PresetRightLow"); - setCameraPosition(-90.0f, 0.0f); - break; - } - case PresetRight: { - qDebug("PresetRight"); - setCameraPosition(-90.0f, 22.5f); - break; - } - case PresetRightHigh: { - qDebug("PresetRightHigh"); - setCameraPosition(-90.0f, 45.0f); - break; - } - case PresetBehindLow: { - qDebug("PresetBehindLow"); - setCameraPosition(180.0f, 0.0f); - break; - } - case PresetBehind: { - qDebug("PresetBehind"); - setCameraPosition(180.0f, 22.5f); - break; - } - case PresetBehindHigh: { - qDebug("PresetBehindHigh"); - setCameraPosition(180.0f, 45.0f); - break; - } - case PresetIsometricLeft: { - qDebug("PresetIsometricLeft"); - setCameraPosition(45.0f, 22.5f); - break; - } - case PresetIsometricLeftHigh: { - qDebug("PresetIsometricLeftHigh"); - setCameraPosition(45.0f, 45.0f); - break; - } - case PresetIsometricRight: { - qDebug("PresetIsometricRight"); - setCameraPosition(-45.0f, 22.5f); - break; - } - case PresetIsometricRightHigh: { - qDebug("PresetIsometricRightHigh"); - setCameraPosition(-45.0f, 45.0f); - break; - } - case PresetDirectlyAbove: { - qDebug("PresetDirectlyAbove"); - setCameraPosition(0.0f, 90.0f); - break; - } - case PresetDirectlyAboveCW45: { - qDebug("PresetDirectlyAboveCW45"); - setCameraPosition(-45.0f, 90.0f); - break; - } - case PresetDirectlyAboveCCW45: { - qDebug("PresetDirectlyAboveCCW45"); - setCameraPosition(45.0f, 90.0f); - break; - } - default: - break; - } + CameraHelper::setCameraPreset(preset); } void Q3DBars::setCameraPosition(float horizontal, float vertical, int distance) @@ -1443,7 +1343,8 @@ void Q3DBars::addDataSet(const QVector< QVector > &data, const QVectorm_heightNormalizer = d_ptr->m_dataSet->d_ptr->highestValue(); - d_ptr->m_dataSet->setLabels(QString(), QString(), QString(), labelsRow, labelsColumn); // TODO: Copy axis names from sample space data + // Empty QStrings won't override already set axis labels + d_ptr->m_dataSet->setLabels(QString(), QString(), QString(), labelsRow, labelsColumn); d_ptr->m_dataSet->d_ptr->verifySize(d_ptr->m_sampleCount.y()); } @@ -1467,7 +1368,8 @@ void Q3DBars::addDataSet(const QVector< QVector > &data row++; } d_ptr->m_heightNormalizer = d_ptr->m_dataSet->d_ptr->highestValue(); - d_ptr->m_dataSet->setLabels(QString(), QString(), QString(), labelsRow, labelsColumn); // TODO: Copy axis names from sample space data + // Empty QStrings won't override already set axis labels + d_ptr->m_dataSet->setLabels(QString(), QString(), QString(), labelsRow, labelsColumn); d_ptr->m_dataSet->d_ptr->verifySize(d_ptr->m_sampleCount.y()); } diff --git a/src/datavis3d/engine/qdataset.cpp b/src/datavis3d/engine/qdataset.cpp index 8dd2eb88..ddfd907c 100644 --- a/src/datavis3d/engine/qdataset.cpp +++ b/src/datavis3d/engine/qdataset.cpp @@ -66,9 +66,14 @@ void QDataSet::setLabels(const QString &xAxis , const QVector &labelsRow , const QVector &labelsColumn) { - d_ptr->m_xAxis = xAxis; - d_ptr->m_zAxis = zAxis; - d_ptr->m_yAxis = yAxis; + QString empty; + // skip empty labels, keep the previous ones + if (xAxis != empty) + d_ptr->m_xAxis = xAxis; + if (zAxis != empty) + d_ptr->m_zAxis = zAxis; + if (yAxis != empty) + d_ptr->m_yAxis = yAxis; d_ptr->m_labelsRow = labelsRow; d_ptr->m_labelsColumn = labelsColumn; } diff --git a/src/datavis3d/utils/camerahelper.cpp b/src/datavis3d/utils/camerahelper.cpp index ac93abaa..4b8830a1 100644 --- a/src/datavis3d/utils/camerahelper.cpp +++ b/src/datavis3d/utils/camerahelper.cpp @@ -177,4 +177,107 @@ QPointF CameraHelper::getCameraRotations() return rotations; } +void CameraHelper::setCameraPreset(Q3DBars::CameraPreset preset) +{ + switch (preset) { + case Q3DBars::PresetFrontLow: { + qDebug("PresetFrontLow"); + CameraHelper::setCameraRotation(QPointF(0.0f, 0.0f)); + break; + } + case Q3DBars::PresetFront: { + qDebug("PresetFront"); + CameraHelper::setCameraRotation(QPointF(0.0f, 22.5f)); + break; + } + case Q3DBars::PresetFrontHigh: { + qDebug("PresetFrontHigh"); + CameraHelper::setCameraRotation(QPointF(0.0f, 45.0f)); + break; + } + case Q3DBars::PresetLeftLow: { + qDebug("PresetLeftLow"); + CameraHelper::setCameraRotation(QPointF(90.0f, 0.0f)); + break; + } + case Q3DBars::PresetLeft: { + qDebug("PresetLeft"); + CameraHelper::setCameraRotation(QPointF(90.0f, 22.5f)); + break; + } + case Q3DBars::PresetLeftHigh: { + qDebug("PresetLeftHigh"); + CameraHelper::setCameraRotation(QPointF(90.0f, 45.0f)); + break; + } + case Q3DBars::PresetRightLow: { + qDebug("PresetRightLow"); + CameraHelper::setCameraRotation(QPointF(-90.0f, 0.0f)); + break; + } + case Q3DBars::PresetRight: { + qDebug("PresetRight"); + CameraHelper::setCameraRotation(QPointF(-90.0f, 22.5f)); + break; + } + case Q3DBars::PresetRightHigh: { + qDebug("PresetRightHigh"); + CameraHelper::setCameraRotation(QPointF(-90.0f, 45.0f)); + break; + } + case Q3DBars::PresetBehindLow: { + qDebug("PresetBehindLow"); + CameraHelper::setCameraRotation(QPointF(180.0f, 0.0f)); + break; + } + case Q3DBars::PresetBehind: { + qDebug("PresetBehind"); + CameraHelper::setCameraRotation(QPointF(180.0f, 22.5f)); + break; + } + case Q3DBars::PresetBehindHigh: { + qDebug("PresetBehindHigh"); + CameraHelper::setCameraRotation(QPointF(180.0f, 45.0f)); + break; + } + case Q3DBars::PresetIsometricLeft: { + qDebug("PresetIsometricLeft"); + CameraHelper::setCameraRotation(QPointF(45.0f, 22.5f)); + break; + } + case Q3DBars::PresetIsometricLeftHigh: { + qDebug("PresetIsometricLeftHigh"); + CameraHelper::setCameraRotation(QPointF(45.0f, 45.0f)); + break; + } + case Q3DBars::PresetIsometricRight: { + qDebug("PresetIsometricRight"); + CameraHelper::setCameraRotation(QPointF(-45.0f, 22.5f)); + break; + } + case Q3DBars::PresetIsometricRightHigh: { + qDebug("PresetIsometricRightHigh"); + CameraHelper::setCameraRotation(QPointF(-45.0f, 45.0f)); + break; + } + case Q3DBars::PresetDirectlyAbove: { + qDebug("PresetDirectlyAbove"); + CameraHelper::setCameraRotation(QPointF(0.0f, 90.0f)); + break; + } + case Q3DBars::PresetDirectlyAboveCW45: { + qDebug("PresetDirectlyAboveCW45"); + CameraHelper::setCameraRotation(QPointF(-45.0f, 90.0f)); + break; + } + case Q3DBars::PresetDirectlyAboveCCW45: { + qDebug("PresetDirectlyAboveCCW45"); + CameraHelper::setCameraRotation(QPointF(45.0f, 90.0f)); + break; + } + default: + break; + } +} + QTCOMMERCIALDATAVIS3D_END_NAMESPACE diff --git a/src/datavis3d/utils/camerahelper_p.h b/src/datavis3d/utils/camerahelper_p.h index 1f8cb074..a27bbc3b 100644 --- a/src/datavis3d/utils/camerahelper_p.h +++ b/src/datavis3d/utils/camerahelper_p.h @@ -53,6 +53,7 @@ #define CAMERAPOSITIONER_P_H #include "qdatavis3dglobal.h" +#include "q3dbars.h" class QMatrix4x4; class QVector3D; @@ -82,6 +83,7 @@ public: static QVector3D calculateLightPosition(const QVector3D &lightPosition , float fixedRotation = 0.0f); static void updateMousePos(const QPoint &mousePos); + static void setCameraPreset(Q3DBars::CameraPreset preset); }; QTCOMMERCIALDATAVIS3D_END_NAMESPACE -- cgit v1.2.3