1/****************************************************************************
2**
3** Copyright (C) 2016 The Qt Company Ltd.
4** Contact: https://www.qt.io/licensing/
5**
6** This file is part of the Qt Data Visualization module of the Qt Toolkit.
7**
8** $QT_BEGIN_LICENSE:GPL$
9** Commercial License Usage
10** Licensees holding valid commercial Qt licenses may use this file in
11** accordance with the commercial license agreement provided with the
12** Software or, alternatively, in accordance with the terms contained in
13** a written agreement between you and The Qt Company. For licensing terms
14** and conditions see https://www.qt.io/terms-conditions. For further
15** information use the contact form at https://www.qt.io/contact-us.
16**
17** GNU General Public License Usage
18** Alternatively, this file may be used under the terms of the GNU
19** General Public License version 3 or (at your option) any later version
20** approved by the KDE Free Qt Foundation. The licenses are as published by
21** the Free Software Foundation and appearing in the file LICENSE.GPL3
22** included in the packaging of this file. Please review the following
23** information to ensure the GNU General Public License requirements will
24** be met: https://www.gnu.org/licenses/gpl-3.0.html.
25**
26** $QT_END_LICENSE$
27**
28****************************************************************************/
29
30//
31// W A R N I N G
32// -------------
33//
34// This file is not part of the QtDataVisualization API. It exists purely as an
35// implementation detail. This header file may change from version to
36// version without notice, or even be removed.
37//
38// We mean it.
39
40#ifndef BARRENDERITEM_P_H
41#define BARRENDERITEM_P_H
42
43#include "abstractrenderitem_p.h"
44
45QT_BEGIN_NAMESPACE_DATAVISUALIZATION
46
47class BarRenderItem : public AbstractRenderItem
48{
49public:
50 BarRenderItem();
51 BarRenderItem(const BarRenderItem &other);
52 virtual ~BarRenderItem();
53
54 // Position relative to data window (for bar label generation)
55 inline void setPosition(const QPoint &pos) { m_position = pos; }
56 inline const QPoint &position() const { return m_position; }
57
58 // Actual cached data value of the bar (needed to trigger label reformats)
59 inline void setValue(float value) { m_value = value; }
60 inline float value() const { return m_value; }
61
62 // Normalized bar height
63 inline void setHeight(GLfloat height) { m_height = height; }
64 inline GLfloat height() const { return m_height; }
65
66protected:
67 float m_value;
68 QPoint m_position; // x = row, y = column
69 GLfloat m_height;
70
71 friend class QBarDataItem;
72};
73
74class BarRenderSliceItem : public BarRenderItem
75{
76public:
77 BarRenderSliceItem();
78 BarRenderSliceItem(const BarRenderSliceItem &other);
79 virtual ~BarRenderSliceItem();
80
81 void setItem(const BarRenderItem &renderItem);
82
83 // Label item for formatted label
84 LabelItem &sliceLabelItem();
85
86 // Formatted label for item.
87 void setSliceLabel(const QString &label);
88 const QString &sliceLabel() const; // Formats label if not previously formatted
89
90protected:
91 QString m_sliceLabel;
92 LabelItem *m_sliceLabelItem;
93 bool m_isNull;
94};
95
96typedef QVector<BarRenderItem> BarRenderItemRow;
97typedef QVector<BarRenderItemRow> BarRenderItemArray;
98
99QT_END_NAMESPACE_DATAVISUALIZATION
100
101#endif
102

source code of qtdatavis3d/src/datavisualization/data/barrenderitem_p.h