diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-11-05 13:57:18 +0200 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-11-07 09:43:46 +0200 |
commit | a61c6ee6533dca6723320c3955773cc5ccbfe2fa (patch) | |
tree | e459aa85f88da5f2a0e23c34266baecd2db5d1b8 /src/datavisualization/global | |
parent | 9266f124979fa8a4fe7d8b2fb2db496b26aeeda9 (diff) |
Gradient support Part 1
TODO:
- Finish scatter
- QML (maybe left until data set is sorted, though)
Change-Id: I87a8117cb29f147080e0662c55b1098cb2e71689
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'src/datavisualization/global')
3 files changed, 38 insertions, 8 deletions
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. +*/ |