1 | // Copyright (C) 2023 The Qt Company Ltd. |
2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only |
3 | #include <QtGraphs/qgraphs3dnamespace.h> |
4 | QT_BEGIN_NAMESPACE |
5 | /*! |
6 | \namespace QtGraphs3D |
7 | \inmodule QtGraphs |
8 | \ingroup graphs_3D |
9 | \brief The QtGraphs3D module provides enums used by QtGraphs' 3D API. |
10 | |
11 | */ |
12 | |
13 | /*! |
14 | \enum QtGraphs3D::SelectionFlag |
15 | |
16 | Item selection modes. Values of this enumeration can be combined with OR |
17 | operator. |
18 | |
19 | \value None |
20 | Selection mode disabled. |
21 | \value Item |
22 | Selection highlights a single item. |
23 | \value Row |
24 | Selection highlights a single row. |
25 | \value ItemAndRow |
26 | Combination flag for highlighting both item and row with different colors. |
27 | \value Column |
28 | Selection highlights a single column. |
29 | \value ItemAndColumn |
30 | Combination flag for highlighting both item and column with different colors. |
31 | \value RowAndColumn |
32 | Combination flag for highlighting both row and column. |
33 | \value ItemRowAndColumn |
34 | Combination flag for highlighting item, row, and column. |
35 | \value Slice |
36 | Setting this mode flag indicates that the graph should take care of the slice view handling |
37 | automatically. If you wish to control the slice view yourself via Q3DScene, do not set this |
38 | flag. When setting this mode flag, either \c Row or \c Column must also |
39 | be set, but not both. Slicing is supported by Q3DBarsWidgetItem and Q3DSurfaceWidgetItem only. |
40 | When this flag is set, slice mode is entered in the following situations: |
41 | \list |
42 | \li When selection is changed explicitly via series API to a visible item |
43 | \li When selection is changed by clicking on the graph |
44 | \li When the selection mode changes and the selected item is visible |
45 | \endlist |
46 | \value MultiSeries |
47 | Setting this mode means that items for all series at same position are highlighted, instead |
48 | of just the selected item. The actual selection in the other series doesn't change. |
49 | When setting this mode flag, one or more of the basic selection flags (\c {Item}, |
50 | \c {Row}, or \c Column) must also be set. |
51 | Multi-series selection is not supported for Q3DScatterWidgetItem. |
52 | */ |
53 | |
54 | /*! |
55 | \enum QtGraphs3D::ShadowQuality |
56 | |
57 | Quality of shadows. |
58 | |
59 | \value None |
60 | Shadows are disabled. |
61 | \value Low |
62 | Shadows are rendered in low quality. |
63 | \value Medium |
64 | Shadows are rendered in medium quality. |
65 | \value High |
66 | Shadows are rendered in high quality. |
67 | \value SoftLow |
68 | Shadows are rendered in low quality with softened edges. |
69 | \value SoftMedium |
70 | Shadows are rendered in medium quality with softened edges. |
71 | \value SoftHigh |
72 | Shadows are rendered in high quality with softened edges. |
73 | */ |
74 | |
75 | /*! |
76 | \enum QtGraphs3D::ElementType |
77 | |
78 | Type of an element in the graph. |
79 | |
80 | \value None |
81 | No defined element. |
82 | \value Series |
83 | An item in a series. |
84 | \value AxisXLabel |
85 | The x-axis label. |
86 | \value AxisYLabel |
87 | The y-axis label. |
88 | \value AxisZLabel |
89 | The z-axis label. |
90 | \value CustomItem |
91 | A custom item. |
92 | */ |
93 | |
94 | /*! |
95 | \enum QtGraphs3D::OptimizationHint |
96 | |
97 | The optimization hint for rendering. |
98 | |
99 | \value Default |
100 | Provides the full feature set with instancing at a good performance. |
101 | \value Legacy |
102 | Provides the full feature set at a reasonable performance. To be used if |
103 | OptimizationHint.Default performs poorly or does not work. |
104 | */ |
105 | |
106 | /*! |
107 | \enum QtGraphs3D::CameraPreset |
108 | |
109 | Predefined positions for camera. |
110 | |
111 | \value NoPreset |
112 | Used to indicate a preset has not been set, or the scene has been rotated freely. |
113 | \value FrontLow |
114 | Both x and y rotations of the camera are 0. |
115 | \value Front |
116 | X rotation is 0 and y rotation is 22.5 degrees. |
117 | \value FrontHigh |
118 | X rotation is 0 and y rotation is 45 degrees. |
119 | \value LeftLow |
120 | X rotation is 90 and y rotation is 0 degrees. |
121 | \value Left |
122 | X rotation is 90 and y rotation is 22.5 degrees. |
123 | \value LeftHigh |
124 | X rotation is 90 and y rotation is 45 degrees. |
125 | \value RightLow |
126 | X rotation is -90 and y rotation is 0 degrees. |
127 | \value Right |
128 | X rotation is -90 and y rotation is 22.5 degrees. |
129 | \value RightHigh |
130 | X rotation is -90 and y rotation is 45 degrees. |
131 | \value BehindLow |
132 | X rotation is 180 and y rotation is 0 degrees. |
133 | \value Behind |
134 | X rotation is 180 and y rotation is 22.5 degrees. |
135 | \value BehindHigh |
136 | X rotation is 180 and y rotation is 45 degrees. |
137 | \value IsometricLeft |
138 | X rotation is 45 and y rotation is 22.5 degrees. |
139 | \value IsometricLeftHigh |
140 | X rotation is 45 and y rotation is 45 degrees. |
141 | \value IsometricRight |
142 | X rotation is -45 and y rotation is 22.5 degrees. |
143 | \value IsometricRightHigh |
144 | X rotation is -45 and y rotation is 45 degrees. |
145 | \value DirectlyAbove |
146 | X rotation is 0 and y rotation is 90 degrees. |
147 | \value DirectlyAboveCW45 |
148 | X rotation is -45 and y rotation is 90 degrees. |
149 | \value DirectlyAboveCCW45 |
150 | X rotation is 45 and y rotation is 90 degrees. |
151 | \value FrontBelow |
152 | X rotation is 0 and y rotation is -45 degrees. |
153 | In Q3DBarsWidgetItem from FrontBelow onward these only work for graphs including negative |
154 | values. They act as CameraPreset...Low for positive-only values. |
155 | \value LeftBelow |
156 | X rotation is 90 and y rotation is -45 degrees. |
157 | \value RightBelow |
158 | X rotation is -90 and y rotation is -45 degrees. |
159 | \value BehindBelow |
160 | X rotation is 180 and y rotation is -45 degrees. |
161 | \value DirectlyBelow |
162 | X rotation is 0 and y rotation is -90 degrees. |
163 | Acts as FrontLow for positive-only bars. |
164 | |
165 | */ |
166 | |
167 | /*! |
168 | \enum QtGraphs3D::GridLineType |
169 | |
170 | \value Shader |
171 | Grid lines are rendered with GPU in a shader. |
172 | \value Geometry |
173 | Grid lines are rendered with 3D models. |
174 | */ |
175 | |
176 | /*! |
177 | \enum QtGraphs3D::RenderingMode |
178 | |
179 | \value DirectToBackground |
180 | Indicates that the graph will be rendered directly on the window |
181 | background and QML items are rendered on top of it. Using non-transparent QML |
182 | item as a background will hide the graph. Clears the whole window before |
183 | rendering the graph, including the areas outside the graph. If the surface |
184 | format of the window supports antialiasing, it will be used (see |
185 | \c {qDefaultSurfaceFormat()}). |
186 | This rendering mode offers the best performance at the expense of |
187 | non-standard QML behavior. For example, the graphs do not obey the z ordering |
188 | of QML items and the opacity value has no effect on them. |
189 | |
190 | \value Indirect |
191 | Indicates the graph will be first rendered to an offscreen surface |
192 | that is then drawn during normal QML item rendering. The rendered image is |
193 | antialiased using the multisampling method if it is supported in the current |
194 | environment and the msaaSamples property value is greater than zero. |
195 | This rendering mode offers good quality and normal QML item behavior at the |
196 | expense of performance. |
197 | */ |
198 | |
199 | QT_END_NAMESPACE |
200 | |