1#ifndef QWT3D_WATERFALL_P_H
2#define QWT3D_WATERFALL_P_H
4#include "qwt3d_waterfall.h"
5#include "qwt3d_types.h"
6#include "qwt3d_color.h"
8#include <QOpenGLBuffer>
9#include <QOpenGLVertexArrayObject>
10#include <QOpenGLShaderProgram>
41class Qwt3DWaterfall::PrivateData
57 std::vector< QVector<double> > m_traces;
60 int m_samplesPerTrace;
77 double m_outlineWidth;
80 bool m_fixedColorRange;
81 double m_colorRangeMin;
82 double m_colorRangeMax;
91 bool m_tubeShaderInitialized;
92 QOpenGLBuffer m_ribbonBuffer;
93 QOpenGLVertexArrayObject m_ribbonVAO;
94 int m_ribbonVertexCount;
95 QOpenGLBuffer m_outlineBuffer;
96 QOpenGLVertexArrayObject m_outlineVAO;
97 int m_outlineVertexCount;
98 QOpenGLBuffer m_tubeVertexBuffer;
99 QOpenGLBuffer m_tubeIndexBuffer;
100 QOpenGLVertexArrayObject m_tubeVAO;
101 QOpenGLShaderProgram m_tubeShader;
102 int m_tubeIndexCount;
108 void recalculateRanges();
115 , m_samplesPerTrace(0)
122 , m_fixedBaseline(false)
124 , m_solidColor(
RGBA(0.65, 0.65, 0.75, 1.0))
125 , m_outlineColor(
RGBA(0.15, 0.15, 0.15, 1.0))
126 , m_outlineWidth(1.0)
127 , m_fixedColorRange(false)
128 , m_colorRangeMin(0.0)
129 , m_colorRangeMax(1.0)
130 , m_dataColor(nullptr)
131 , m_ribbonDirty(true)
132 , m_outlineDirty(true)
134 , m_tubeShaderInitialized(false)
135 , m_ribbonVertexCount(0)
136 , m_outlineVertexCount(0)
137 , m_tubeIndexCount(0)
140 m_traces.resize(m_capacity);
141 m_tubeIndexBuffer = QOpenGLBuffer(QOpenGLBuffer::IndexBuffer);
144inline Qwt3DWaterfall::PrivateData::~PrivateData()
146 m_ribbonBuffer.destroy();
147 m_ribbonVAO.destroy();
148 m_outlineBuffer.destroy();
149 m_outlineVAO.destroy();
150 m_tubeVertexBuffer.destroy();
151 m_tubeIndexBuffer.destroy();
155 m_dataColor->destroy();
Definition qwt_clipper.h:41
Abstract base class for color functors.
Definition qwt3d_color.h:25
3D waterfall plot item with a built-in sliding window
Definition qwt3d_waterfall.h:42
ColorMode
Where the per-vertex color comes from.
Definition qwt3d_waterfall.h:57
PlotStyle
Geometry style of a trace.
Definition qwt3d_waterfall.h:48
DepthOrder
Depth direction of the sliding window.
Definition qwt3d_waterfall.h:65
Parallelepiped spanned by 2 Triples.
Definition qwt3d_types.h:334
Red-Green-Blue-Alpha value.
Definition qwt3d_types.h:395
Triple [x,y,z].
Definition qwt3d_types.h:201
Vertex for the Tube style (position + normal + color, 40 bytes)
Definition qwt3d_waterfall_p.h:35
Vertex for the Ribbon/RibbonMesh/Wireframe styles (position + color, 28 bytes)
Definition qwt3d_waterfall_p.h:24