From 914b197fc127c6e5c2649ac28c64580f17409794 Mon Sep 17 00:00:00 2001 From: Pierre Fernique Date: Fri, 5 Apr 2019 16:34:06 +0200 Subject: [PATCH 1/2] add current_field_name accessor --- .../dtkVisualizationDecoratorScalarColorMap.cpp | 5 +++++ .../dtkVisualizationDecoratorScalarColorMap.h | 1 + .../dtkVisualizationDecoratorScalarGlyphs.cpp | 11 ++++++++++- .../dtkVisualizationDecoratorScalarGlyphs.h | 1 + 4 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/dtkVisualization/dtkVisualizationDecoratorScalarColorMap.cpp b/src/dtkVisualization/dtkVisualizationDecoratorScalarColorMap.cpp index c07e5b3..958d5b4 100644 --- a/src/dtkVisualization/dtkVisualizationDecoratorScalarColorMap.cpp +++ b/src/dtkVisualization/dtkVisualizationDecoratorScalarColorMap.cpp @@ -335,6 +335,11 @@ void dtkVisualizationDecoratorScalarColorMap::hide(void) { } } +QString dtkVisualizationDecoratorScalarColorMap::currentFieldName() const +{ + return d->current_field_name; +} + bool dtkVisualizationDecoratorScalarColorMap::setCurrentFieldName(const QString& scalar_field_name) { if (scalar_field_name.isEmpty()) { diff --git a/src/dtkVisualization/dtkVisualizationDecoratorScalarColorMap.h b/src/dtkVisualization/dtkVisualizationDecoratorScalarColorMap.h index aff46e6..937c43a 100644 --- a/src/dtkVisualization/dtkVisualizationDecoratorScalarColorMap.h +++ b/src/dtkVisualization/dtkVisualizationDecoratorScalarColorMap.h @@ -42,6 +42,7 @@ public: void hide(void); protected: + QString currentFieldName() const; bool setCurrentFieldName(const QString&); void draw(void) override; diff --git a/src/dtkVisualization/dtkVisualizationDecoratorScalarGlyphs.cpp b/src/dtkVisualization/dtkVisualizationDecoratorScalarGlyphs.cpp index 4c757e9..9a6e9df 100644 --- a/src/dtkVisualization/dtkVisualizationDecoratorScalarGlyphs.cpp +++ b/src/dtkVisualization/dtkVisualizationDecoratorScalarGlyphs.cpp @@ -188,7 +188,6 @@ void dtkVisualizationDecoratorScalarGlyphs::setData(const QVariant& data) if (d->eligible_field_names.size() > 0) { d->eligible_field_names.sort(); - if(d->fields_box) { d->fields_box->clear(); d->fields_box->addItems(d->eligible_field_names); @@ -397,6 +396,11 @@ void dtkVisualizationDecoratorScalarGlyphs::hide(void) { } } +QString dtkVisualizationDecoratorScalarGlyphs::currentFieldName() const +{ + return d->current_field_name; +} + bool dtkVisualizationDecoratorScalarGlyphs::setCurrentFieldName(const QString& scalar_field_name) { if (scalar_field_name.isEmpty()) { @@ -464,6 +468,11 @@ bool dtkVisualizationDecoratorScalarGlyphs::setCurrentFieldName(const QString& s d->mapper->Modified(); d->actor->Modified(); + if (this->canvas() && this->canvas()->interactor()) { + this->canvas()->interactor()->Render(); + this->canvas()->renderer()->GetRenderWindow()->Render(); + } + emit this->currentGlyphsSizeChanged(glyphs_size); emit this->currentGlyphsSourceChanged(glyphs_source); diff --git a/src/dtkVisualization/dtkVisualizationDecoratorScalarGlyphs.h b/src/dtkVisualization/dtkVisualizationDecoratorScalarGlyphs.h index 4ef05b1..e609530 100644 --- a/src/dtkVisualization/dtkVisualizationDecoratorScalarGlyphs.h +++ b/src/dtkVisualization/dtkVisualizationDecoratorScalarGlyphs.h @@ -53,6 +53,7 @@ signals: void currentGlyphsSourceChanged(const QString&); protected: + QString currentFieldName() const; bool setCurrentFieldName(const QString&); void draw(void) override; -- GitLab From 83628b913e5dd26e02b78ec744c8d9d9ad9f2c49 Mon Sep 17 00:00:00 2001 From: Pierre Fernique Date: Wed, 10 Apr 2019 16:34:08 +0200 Subject: [PATCH 2/2] Remove support for glyphs --- .../dtkVisualizationViewer.cpp | 2 +- ...tkVisualizationDecoratorScalarColorMap.cpp | 37 ++----------------- .../dtkVisualizationDecoratorScalarGlyphs.cpp | 6 +++ 3 files changed, 10 insertions(+), 35 deletions(-) diff --git a/app/dtkVisualizationViewer/dtkVisualizationViewer.cpp b/app/dtkVisualizationViewer/dtkVisualizationViewer.cpp index 849bfad..cf11b8c 100644 --- a/app/dtkVisualizationViewer/dtkVisualizationViewer.cpp +++ b/app/dtkVisualizationViewer/dtkVisualizationViewer.cpp @@ -162,7 +162,7 @@ void dtkVisualizationViewer::importDataSet(const QString& path) dtkVisualizationDecoratorScalarIsolines *decorator_scalar_isolines = new dtkVisualizationDecoratorScalarIsolines; dtkVisualizationDecoratorScalarGlyphs *decorator_scalar_glyphs = new dtkVisualizationDecoratorScalarGlyphs; - decorator_clut_editor->setName("my clut editor"); + // decorator_clut_editor->setName("my clut editor"); //chain all decorators *decorator_clut_editor << *decorator_scalar_isolines << *decorator_scalar_glyphs << *decorator_scalar_color_map ; diff --git a/src/dtkVisualization/dtkVisualizationDecoratorScalarColorMap.cpp b/src/dtkVisualization/dtkVisualizationDecoratorScalarColorMap.cpp index e493ff4..34d4106 100644 --- a/src/dtkVisualization/dtkVisualizationDecoratorScalarColorMap.cpp +++ b/src/dtkVisualization/dtkVisualizationDecoratorScalarColorMap.cpp @@ -46,12 +46,6 @@ class dtkVisualizationDecoratorScalarColorMapPrivate { -public: - enum Support { - Point, - Cell - }; - public: QStringList eligible_field_names; QString current_field_name; @@ -66,10 +60,6 @@ public: public: vtkSmartPointer actor; vtkSmartPointer mapper; - - -public: - QHash supports; }; // /////////////////////////////////////////////////////////////////// @@ -100,11 +90,8 @@ dtkVisualizationDecoratorScalarColorMap::~dtkVisualizationDecoratorScalarColorMa void dtkVisualizationDecoratorScalarColorMap::draw(void) { - if (d->supports[d->current_field_name] == dtkVisualizationDecoratorScalarColorMapPrivate::Support::Point) { - d->dataset->GetPointData()->SetActiveScalars(qPrintable(d->current_field_name)); - } else if (d->supports[d->current_field_name] == dtkVisualizationDecoratorScalarColorMapPrivate::Support::Cell) { - d->dataset->GetCellData()->SetActiveScalars(qPrintable(d->current_field_name)); - } + d->dataset->GetPointData()->SetActiveScalars(qPrintable(d->current_field_name)); + if (!d->dataset || d->current_field_name.isEmpty()) { dtkWarn() << Q_FUNC_INFO << "Set dataset and field name before updating actor."; return; @@ -134,30 +121,16 @@ void dtkVisualizationDecoratorScalarColorMap::setData(const QVariant& data) d->current_field_name.clear(); d->eligible_field_names.clear(); - d->supports.clear(); vtkIdType number_of_point_arrays = d->dataset->GetPointData()->GetNumberOfArrays(); for (vtkIdType i = 0; i < number_of_point_arrays; ++i) { if (d->dataset->GetPointData()->GetArray(i)->GetNumberOfComponents() == 1) { QString field_name = QString::fromUtf8(d->dataset->GetPointData()->GetArrayName(i)); d->eligible_field_names << field_name; - d->supports[field_name] = dtkVisualizationDecoratorScalarColorMapPrivate::Support::Point; - d->dataset->GetPointData()->SetActiveScalars(qPrintable(field_name)); } } - vtkIdType number_of_cell_arrays = d->dataset->GetCellData()->GetNumberOfArrays(); - for (vtkIdType i = 0; i < number_of_cell_arrays; ++i) { - if (d->dataset->GetCellData()->GetArray(i)->GetNumberOfComponents() == 1) { - QString field_name = QString::fromUtf8(d->dataset->GetCellData()->GetArrayName(i)); - d->eligible_field_names << field_name; - d->supports[field_name] = dtkVisualizationDecoratorScalarColorMapPrivate::Support::Cell; - - d->dataset->GetCellData()->SetActiveScalars(qPrintable(field_name)); - } - } - if (d->eligible_field_names.size() > 0) { d->eligible_field_names.sort(); @@ -363,11 +336,7 @@ bool dtkVisualizationDecoratorScalarColorMap::setCurrentFieldName(const QString& d->current_field_name = scalar_field_name; - if (d->supports[d->current_field_name] == dtkVisualizationDecoratorScalarColorMapPrivate::Support::Point) { - d->dataset->GetPointData()->SetActiveScalars(qPrintable(d->current_field_name)); - } else if (d->supports[d->current_field_name] == dtkVisualizationDecoratorScalarColorMapPrivate::Support::Cell) { - d->dataset->GetCellData()->SetActiveScalars(qPrintable(d->current_field_name)); - } + d->dataset->GetPointData()->SetActiveScalars(qPrintable(d->current_field_name)); vtkSmartPointer color_function; QPair range; diff --git a/src/dtkVisualization/dtkVisualizationDecoratorScalarGlyphs.cpp b/src/dtkVisualization/dtkVisualizationDecoratorScalarGlyphs.cpp index 6e25246..51cfe5c 100644 --- a/src/dtkVisualization/dtkVisualizationDecoratorScalarGlyphs.cpp +++ b/src/dtkVisualization/dtkVisualizationDecoratorScalarGlyphs.cpp @@ -133,6 +133,12 @@ dtkVisualizationDecoratorScalarGlyphs::~dtkVisualizationDecoratorScalarGlyphs(vo void dtkVisualizationDecoratorScalarGlyphs::draw(void) { + if (d->supports[d->current_field_name] == dtkVisualizationDecoratorScalarGlyphsPrivate::Support::Point) { + d->dataset->GetPointData()->SetActiveScalars(qPrintable(d->current_field_name)); + } else if (d->supports[d->current_field_name] == dtkVisualizationDecoratorScalarGlyphsPrivate::Support::Cell) { + d->dataset->GetCellData()->SetActiveScalars(qPrintable(d->current_field_name)); + } + if (!d->dataset || d->current_field_name.isEmpty()) { dtkWarn() << Q_FUNC_INFO << "Set dataset and field name before updating actor."; return; -- GitLab