| 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 | \l {QQuick3D::idealSurfaceFormat()}). |
| 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 | |