QAD::Graphic3D

This commit is contained in:
2023-10-23 18:59:16 +03:00
parent 1c857eebff
commit 0e9ca837d1
3 changed files with 18 additions and 7 deletions

View File

@@ -7,6 +7,7 @@ Create imported targets:
* QAD::Blockview * QAD::Blockview
* QAD::Graphic * QAD::Graphic
* QAD::GraphicAnalysis * QAD::GraphicAnalysis
* QAD::Graphic3D
* QAD::SQLTable * QAD::SQLTable
* QAD::TouchWidgets * QAD::TouchWidgets
* QAD::Doc * QAD::Doc
@@ -45,7 +46,7 @@ if(QAD_FIND_VERSION VERSION_GREATER QAD_VERSION)
message(FATAL_ERROR "QAD version ${QAD_VERSION} is available, but ${QAD_FIND_VERSION} requested!") message(FATAL_ERROR "QAD version ${QAD_VERSION} is available, but ${QAD_FIND_VERSION} requested!")
endif() endif()
set(__libs "utils;widgets;application;blockview;graphic;graphic_analysis;sql;sql_table;touch_widgets;doc;map") set(__libs "utils;widgets;application;blockview;graphic;graphic_analysis;graphic3d;sql;sql_table;touch_widgets;doc;map")
if (PIP_FOUND OR BUILDING_PIP) if (PIP_FOUND OR BUILDING_PIP)
list(APPEND __libs "piqt;piqt_utils") list(APPEND __libs "piqt;piqt_utils")
endif() endif()
@@ -56,6 +57,7 @@ set(__module_application Application )
set(__module_blockview Blockview ) set(__module_blockview Blockview )
set(__module_graphic Graphic ) set(__module_graphic Graphic )
set(__module_graphic_analysis GraphicAnalysis) set(__module_graphic_analysis GraphicAnalysis)
set(__module_graphic3d Graphic3D )
set(__module_sql SQL ) set(__module_sql SQL )
set(__module_sql_table SQLTable ) set(__module_sql_table SQLTable )
set(__module_touch_widgets TouchWidgets ) set(__module_touch_widgets TouchWidgets )

View File

@@ -20,7 +20,7 @@ Scatter3D::Scatter3D(QWidget * parent): QWidget{parent} {
Scatter3D::~Scatter3D() { Scatter3D::~Scatter3D() {
clear(); // clear();
canvas->setParent(nullptr); canvas->setParent(nullptr);
canvas->deleteLater(); canvas->deleteLater();
} }
@@ -114,7 +114,7 @@ void Scatter3D::setLabelAutoRotation(bool on) {
void Scatter3D::setGraphicData(const QVector<QVector3D> & points, int index) { void Scatter3D::setGraphicData(const QVector<QVector3D> & points, int index) {
auto arr = new QtDataVisualization::QScatterDataArray(); auto arr = new DataArray();
arr->reserve(points.size()); arr->reserve(points.size());
for (const auto & p: points) { for (const auto & p: points) {
arr->append(p); arr->append(p);
@@ -124,7 +124,12 @@ void Scatter3D::setGraphicData(const QVector<QVector3D> & points, int index) {
} }
void Scatter3D::setGraphicData(DataArray * newArray, int index) {
graphics[index].data->resetArray(newArray);
container->update();
}
void Scatter3D::addPoint(const QVector3D & point, int index) { void Scatter3D::addPoint(const QVector3D & point, int index) {
graphics[index].data->addItem(point); graphics[index].data->addItem(point);
} }

View File

@@ -17,8 +17,8 @@
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef SCATTER_H #ifndef SCATTER3D_H
#define SCATTER_H #define SCATTER3D_H
#include "qad_graphic3d_export.h" #include "qad_graphic3d_export.h"
@@ -29,12 +29,14 @@ namespace QtDataVisualization {
class Q3DScatter; class Q3DScatter;
class QScatterDataProxy; class QScatterDataProxy;
class QScatter3DSeries; class QScatter3DSeries;
class QScatterDataItem;
} // namespace QtDataVisualization } // namespace QtDataVisualization
class QAD_GRAPHIC3D_EXPORT Scatter3D: public QWidget { class QAD_GRAPHIC3D_EXPORT Scatter3D: public QWidget {
Q_OBJECT Q_OBJECT
using Mesh = QtDataVisualization::QAbstract3DSeries::Mesh; using Mesh = QtDataVisualization::QAbstract3DSeries::Mesh;
using DataArray = QVector<QtDataVisualization::QScatterDataItem>;
Q_PROPERTY(int currentGraphic READ currentGraphic WRITE setCurrentGraphic) Q_PROPERTY(int currentGraphic READ currentGraphic WRITE setCurrentGraphic)
Q_PROPERTY(int graphicsCount READ graphicsCount WRITE setGraphicsCount) Q_PROPERTY(int graphicsCount READ graphicsCount WRITE setGraphicsCount)
@@ -71,6 +73,8 @@ public slots:
void setLabelAutoRotation(bool on); void setLabelAutoRotation(bool on);
void setGraphicData(const QVector<QVector3D> & points, int index); void setGraphicData(const QVector<QVector3D> & points, int index);
void setGraphicData(const QVector<QVector3D> & points) { setGraphicData(points, curGraphic); } void setGraphicData(const QVector<QVector3D> & points) { setGraphicData(points, curGraphic); }
void setGraphicData(DataArray *newArray, int index);
void setGraphicData(DataArray *newArray) { setGraphicData(newArray, curGraphic); }
void addPoint(const QVector3D & point, int index); void addPoint(const QVector3D & point, int index);
void addPoint(const QVector3D & point) { addPoint(point, curGraphic); } void addPoint(const QVector3D & point) { addPoint(point, curGraphic); }
@@ -87,4 +91,4 @@ private:
int curGraphic; int curGraphic;
}; };
#endif // SCATTER_H #endif // SCATTER3D_H