diff options
30 files changed, 129 insertions, 145 deletions
diff --git a/examples/barchart/main.cpp b/examples/barchart/main.cpp index 1529530c..9cad6c2f 100644 --- a/examples/barchart/main.cpp +++ b/examples/barchart/main.cpp @@ -87,7 +87,7 @@ ChartDataGenerator::ChartDataGenerator(Q3DBars *barchart, QTableWidget *tableWid #ifndef USE_STATIC_DATA // Set selection mode to full - m_chart->setSelectionMode(ModeBarRowAndColumn); + m_chart->setSelectionMode(ModeItemRowAndColumn); #else // Set selection mode to zoom row m_chart->setSelectionMode(ModeZoomRow); diff --git a/examples/qmlbarchart/qml/qmlbarchart/main.qml b/examples/qmlbarchart/qml/qmlbarchart/main.qml index db67a09e..241d0049 100644 --- a/examples/qmlbarchart/qml/qmlbarchart/main.qml +++ b/examples/qmlbarchart/qml/qmlbarchart/main.qml @@ -98,7 +98,7 @@ Item { height: dataView.height gridVisible: true shadowQuality: Bars3D.ShadowNone - selectionMode: Bars3D.ModeBar + selectionMode: Bars3D.ModeItem labelTransparency: Bars3D.TransparencyNone rows: 5 columns: 12 diff --git a/examples/qmlscatter/qml/qmlscatter/main.qml b/examples/qmlscatter/qml/qmlscatter/main.qml index 64438f0d..7decbb10 100644 --- a/examples/qmlscatter/qml/qmlscatter/main.qml +++ b/examples/qmlscatter/qml/qmlscatter/main.qml @@ -68,7 +68,7 @@ Item { Component.onCompleted: { console.log("testscatter complete"); shadowQuality = Scatter3D.ShadowNone - selectionMode = Scatter3D.ModeBar + selectionMode = Scatter3D.ModeItem labelTransparency = Scatter3D.TransparencyNoBackground data = dataModel } diff --git a/examples/rainfall/rainfallchart.cpp b/examples/rainfall/rainfallchart.cpp index a5d97921..a7d3a46b 100644 --- a/examples/rainfall/rainfallchart.cpp +++ b/examples/rainfall/rainfallchart.cpp @@ -68,7 +68,7 @@ RainfallChart::RainfallChart(Q3DBars *rainfall) m_chart->setFont(QFont("Century Gothic", 40)); // Set selection mode to bar and column - //m_chart->setSelectionMode(ModeBarAndColumn); + //m_chart->setSelectionMode(ModeItemAndColumn); m_chart->setSelectionMode(ModeZoomColumn); // Set theme diff --git a/examples/scatterchart/scatterchart.cpp b/examples/scatterchart/scatterchart.cpp index 7aef253b..d8aa23b1 100644 --- a/examples/scatterchart/scatterchart.cpp +++ b/examples/scatterchart/scatterchart.cpp @@ -31,7 +31,7 @@ ScatterDataModifier::ScatterDataModifier(Q3DScatter *scatter) m_fontSize(30.0f) { m_chart->setFontSize(m_fontSize); - m_chart->setBarType(Spheres, true); + m_chart->setObjectType(Spheres, true); m_chart->setTheme(ThemeBrownSand); m_chart->setShadowQuality(ShadowHigh); @@ -86,16 +86,16 @@ void ScatterDataModifier::changeStyle() static int model = 0; switch (model) { case 0: - m_chart->setBarType(Dots, false); + m_chart->setObjectType(Dots, false); break; case 1: - m_chart->setBarType(Dots, true); + m_chart->setObjectType(Dots, true); break; case 2: - m_chart->setBarType(Spheres, false); + m_chart->setObjectType(Spheres, false); break; case 3: - m_chart->setBarType(Spheres, true); + m_chart->setObjectType(Spheres, true); break; } model++; diff --git a/examples/widget/chart.cpp b/examples/widget/chart.cpp index 91c87578..31c076f2 100644 --- a/examples/widget/chart.cpp +++ b/examples/widget/chart.cpp @@ -84,7 +84,7 @@ void ChartModifier::restart(bool dynamicData) // Set up sample space m_chart->setupSampleSpace(m_rowCount, m_columnCount); // Set selection mode to full - m_chart->setSelectionMode(ModeBarRowAndColumn); + m_chart->setSelectionMode(ModeItemRowAndColumn); m_chart->valueAxis()->setSegmentCount(m_segments * 2); m_chart->valueAxis()->setSubSegmentCount(0); m_chart->valueAxis()->setAutoAdjustRange(true); diff --git a/src/datavis3d/engine/abstract3dcontroller.cpp b/src/datavis3d/engine/abstract3dcontroller.cpp index 133d1ffd..619f39b6 100644 --- a/src/datavis3d/engine/abstract3dcontroller.cpp +++ b/src/datavis3d/engine/abstract3dcontroller.cpp @@ -176,8 +176,8 @@ void Abstract3DController::setCameraPosition(GLfloat horizontal, GLfloat vertica //qDebug() << "camera rotation set to" << m_horizontalRotation << m_verticalRotation; } -void Abstract3DController::setBarColor(QColor baseColor, QColor heightColor, QColor depthColor, - bool uniform) +void Abstract3DController::setObjectColor(QColor baseColor, QColor heightColor, QColor depthColor, + bool uniform) { m_theme.m_baseColor = baseColor; m_theme.m_heightColor = heightColor; diff --git a/src/datavis3d/engine/abstract3dcontroller_p.h b/src/datavis3d/engine/abstract3dcontroller_p.h index 9b70987b..c89d7f60 100644 --- a/src/datavis3d/engine/abstract3dcontroller_p.h +++ b/src/datavis3d/engine/abstract3dcontroller_p.h @@ -112,8 +112,8 @@ public: // Set color if you don't want to use themes. Set uniform to false if you want the (height) // color to change from bottom to top - virtual void setBarColor(QColor baseColor, QColor heightColor, QColor depthColor, - bool uniform = true); + virtual void setObjectColor(QColor baseColor, QColor heightColor, QColor depthColor, + bool uniform = true); // Set theme (bar colors, shaders, window color, background colors, light intensity and text // colors are affected) diff --git a/src/datavis3d/engine/bars3dcontroller.cpp b/src/datavis3d/engine/bars3dcontroller.cpp index 7192d627..d12becb4 100644 --- a/src/datavis3d/engine/bars3dcontroller.cpp +++ b/src/datavis3d/engine/bars3dcontroller.cpp @@ -40,7 +40,7 @@ Bars3dController::Bars3dController(QRect boundRect) m_columnCount(0), m_mouseState(MouseNone), m_mousePos(QPoint(0, 0)), - m_selectionMode(ModeBar), + m_selectionMode(ModeItem), m_isSlicingActivated(false), m_isBarSpecRelative(true), m_barThickness(QSizeF(0.75f, 0.75f)), @@ -353,7 +353,7 @@ QString Bars3dController::objFile() return m_objFile; } -void Bars3dController::setBarType(BarStyle style, bool smooth) +void Bars3dController::setBarType(MeshStyle style, bool smooth) { if (style == Bars) { if (smooth) diff --git a/src/datavis3d/engine/bars3dcontroller_p.h b/src/datavis3d/engine/bars3dcontroller_p.h index 4386fb63..5a533fc5 100644 --- a/src/datavis3d/engine/bars3dcontroller_p.h +++ b/src/datavis3d/engine/bars3dcontroller_p.h @@ -114,7 +114,7 @@ public: bool isBarSpecRelative(); // bar type; bars (=cubes), pyramids, cones, cylinders, etc. - void setBarType(BarStyle style, bool smooth = false); + void setBarType(MeshStyle style, bool smooth = false); QString objFile(); // override bar type with own mesh diff --git a/src/datavis3d/engine/bars3drenderer.cpp b/src/datavis3d/engine/bars3drenderer.cpp index dfc84e33..33874050 100644 --- a/src/datavis3d/engine/bars3drenderer.cpp +++ b/src/datavis3d/engine/bars3drenderer.cpp @@ -423,32 +423,32 @@ void Bars3dRenderer::drawSlicedScene(CameraHelper *camera, QVector3D(0.0f, m_yAdjustment, zComp), QVector3D(0.0f, 0.0f, 0.0f), 0, m_cachedSelectionMode, m_labelShader, - m_labelObj, camera, false, false, LabelTop); + m_labelObj, camera, false, false, Drawer::LabelTop); } m_drawer->drawLabel(*dummyItem, zLabel, viewMatrix, projectionMatrix, QVector3D(0.0f, m_yAdjustment, zComp), QVector3D(0.0f, 0.0f, 0.0f), 0, m_cachedSelectionMode, m_labelShader, - m_labelObj, camera, false, false, LabelBottom); + m_labelObj, camera, false, false, Drawer::LabelBottom); } else { m_drawer->drawLabel(*dummyItem, xLabel, viewMatrix, projectionMatrix, QVector3D(0.0f, m_yAdjustment, zComp), QVector3D(0.0f, 0.0f, 0.0f), 0, m_cachedSelectionMode, m_labelShader, - m_labelObj, camera, false, false, LabelBottom); + m_labelObj, camera, false, false, Drawer::LabelBottom); if (m_sliceTitleItem) { m_drawer->drawLabel(*dummyItem, sliceSelectionLabel, viewMatrix, projectionMatrix, QVector3D(0.0f, m_yAdjustment, zComp), QVector3D(0.0f, 0.0f, 0.0f), 0, m_cachedSelectionMode, m_labelShader, - m_labelObj, camera, false, false, LabelTop); + m_labelObj, camera, false, false, Drawer::LabelTop); } } m_drawer->drawLabel(*dummyItem, yLabel, viewMatrix, projectionMatrix, QVector3D(0.0f, m_yAdjustment, zComp), QVector3D(0.0f, 0.0f, 90.0f), 0, m_cachedSelectionMode, m_labelShader, - m_labelObj, camera, false, false, LabelLeft); + m_labelObj, camera, false, false, Drawer::LabelLeft); // Draw labels for bars for (int col = 0; col < m_sliceSelection->size(); col++) { @@ -474,7 +474,7 @@ void Bars3dRenderer::drawSlicedScene(CameraHelper *camera, QVector3D(0.0f, m_yAdjustment, zComp), QVector3D(0.0f, 0.0f, -45.0f), item->height(), m_cachedSelectionMode, m_labelShader, - m_labelObj, camera, false, false, LabelBelow); + m_labelObj, camera, false, false, Drawer::LabelBelow); } } @@ -1376,7 +1376,7 @@ void Bars3dRenderer::drawScene(CameraHelper *camera, QVector3D(0.0f, m_yAdjustment, zComp), QVector3D(rotLabelX, rotLabelY, rotLabelZ), 0, m_cachedSelectionMode, - m_labelShader, m_labelObj, camera, true, true, LabelMid, + m_labelShader, m_labelObj, camera, true, true, Drawer::LabelMid, alignment); } @@ -1418,7 +1418,7 @@ void Bars3dRenderer::drawScene(CameraHelper *camera, QVector3D(0.0f, m_yAdjustment, zComp), QVector3D(rotLabelX, rotLabelY, rotLabelZ), 0, m_cachedSelectionMode, - m_labelShader, m_labelObj, camera, true, true, LabelMid, + m_labelShader, m_labelObj, camera, true, true, Drawer::LabelMid, alignment); } } @@ -1462,7 +1462,7 @@ void Bars3dRenderer::drawScene(CameraHelper *camera, QVector3D(0.0f, m_yAdjustment, zComp), QVector3D(rotLabelX, rotLabelY, rotLabelZ), 0, m_cachedSelectionMode, - m_labelShader, m_labelObj, camera, true, true, LabelMid, + m_labelShader, m_labelObj, camera, true, true, Drawer::LabelMid, alignment); // Side wall @@ -1482,7 +1482,7 @@ void Bars3dRenderer::drawScene(CameraHelper *camera, QVector3D(0.0f, m_yAdjustment, zComp), QVector3D(rotLabelX, rotLabelY, rotLabelZ), 0, m_cachedSelectionMode, - m_labelShader, m_labelObj, camera, true, true, LabelMid, + m_labelShader, m_labelObj, camera, true, true, Drawer::LabelMid, alignment); } labelNbr++; @@ -1782,13 +1782,13 @@ Bars3dController::SelectionType Bars3dRenderer::isSelected(GLint row, GLint bar) if (current == m_selection) { isSelectedType = Bars3dController::SelectionBar; } - else if (current.y() == m_selection.y() && (m_cachedSelectionMode == ModeBarAndColumn - || m_cachedSelectionMode == ModeBarRowAndColumn + else if (current.y() == m_selection.y() && (m_cachedSelectionMode == ModeItemAndColumn + || m_cachedSelectionMode == ModeItemRowAndColumn || m_cachedSelectionMode == ModeZoomColumn)) { isSelectedType = Bars3dController::SelectionColumn; } - else if (current.x() == m_selection.x() && (m_cachedSelectionMode == ModeBarAndRow - || m_cachedSelectionMode == ModeBarRowAndColumn + else if (current.x() == m_selection.x() && (m_cachedSelectionMode == ModeItemAndRow + || m_cachedSelectionMode == ModeItemRowAndColumn || m_cachedSelectionMode == ModeZoomRow)) { isSelectedType = Bars3dController::SelectionRow; } diff --git a/src/datavis3d/engine/drawer_p.h b/src/datavis3d/engine/drawer_p.h index aa5ea5f6..4b79c7dd 100644 --- a/src/datavis3d/engine/drawer_p.h +++ b/src/datavis3d/engine/drawer_p.h @@ -50,6 +50,19 @@ class Drawer : public QObject, public QOpenGLFunctions Q_OBJECT public: + enum LabelPosition { + LabelBelow = 0, + LabelLow, + LabelMid, + LabelHigh, + LabelOver, + LabelBottom, // Absolute positions from here onward, used for axes (QDataItem is ignored) + LabelTop, + LabelLeft, + LabelRight + }; + +public: explicit Drawer(const Theme &theme, const QFont &font, LabelTransparency transparency); ~Drawer(); diff --git a/src/datavis3d/engine/maps3dcontroller.cpp b/src/datavis3d/engine/maps3dcontroller.cpp index abe823dd..0088c0b1 100644 --- a/src/datavis3d/engine/maps3dcontroller.cpp +++ b/src/datavis3d/engine/maps3dcontroller.cpp @@ -81,7 +81,7 @@ Maps3DController::Maps3DController(const QRect &rect) m_scaleFactor(1.0f), m_theme(new Theme()), m_isInitialized(false), - m_selectionMode(ModeBar), + m_selectionMode(ModeItem), m_selectedBar(0), m_previouslySelectedBar(0), m_axisLabelX(QStringLiteral("X")), @@ -914,7 +914,7 @@ void Maps3DController::drawScene(const GLuint defaultFboHandle) QVector3D(0.0f, m_yAdjustment, zComp), QVector3D(rotLabelX, rotLabelY, 0.0f), m_heightNormalizer, m_selectionMode, m_labelShader, - m_labelObj, true, true, LabelMid, alignment); + m_labelObj, true, true, Drawer::LabelMid, alignment); delete label; } @@ -952,7 +952,7 @@ void Maps3DController::drawScene(const GLuint defaultFboHandle) QVector3D(0.0f, m_yAdjustment, zComp), QVector3D(rotLabelX, rotLabelY, 0.0f), m_heightNormalizer, m_selectionMode, m_labelShader, - m_labelObj, true, true, LabelMid, alignment); + m_labelObj, true, true, Drawer::LabelMid, alignment); delete label; } @@ -1151,7 +1151,7 @@ void Maps3DController::setBarSpecs(const QVector3D &thickness, m_adjustDirection = direction; } -void Maps3DController::setBarType(BarStyle style, bool smooth) +void Maps3DController::setBarType(MeshStyle style, bool smooth) { if (style == Bars) { if (smooth) diff --git a/src/datavis3d/engine/maps3dcontroller_p.h b/src/datavis3d/engine/maps3dcontroller_p.h index 96f594a7..5dc7ee59 100644 --- a/src/datavis3d/engine/maps3dcontroller_p.h +++ b/src/datavis3d/engine/maps3dcontroller_p.h @@ -86,7 +86,7 @@ public: Q3DMaps::AdjustmentDirection direction = Q3DMaps::AdjustHeight); // bar type; bars (=cubes), pyramids, cones, cylinders, balls, etc. - void setBarType(BarStyle style, bool smooth = false); + void setBarType(MeshStyle style, bool smooth = false); // override bar type with own mesh void setMeshFileName(const QString &objFileName); diff --git a/src/datavis3d/engine/q3dbars.cpp b/src/datavis3d/engine/q3dbars.cpp index 337695f2..14195d68 100644 --- a/src/datavis3d/engine/q3dbars.cpp +++ b/src/datavis3d/engine/q3dbars.cpp @@ -207,7 +207,7 @@ void Q3DBars::setBarSpecs(QSizeF thickness, QSizeF spacing, bool relative) * * \sa setMeshFileName() */ -void Q3DBars::setBarType(BarStyle style, bool smooth) +void Q3DBars::setBarType(MeshStyle style, bool smooth) { d_ptr->m_shared->setBarType(style, smooth); } @@ -287,13 +287,13 @@ void Q3DBars::setTheme(ColorTheme theme) */ void Q3DBars::setBarColor(QColor baseColor, QColor heightColor, QColor depthColor, bool uniform) { - d_ptr->m_shared->setBarColor(baseColor, heightColor, depthColor, uniform); + d_ptr->m_shared->setObjectColor(baseColor, heightColor, depthColor, uniform); } /*! * \property Q3DBars::selectionMode * - * \a mode Set bar selection mode from \c SelectionMode. \c ModeBar by default. + * \a mode Set bar selection mode from \c SelectionMode. \c ModeItem by default. * * Sets bar selection mode to be used. */ diff --git a/src/datavis3d/engine/q3dbars.h b/src/datavis3d/engine/q3dbars.h index 16dd067a..49e2ebce 100644 --- a/src/datavis3d/engine/q3dbars.h +++ b/src/datavis3d/engine/q3dbars.h @@ -57,7 +57,7 @@ public: bool relative = true); // bar type; bars (=cubes), pyramids, cones, cylinders, etc. - void setBarType(BarStyle style, bool smooth = false); + void setBarType(MeshStyle style, bool smooth = false); // how many samples per row and column, and names for axes // TODO: This defines the data window, needs additional parameters startRow, startColumn diff --git a/src/datavis3d/engine/q3dmaps.cpp b/src/datavis3d/engine/q3dmaps.cpp index 7f21fe2f..9fd2ea69 100644 --- a/src/datavis3d/engine/q3dmaps.cpp +++ b/src/datavis3d/engine/q3dmaps.cpp @@ -145,7 +145,7 @@ void Q3DMaps::setBarSpecs(const QVector3D &thickness, AdjustmentDirection direct d_ptr->m_shared->setBarSpecs(thickness, direction); } -void Q3DMaps::setBarType(BarStyle style, bool smooth) +void Q3DMaps::setBarType(MeshStyle style, bool smooth) { d_ptr->m_shared->setBarType(style, smooth); } diff --git a/src/datavis3d/engine/q3dmaps.h b/src/datavis3d/engine/q3dmaps.h index 18051d2f..e32977e2 100644 --- a/src/datavis3d/engine/q3dmaps.h +++ b/src/datavis3d/engine/q3dmaps.h @@ -66,7 +66,7 @@ public: AdjustmentDirection direction = AdjustHeight); // bar type; bars (=cubes), pyramids, cones, cylinders, balls, etc. - void setBarType(BarStyle style, bool smooth = false); + void setBarType(MeshStyle style, bool smooth = false); // override bar type with own mesh void setMeshFileName(const QString &objFileName); diff --git a/src/datavis3d/engine/q3dscatter.cpp b/src/datavis3d/engine/q3dscatter.cpp index fcaf4c40..d9e03306 100644 --- a/src/datavis3d/engine/q3dscatter.cpp +++ b/src/datavis3d/engine/q3dscatter.cpp @@ -77,7 +77,7 @@ QT_DATAVIS3D_BEGIN_NAMESPACE */ /*! - * Constructs a new 3D bar window. + * Constructs a new 3D scatter window. */ Q3DScatter::Q3DScatter() : d_ptr(new Q3DScatterPrivate(this, geometry())) @@ -88,7 +88,7 @@ Q3DScatter::Q3DScatter() } /*! - * Destroys the 3d bar window. + * Destroys the 3D scatter window. */ Q3DScatter::~Q3DScatter() { @@ -181,17 +181,17 @@ void Q3DScatter::setHeight(const int height) } /*! - * \a style One of the values in \c BarStyle. \c Bars by default. + * \a style One of the values in \c MeshStyle. \c Spheres by default. * * \a smooth A flag to set shading to smooth. \c false by default. * - * Sets the bar type to one of the supplied ones. + * Sets the object type to one of the supplied ones. * * \sa setMeshFileName() */ -void Q3DScatter::setBarType(BarStyle style, bool smooth) +void Q3DScatter::setObjectType(MeshStyle style, bool smooth) { - d_ptr->m_shared->setBarType(style, smooth); + d_ptr->m_shared->setObjectType(style, smooth); } /*! @@ -212,8 +212,7 @@ void Q3DScatter::setCameraPreset(CameraPreset preset) * \a distance Distance from the center. \c 100 by default. * * Move camera to a wanted position based on horizontal and veritcal angles. Angles are limited - * to -180...180 in horizontal direction and either -90...90 or 0...90 in vertical, depending - * on data values. Negative vertical angles are allowed only if there are negative bar values. + * to -180...180 in horizontal direction and -90...90 in vertical. * Distance is adjustable between 10 and 500. */ void Q3DScatter::setCameraPosition(qreal horizontal, qreal vertical, int distance) @@ -224,7 +223,7 @@ void Q3DScatter::setCameraPosition(qreal horizontal, qreal vertical, int distanc /*! * \a theme Apply a predefined theme from \c ColorTheme. * - * Sets a predefined theme. Theme affects bar colors, label colors, text color, background color, + * Sets a predefined theme. Theme affects object colors, label colors, text color, background color, * window color and grid color. Lighting is also adjusted by themes. */ void Q3DScatter::setTheme(ColorTheme theme) @@ -233,31 +232,32 @@ void Q3DScatter::setTheme(ColorTheme theme) } /*! - * \a baseColor The base color of a bar. If all other colors are black, this sets the final color of - * the bar. + * \a baseColor The base color of an object. If all other colors are black, this sets the final + * color of the object. * - * \a heightColor This color is added to the bar based on its height. The higher the bar, the more - * prominent this color becomes. Setting this black keeps the color unchanged regardless of height. + * \a heightColor This color is added to the object based on its y-position. The higher the object, + * the more prominent this color becomes. Setting this black keeps the color unchanged regardless + * of y-position. * - * \a depthColor This color becomes more prominent the further away from the first row the bar is. - * Setting this black keeps bars the same color regardless of "depth" in the set. + * \a depthColor This color becomes more prominent the further back in z-position the object is. + * Setting this black keeps objects the same color regardless of "depth" in the set. * - * \a uniform A flag to define if color needs to be uniform throughout bar's length, or will the + * \a uniform A flag to define if color needs to be uniform throughout object's length, or will the * colors be applied by height. \c true by default. * - * Set bar color using your own colors. This overrides colors from theme. + * Set object color using your own colors. This overrides colors from theme. */ -void Q3DScatter::setBarColor(QColor baseColor, QColor heightColor, QColor depthColor, bool uniform) +void Q3DScatter::setObjectColor(QColor baseColor, QColor heightColor, QColor depthColor, bool uniform) { - d_ptr->m_shared->setBarColor(baseColor, heightColor, depthColor, uniform); + d_ptr->m_shared->setObjectColor(baseColor, heightColor, depthColor, uniform); } /*! * \property Q3DScatter::selectionMode * - * \a mode Set bar selection mode from \c SelectionMode. \c ModeBar by default. + * \a mode Set object selection mode from \c SelectionMode. \c ModeItem by default. * - * Sets bar selection mode to be used. + * Sets object selection mode to be used. */ void Q3DScatter::setSelectionMode(SelectionMode mode) { @@ -290,7 +290,7 @@ QString Q3DScatter::windowTitle() const * \a objFileName File name of a mesh object. Object needs to be in Wavefront obj format * and include vertices, normals and UVs. It also needs to be in triangles. * - * Override bar type with an object mesh. \sa setBarType() + * Override object type with an object mesh. \sa setObjectType() */ void Q3DScatter::setMeshFileName(const QString &objFileName) { diff --git a/src/datavis3d/engine/q3dscatter.h b/src/datavis3d/engine/q3dscatter.h index 5dd0f221..cd0ec072 100644 --- a/src/datavis3d/engine/q3dscatter.h +++ b/src/datavis3d/engine/q3dscatter.h @@ -50,42 +50,29 @@ public: explicit Q3DScatter(); ~Q3DScatter(); - // bar thickness, spacing between bars, and is spacing relative to thickness or absolute - // y -component sets the thickness/spacing of z -direction - // With relative 0.0f means side-to-side, 1.0f = one thickness in between - void setBarSpecs(QSizeF thickness = QSizeF(1.0f, 1.0f), - QSizeF spacing = QSizeF(1.0f, 1.0f), - bool relative = true); - - // bar type; bars (=cubes), pyramids, cones, cylinders, etc. - void setBarType(BarStyle style, bool smooth = false); - - // how many samples per row and column, and names for axes - // TODO: This defines the data window, needs additional parameters startRow, startColumn - void setupSampleSpace(int samplesRow, int samplesColumn); + // object type; spheres, dots + void setObjectType(MeshStyle style, bool smooth = false); // Select preset camera placement void setCameraPreset(CameraPreset preset); // Set camera rotation if you don't want to use the presets (in horizontal (-180...180) and - // vertical (0...90) (or (-90...90) if there are negative values) angles and distance in - // percentage (10...500)) + // vertical (-90...90) angles and distance in percentage (10...500)) void setCameraPosition(qreal horizontal, qreal vertical, int distance = 100); - // Set theme (bar colors, shaders, window color, background colors, light intensity and text + // Set theme (object colors, shaders, window color, background colors, light intensity and text // colors are affected) void setTheme(ColorTheme theme); // Set color if you don't want to use themes. Set uniform to false if you want the (height) // color to change from bottom to top - void setBarColor(QColor baseColor, QColor heightColor, QColor depthColor, - bool uniform = true); + void setObjectColor(QColor baseColor, QColor heightColor, QColor depthColor, + bool uniform = true); - // override bar type with own mesh + // override object type with own mesh void setMeshFileName(const QString &objFileName); - // TODO: light placement API - // Change selection mode; single bar, bar and row, bar and column, or all + // Change selection mode void setSelectionMode(SelectionMode mode); SelectionMode selectionMode() const; diff --git a/src/datavis3d/engine/scatter3dcontroller.cpp b/src/datavis3d/engine/scatter3dcontroller.cpp index d9b54494..4660f4ad 100644 --- a/src/datavis3d/engine/scatter3dcontroller.cpp +++ b/src/datavis3d/engine/scatter3dcontroller.cpp @@ -37,7 +37,7 @@ Scatter3DController::Scatter3DController(QRect boundRect) m_isInitialized(false), m_mouseState(MouseNone), m_mousePos(QPoint(0, 0)), - m_selectionMode(ModeBar), + m_selectionMode(ModeItem), m_isSlicingActivated(false), m_objFile(QStringLiteral(":/defaultMeshes/sphere")), m_font(QFont(QStringLiteral("Arial"))), @@ -305,7 +305,7 @@ QString Scatter3DController::objFile() return m_objFile; } -void Scatter3DController::setBarType(BarStyle style, bool smooth) +void Scatter3DController::setObjectType(MeshStyle style, bool smooth) { if (style == Spheres) { if (smooth) @@ -331,6 +331,10 @@ void Scatter3DController::setMeshFileName(const QString &objFileName) void Scatter3DController::setSelectionMode(SelectionMode mode) { + if (mode > ModeItem) { + qWarning("Unsupported selection mode."); + return; + } m_selectionMode = mode; // Disable zoom if selection mode changes setSlicingActive(false); diff --git a/src/datavis3d/engine/scatter3dcontroller_p.h b/src/datavis3d/engine/scatter3dcontroller_p.h index 38122bb5..b9d3e44b 100644 --- a/src/datavis3d/engine/scatter3dcontroller_p.h +++ b/src/datavis3d/engine/scatter3dcontroller_p.h @@ -96,14 +96,12 @@ public: bool showUnder = false); // bar type; bars (=cubes), pyramids, cones, cylinders, etc. - void setBarType(BarStyle style, bool smooth = false); + void setObjectType(MeshStyle style, bool smooth = false); QString objFile(); // override bar type with own mesh void setMeshFileName(const QString &objFileName); - // TODO: light placement API - // Change selection mode; single bar, bar and row, bar and column, or all void setSelectionMode(SelectionMode mode); SelectionMode selectionMode(); @@ -158,9 +156,6 @@ private: void adjustValueAxisRange(); Q_DISABLE_COPY(Scatter3DController) - - friend class DeclarativeBars; - friend class DeclarativeBarsRenderer; }; diff --git a/src/datavis3d/engine/scatter3drenderer.cpp b/src/datavis3d/engine/scatter3drenderer.cpp index b64ee8ec..d21a168b 100644 --- a/src/datavis3d/engine/scatter3drenderer.cpp +++ b/src/datavis3d/engine/scatter3drenderer.cpp @@ -1151,7 +1151,7 @@ void Scatter3DRenderer::drawScene(CameraHelper *camera, QVector3D(0.0f, 0.0f, zComp), QVector3D(0.0f, 0.0f, 0.0f), m_selectedItem->height(), m_cachedSelectionMode, m_labelShader, - m_labelObj, camera, true, false, LabelMid); + m_labelObj, camera, true, false, Drawer::LabelMid); #endif glDisable(GL_TEXTURE_2D); if (m_cachedLabelTransparency > TransparencyNone) @@ -1231,7 +1231,7 @@ void Scatter3DRenderer::drawScene(CameraHelper *camera, QVector3D(0.0f, 0.0f, zComp), QVector3D(rotLabelX, rotLabelY, rotLabelZ), 0, m_cachedSelectionMode, - m_labelShader, m_labelObj, camera, true, true, LabelMid, + m_labelShader, m_labelObj, camera, true, true, Drawer::LabelMid, alignment); } labelNbr++; @@ -1291,7 +1291,7 @@ void Scatter3DRenderer::drawScene(CameraHelper *camera, QVector3D(0.0f, 0.0f, zComp), QVector3D(rotLabelX, rotLabelY, rotLabelZ), 0, m_cachedSelectionMode, - m_labelShader, m_labelObj, camera, true, true, LabelMid, + m_labelShader, m_labelObj, camera, true, true, Drawer::LabelMid, alignment); } labelNbr++; @@ -1339,7 +1339,7 @@ void Scatter3DRenderer::drawScene(CameraHelper *camera, QVector3D(0.0f, 0.0f, zComp), QVector3D(rotLabelX, rotLabelY, rotLabelZ), 0, m_cachedSelectionMode, - m_labelShader, m_labelObj, camera, true, true, LabelMid, + m_labelShader, m_labelObj, camera, true, true, Drawer::LabelMid, alignment); // Side wall @@ -1360,7 +1360,7 @@ void Scatter3DRenderer::drawScene(CameraHelper *camera, QVector3D(0.0f, 0.0f, zComp), QVector3D(rotLabelX, rotLabelY, rotLabelZ), 0, m_cachedSelectionMode, - m_labelShader, m_labelObj, camera, true, true, LabelMid, + m_labelShader, m_labelObj, camera, true, true, Drawer::LabelMid, alignment); } labelNbr++; diff --git a/src/datavis3d/global/qdatavis3dnamespace.h b/src/datavis3d/global/qdatavis3dnamespace.h index 086625f4..812f3809 100644 --- a/src/datavis3d/global/qdatavis3dnamespace.h +++ b/src/datavis3d/global/qdatavis3dnamespace.h @@ -24,7 +24,7 @@ namespace QtDataVis3D { // Enums used in several files -enum BarStyle { +enum MeshStyle { Bars = 0, Pyramids, Cones, @@ -72,26 +72,12 @@ enum ColorTheme { ThemeLight }; -// TODO: Should this be moved to Q3DBarsPrivate? Not for use via API directly? -enum LabelPosition { - LabelBelow = 0, - LabelLow, - LabelMid, - LabelHigh, - LabelOver, - LabelBottom, // Absolute positions from here onward, used for axes (QDataItem is ignored) - LabelTop, - LabelLeft, - LabelRight -}; - -// TODO: Will these be used from other vis types than Q3DBars? enum SelectionMode { ModeNone = 0, - ModeBar, - ModeBarAndRow, - ModeBarAndColumn, - ModeBarRowAndColumn, + ModeItem, + ModeItemAndRow, // From here onwards used for Q3DBars only + ModeItemAndColumn, + ModeItemRowAndColumn, ModeZoomRow, ModeZoomColumn }; diff --git a/src/datavis3dqml2/declarativebars.cpp b/src/datavis3dqml2/declarativebars.cpp index a203e00d..04bb0adf 100644 --- a/src/datavis3dqml2/declarativebars.cpp +++ b/src/datavis3dqml2/declarativebars.cpp @@ -94,7 +94,7 @@ void DeclarativeBars::setBarSpecs(QSizeF thickness, QSizeF spacing, bool relativ m_shared->setBarSpecs(thickness, spacing, relative); } -void DeclarativeBars::setBarType(BarStyle style, bool smooth) +void DeclarativeBars::setBarType(MeshStyle style, bool smooth) { m_shared->setBarType(style, smooth); } @@ -122,7 +122,7 @@ void DeclarativeBars::setTheme(ColorTheme theme) void DeclarativeBars::setBarColor(QColor baseColor, QColor heightColor, QColor depthColor, bool uniform) { - m_shared->setBarColor(baseColor, heightColor, depthColor, uniform); + m_shared->setObjectColor(baseColor, heightColor, depthColor, uniform); } void DeclarativeBars::setFontSize(float fontsize) diff --git a/src/datavis3dqml2/declarativebars_p.h b/src/datavis3dqml2/declarativebars_p.h index 381f6593..0abd8398 100644 --- a/src/datavis3dqml2/declarativebars_p.h +++ b/src/datavis3dqml2/declarativebars_p.h @@ -62,10 +62,10 @@ public: // Duplicated here to be able to use the same enums enum SelectionMode { ModeNone = 0, - ModeBar, - ModeBarAndRow, - ModeBarAndColumn, - ModeBarRowAndColumn, + ModeItem, + ModeItemAndRow, + ModeItemAndColumn, + ModeItemRowAndColumn, ModeZoomRow, ModeZoomColumn }; @@ -102,7 +102,7 @@ public: bool relative = true); // bar type; bars (=cubes), pyramids, cones, cylinders, etc. - Q_INVOKABLE void setBarType(BarStyle style, bool smooth = false); + Q_INVOKABLE void setBarType(MeshStyle style, bool smooth = false); // override bar type with own mesh Q_INVOKABLE void setMeshFileName(const QString &objFileName); diff --git a/src/datavis3dqml2/declarativemaps.cpp b/src/datavis3dqml2/declarativemaps.cpp index 3927841e..d20fabb1 100644 --- a/src/datavis3dqml2/declarativemaps.cpp +++ b/src/datavis3dqml2/declarativemaps.cpp @@ -95,7 +95,7 @@ void DeclarativeMaps::setBarSpecs(const QVector3D &thickness, m_shared->setBarSpecs(thickness, direction); } -void DeclarativeMaps::setBarType(BarStyle style, bool smooth) +void DeclarativeMaps::setBarType(MeshStyle style, bool smooth) { m_shared->setBarType(style, smooth); } diff --git a/src/datavis3dqml2/declarativemaps_p.h b/src/datavis3dqml2/declarativemaps_p.h index 69b9d6c9..18c9b95b 100644 --- a/src/datavis3dqml2/declarativemaps_p.h +++ b/src/datavis3dqml2/declarativemaps_p.h @@ -58,10 +58,10 @@ public: // Duplicated here to be able to use the same enums enum SelectionMode { ModeNone = 0, - ModeBar, - ModeBarAndRow, - ModeBarAndColumn, - ModeBarRowAndColumn, + ModeItem, + ModeItemAndRow, + ModeItemAndColumn, + ModeItemRowAndColumn, ModeZoomRow, ModeZoomColumn }; @@ -97,7 +97,7 @@ public: Q3DMaps::AdjustmentDirection direction = Q3DMaps::AdjustHeight); // bar type; bars (=cubes), pyramids, cones, cylinders, balls, etc. - Q_INVOKABLE void setBarType(BarStyle style, bool smooth = false); + Q_INVOKABLE void setBarType(MeshStyle style, bool smooth = false); // override bar type with own mesh Q_INVOKABLE void setMeshFileName(const QString &objFileName); diff --git a/src/datavis3dqml2/declarativescatter.cpp b/src/datavis3dqml2/declarativescatter.cpp index 9f9b6eda..17015a2b 100644 --- a/src/datavis3dqml2/declarativescatter.cpp +++ b/src/datavis3dqml2/declarativescatter.cpp @@ -88,9 +88,9 @@ QSGNode *DeclarativeScatter::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeDa return node; } -void DeclarativeScatter::setBarType(BarStyle style, bool smooth) +void DeclarativeScatter::setObjectType(MeshStyle style, bool smooth) { - m_shared->setBarType(style, smooth); + m_shared->setObjectType(style, smooth); } void DeclarativeScatter::setCameraPreset(CameraPreset preset) @@ -108,10 +108,10 @@ void DeclarativeScatter::setTheme(ColorTheme theme) m_shared->setColorTheme(theme); } -void DeclarativeScatter::setBarColor(QColor baseColor, QColor heightColor, QColor depthColor, +void DeclarativeScatter::setObjectColor(QColor baseColor, QColor heightColor, QColor depthColor, bool uniform) { - m_shared->setBarColor(baseColor, heightColor, depthColor, uniform); + m_shared->setObjectColor(baseColor, heightColor, depthColor, uniform); } void DeclarativeScatter::setFontSize(float fontsize) diff --git a/src/datavis3dqml2/declarativescatter_p.h b/src/datavis3dqml2/declarativescatter_p.h index a1e59d18..d64c6811 100644 --- a/src/datavis3dqml2/declarativescatter_p.h +++ b/src/datavis3dqml2/declarativescatter_p.h @@ -60,10 +60,10 @@ public: // Duplicated here to be able to use the same enums enum SelectionMode { ModeNone = 0, - ModeBar, - ModeBarAndRow, - ModeBarAndColumn, - ModeBarRowAndColumn, + ModeItem, + ModeItemAndRow, + ModeItemAndColumn, + ModeItemRowAndColumn, ModeZoomRow, ModeZoomColumn }; @@ -93,10 +93,9 @@ public: QAbstractItemModel *data(); // dot type - // TODO: Rename setBarType -> setItemType / setObjectType / setXXXType - Q_INVOKABLE void setBarType(BarStyle style, bool smooth = false); + Q_INVOKABLE void setObjectType(MeshStyle style, bool smooth = false); - // override bar type with own mesh + // override object type with own mesh Q_INVOKABLE void setMeshFileName(const QString &objFileName); // Select preset camera placement @@ -107,16 +106,16 @@ public: // percentage (10...500)) Q_INVOKABLE void setCameraPosition(qreal horizontal, qreal vertical, int distance); - // Set theme (bar colors, shaders, window color, background colors, light intensity and text + // Set theme (object colors, shaders, window color, background colors, light intensity and text // colors are affected) Q_INVOKABLE void setTheme(ColorTheme theme); // Set color if you don't want to use themes. Set uniform to false if you want the (height) // color to change from bottom to top - Q_INVOKABLE void setBarColor(QColor baseColor, QColor heightColor, QColor depthColor, - bool uniform = true); + Q_INVOKABLE void setObjectColor(QColor baseColor, QColor heightColor, QColor depthColor, + bool uniform = true); - // Change selection mode; single bar, bar and row, bar and column, or all + // Change selection mode void setSelectionMode(SelectionMode mode); SelectionMode selectionMode(); |