From a61c6ee6533dca6723320c3955773cc5ccbfe2fa Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Tue, 5 Nov 2013 13:57:18 +0200 Subject: Gradient support Part 1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit TODO: - Finish scatter - QML (maybe left until data set is sorted, though) Change-Id: I87a8117cb29f147080e0662c55b1098cb2e71689 Reviewed-by: Tomi Korpipää --- .../global/datavisualizationglobal_p.h | 24 ++++++++++++++-------- .../global/qdatavisualizationenums.h | 7 +++++++ .../global/qtdatavisualizationenums.qdoc | 15 ++++++++++++++ 3 files changed, 38 insertions(+), 8 deletions(-) (limited to 'src/datavisualization/global') diff --git a/src/datavisualization/global/datavisualizationglobal_p.h b/src/datavisualization/global/datavisualizationglobal_p.h index ce616ee7..cd1450f4 100644 --- a/src/datavisualization/global/datavisualizationglobal_p.h +++ b/src/datavisualization/global/datavisualizationglobal_p.h @@ -39,17 +39,25 @@ QT_DATAVISUALIZATION_BEGIN_NAMESPACE // Constants used in several files // Distance from camera to origin -const GLfloat cameraDistance = 6.0f; +static const GLfloat cameraDistance = 6.0f; // Size of font to be used in label texture rendering. Doesn't affect the actual font size. -const int textureFontSize = 50; -const GLfloat defaultRatio = 1.0f / 1.6f; // default aspect ratio 16:10 -const float gridLineOffset = 0.0001f; // Offset for lifting grid lines off background +static const int textureFontSize = 50; +static const GLfloat defaultRatio = 1.0f / 1.6f; // default aspect ratio 16:10 +static const float gridLineOffset = 0.0001f; // Offset for lifting grid lines off background // Default light position. To have shadows working correctly, light should be as far as camera, or a bit further // y position is added to the minimum height (or can be thought to be that much above or below the camera) -const QVector3D defaultLightPos(0.0f, 0.5f, 0.0f); -const QVector3D zeroVector(0.0f, 0.0f, 0.0f); -const QVector3D upVector(0.0f, 1.0f, 0.0f); -const QVector3D cameraDistanceVector(0.0f, 0.0f, cameraDistance); +static const QVector3D defaultLightPos(0.0f, 0.5f, 0.0f); +static const QVector3D zeroVector(0.0f, 0.0f, 0.0f); +static const QVector3D upVector(0.0f, 1.0f, 0.0f); +static const QVector3D cameraDistanceVector(0.0f, 0.0f, cameraDistance); + +// Skip color == selection texture's background color +static const QVector3D selectionSkipColor = QVector3D(255.0f, 255.0f, 255.0f); +static const QVector3D invalidColorVector = QVector3D(-1.0f, -1.0f, -1.0f); +static const GLfloat gradientTextureHeight = 1024.0f; +static const GLfloat gradientTextureWidth = 2.0f; +// Relative margin for avoiding gradient overflow +static const GLfloat gradientMargin = 1.0f / gradientTextureHeight; QT_DATAVISUALIZATION_END_NAMESPACE diff --git a/src/datavisualization/global/qdatavisualizationenums.h b/src/datavisualization/global/qdatavisualizationenums.h index 943b756e..fd6b28e1 100644 --- a/src/datavisualization/global/qdatavisualizationenums.h +++ b/src/datavisualization/global/qdatavisualizationenums.h @@ -34,6 +34,7 @@ class QT_DATAVISUALIZATION_EXPORT QDataVis : public QObject Q_ENUMS(ShadowQuality) Q_ENUMS(LabelStyle) Q_FLAGS(SelectionFlag SelectionFlags) + Q_ENUMS(ColorStyle) public: enum InputState { @@ -124,6 +125,12 @@ public: LabelStyleFromTheme, LabelStyleTransparent }; + + enum ColorStyle { + ColorStyleUniform = 0, + ColorStyleObjectGradient, + ColorStyleRangeGradient + }; }; Q_DECLARE_OPERATORS_FOR_FLAGS(QDataVis::SelectionFlags) diff --git a/src/datavisualization/global/qtdatavisualizationenums.qdoc b/src/datavisualization/global/qtdatavisualizationenums.qdoc index 6449f209..94db4835 100644 --- a/src/datavisualization/global/qtdatavisualizationenums.qdoc +++ b/src/datavisualization/global/qtdatavisualizationenums.qdoc @@ -192,3 +192,18 @@ \value LabelStyleTransparent Fully transparent background, using text color from theme. */ + +/*! + \enum QtDataVisualization::QDataVis::ColorStyle + + Color styles. + + \value ColorStyleUniform + Objects are rendered in a single color. + \value ColorStyleObjectGradient + Objects are colored using a full gradient for each object regardless + of object height. + \value ColorStyleRangeGradient + Objects are colored using a portion of the full gradient determined by + the object's height and its position on the Y-axis. +*/ -- cgit v1.2.3