1#ifndef QWT3D_SURFACE_P_H
2#define QWT3D_SURFACE_P_H
4#include "qwt3d_surface.h"
5#include "qwt3d_types.h"
7#include <QOpenGLBuffer>
8#include <QOpenGLVertexArrayObject>
9#include <QOpenGLShaderProgram>
30class Qwt3DSurface::PrivateData
44 double m_normalLength;
51 FLOORSTYLE m_floorStyle;
54 PLOTSTYLE m_plotStyle;
55 SHADINGSTYLE m_shading;
58 double m_meshLineWidth;
60 bool m_smoothDataMesh;
61 double m_polygonOffset;
64 std::list<Qwt3DEnrichment*> m_enrichmentList;
68 bool m_shaderInitialized;
69 QOpenGLBuffer m_vertexBuffer;
70 QOpenGLBuffer m_indexBuffer;
71 QOpenGLVertexArrayObject m_vao;
72 QOpenGLShaderProgram m_shader;
83inline Qwt3DSurface::PrivateData::PrivateData(
Qwt3DSurface* q)
85 , m_actualDataG(nullptr)
86 , m_actualDataC(nullptr)
87 , m_dataNormals(false)
88 , m_normalLength(0.02)
91 , m_floorStyle(NOFLOOR)
92 , m_plotStyle(FILLEDMESH)
94 , m_dataColor(nullptr)
95 , m_meshColor(
RGBA(0.0, 0.0, 0.0, 1.0))
96 , m_meshLineWidth(1.0)
98 , m_smoothDataMesh(false)
99 , m_polygonOffset(0.5)
101 , m_shaderInitialized(false)
103 , m_lineIndexCount(0)
111 m_indexBuffer = QOpenGLBuffer(QOpenGLBuffer::IndexBuffer);
114inline Qwt3DSurface::PrivateData::~PrivateData()
117 m_vertexBuffer.destroy();
118 m_indexBuffer.destroy();
122 delete m_actualDataG;
123 delete m_actualDataC;
127 m_dataColor->destroy();
131 for (
auto* e : m_enrichmentList)
133 m_enrichmentList.clear();
Implements a graph-like cell structure with limit access functions.
Definition qwt3d_types.h:481
Abstract base class for color functors.
Definition qwt3d_color.h:25
Implements a matrix of z-Values with limit access functions.
Definition qwt3d_types.h:448
3D surface plot item with VBO/VAO rendering
Definition qwt3d_surface.h:37
Parallelepiped spanned by 2 Triples.
Definition qwt3d_types.h:334
Red-Green-Blue-Alpha value.
Definition qwt3d_types.h:395
Vertex structure for VBO upload.
Definition qwt3d_surface_p.h:24
Triple [x,y,z].
Definition qwt3d_types.h:201