Commit 404d3554 authored by NICLAUSSE Nicolas's avatar NICLAUSSE Nicolas

Merge branch 'develop' into feature/vtk-native

parents 1c0174cf 45d930bc
...@@ -301,7 +301,7 @@ void dtkVisualizationViewer::importDataSet(const QString& path) ...@@ -301,7 +301,7 @@ void dtkVisualizationViewer::importDataSet(const QString& path)
dtkVisualizationDecoratorInfo *decorator_info = new dtkVisualizationDecoratorInfo; dtkVisualizationDecoratorInfo *decorator_info = new dtkVisualizationDecoratorInfo;
dtkVisualizationDecoratorAxes *decorator_axes = new dtkVisualizationDecoratorAxes; dtkVisualizationDecoratorAxes *decorator_axes = new dtkVisualizationDecoratorAxes;
//dtkVisualizationDecoratorDelaunay2D *decorator_delaunay_2D = new dtkVisualizationDecoratorDelaunay2D; dtkVisualizationDecoratorDelaunay2D *decorator_delaunay_2D = new dtkVisualizationDecoratorDelaunay2D;
//dtkVisualizationDecoratorPoints *decorator_points = new dtkVisualizationDecoratorPoints; //dtkVisualizationDecoratorPoints *decorator_points = new dtkVisualizationDecoratorPoints;
dtkVisualizationDecoratorSurfaceColor *decorator_surface_color = new dtkVisualizationDecoratorSurfaceColor; dtkVisualizationDecoratorSurfaceColor *decorator_surface_color = new dtkVisualizationDecoratorSurfaceColor;
//dtkVisualizationDecoratorScalarGlyphs *decorator_scalar_glyphs = new dtkVisualizationDecoratorScalarGlyphs; //dtkVisualizationDecoratorScalarGlyphs *decorator_scalar_glyphs = new dtkVisualizationDecoratorScalarGlyphs;
...@@ -316,7 +316,7 @@ void dtkVisualizationViewer::importDataSet(const QString& path) ...@@ -316,7 +316,7 @@ void dtkVisualizationViewer::importDataSet(const QString& path)
QList<dtkVisualizationDecorator *> decorators; QList<dtkVisualizationDecorator *> decorators;
decorators //<< decorator_points decorators //<< decorator_points
//<< decorator_delaunay_2D << decorator_delaunay_2D
<< decorator_surface_color << decorator_surface_color
<< decorator_isocontours << decorator_isocontours
//<< decorator_scalar_glyphs //<< decorator_scalar_glyphs
......
...@@ -17,6 +17,9 @@ ...@@ -17,6 +17,9 @@
#include "dtkVisualizationMetaType.h" #include "dtkVisualizationMetaType.h"
#include "dtkVisualizationView2D.h" #include "dtkVisualizationView2D.h"
#include <dtkVisualizationWidgets/dtkVisualizationWidgetsCategory>
#include <dtkVisualizationWidgets/dtkVisualizationWidgetsColorDialog>
#include <dtkLog> #include <dtkLog>
#include <QtGui> #include <QtGui>
...@@ -56,10 +59,11 @@ public: ...@@ -56,10 +59,11 @@ public:
public: public:
bool default_visibility; bool default_visibility;
QColor default_color = QColor();
public: public:
QCheckBox *show_actor_cb = nullptr; QCheckBox *show_actor_cb = nullptr;
QPushButton *color_button = nullptr; dtkVisualizationWidgetsColorDialog *col_dialog = nullptr;
QDoubleSpinBox *opacity_spinbox = nullptr; QDoubleSpinBox *opacity_spinbox = nullptr;
public: public:
...@@ -91,43 +95,59 @@ dtkVisualizationDecoratorDelaunay2D::dtkVisualizationDecoratorDelaunay2D(void): ...@@ -91,43 +95,59 @@ dtkVisualizationDecoratorDelaunay2D::dtkVisualizationDecoratorDelaunay2D(void):
d->actor->SetMapper(d->mapper); d->actor->SetMapper(d->mapper);
d->actor->SetVisibility(d->default_visibility); d->actor->SetVisibility(d->default_visibility);
d->actor->GetProperty()->SetPointSize(30); d->actor->GetProperty()->SetPointSize(30);
d->actor->GetProperty()->SetColor(0.5,0.5,0.5); d->actor->GetProperty()->SetColor(d->default_color.red(),
d->default_color.green(),
d->default_color.blue());
////////// //////////
// Inspectors creation // Inspectors creation
d->color_button = new QPushButton("Color"); d->col_dialog = new dtkVisualizationWidgetsColorDialog;
d->opacity_spinbox = new QDoubleSpinBox; d->col_dialog->setObjectName("Color");
d->show_actor_cb = new QCheckBox;
d->opacity_spinbox = new QDoubleSpinBox;
d->opacity_spinbox->setObjectName("Opacity"); d->opacity_spinbox->setObjectName("Opacity");
d->opacity_spinbox->setRange(0, 1); d->opacity_spinbox->setRange(0, 1);
d->opacity_spinbox->setDecimals(2); d->opacity_spinbox->setDecimals(2);
d->opacity_spinbox->setSingleStep(0.01); d->opacity_spinbox->setSingleStep(0.01);
d->opacity_spinbox->setValue(1.); d->opacity_spinbox->setValue(1.);
d->show_actor_cb = new QCheckBox;
d->show_actor_cb->setObjectName("Display"); d->show_actor_cb->setObjectName("Display");
d->show_actor_cb->setChecked(d->default_visibility); d->show_actor_cb->setChecked(d->default_visibility);
////////// //////////
// Inspectors connections // Inspectors connections
connect(d->color_button, &QPushButton::released, [=] (void) { connect(d->col_dialog, &dtkVisualizationWidgetsColorDialog::colorChanged, [=] (QColor c)
double *vtk_color = d->actor->GetProperty()->GetColor(); {
QColor qt_color = QColor(vtk_color[0], vtk_color[1], vtk_color[2]); if (c.isValid()) {
qt_color = QColorDialog::getColor(qt_color, d->color_button); this->saveSettings("color", c);
this->setColor(qt_color); d->actor->GetProperty()->SetColor(c.red(), c.green(), c.blue());
this->draw();
}
}); });
connect(d->opacity_spinbox, QOverload<double>::of(&QDoubleSpinBox::valueChanged), this, &dtkVisualizationDecoratorDelaunay2D::setOpacity); connect(d->opacity_spinbox, QOverload<double>::of(&QDoubleSpinBox::valueChanged), [=] (double opacity)
{
this->saveSettings("opacity", opacity);
d->actor->GetProperty()->SetOpacity(opacity);
this->draw();
});
connect(d->show_actor_cb, &QCheckBox::stateChanged, [=] (int state) { connect(d->show_actor_cb, &QCheckBox::stateChanged, [=] (int state)
this->saveSettings("visibility",state == Qt::Checked); {
this->setVisibility(state == Qt::Checked); this->saveSettings("visibility",state == Qt::Checked);
this->draw(); this->setVisibility(state == Qt::Checked);
this->draw();
});
auto styling_box = new dtkVisualizationWidgetsCategory("Styling", {
d->col_dialog,
d->opacity_spinbox
}); });
d->inspectors << d->color_button << d->opacity_spinbox << d->show_actor_cb; d->inspectors << d->show_actor_cb << styling_box;
} }
dtkVisualizationDecoratorDelaunay2D::~dtkVisualizationDecoratorDelaunay2D(void) dtkVisualizationDecoratorDelaunay2D::~dtkVisualizationDecoratorDelaunay2D(void)
...@@ -147,7 +167,13 @@ void dtkVisualizationDecoratorDelaunay2D::restoreSettings(void) ...@@ -147,7 +167,13 @@ void dtkVisualizationDecoratorDelaunay2D::restoreSettings(void)
QSettings settings; QSettings settings;
settings.beginGroup("canvas"); settings.beginGroup("canvas");
d->default_visibility = settings.value(name+"_visibility", false).toBool(); d->default_visibility = settings.value(name+"_visibility", false).toBool();
d->default_color = QColor(settings.value(name+"_color", "").toString());
double opacity = settings.value(name+"_opacity", 1.0).toDouble();
settings.endGroup(); settings.endGroup();
this->setVisibility(d->default_visibility);
this->setColor(d->default_color);
this->setOpacity(opacity);
} }
void dtkVisualizationDecoratorDelaunay2D::touch(void) void dtkVisualizationDecoratorDelaunay2D::touch(void)
...@@ -229,7 +255,9 @@ void dtkVisualizationDecoratorDelaunay2D::setColor(const QColor& color) ...@@ -229,7 +255,9 @@ void dtkVisualizationDecoratorDelaunay2D::setColor(const QColor& color)
{ {
d->actor->GetProperty()->SetColor(color.red(), color.green(), color.blue()); d->actor->GetProperty()->SetColor(color.red(), color.green(), color.blue());
this->draw(); d->col_dialog->blockSignals(true);
d->col_dialog->setColor(d->default_color);
d->col_dialog->blockSignals(false);
} }
void dtkVisualizationDecoratorDelaunay2D::setOpacity(const double& alpha) void dtkVisualizationDecoratorDelaunay2D::setOpacity(const double& alpha)
...@@ -239,8 +267,6 @@ void dtkVisualizationDecoratorDelaunay2D::setOpacity(const double& alpha) ...@@ -239,8 +267,6 @@ void dtkVisualizationDecoratorDelaunay2D::setOpacity(const double& alpha)
d->opacity_spinbox->blockSignals(true); d->opacity_spinbox->blockSignals(true);
d->opacity_spinbox->setValue(alpha); d->opacity_spinbox->setValue(alpha);
d->opacity_spinbox->blockSignals(false); d->opacity_spinbox->blockSignals(false);
this->draw();
} }
QVariant dtkVisualizationDecoratorDelaunay2D::data(void) const QVariant dtkVisualizationDecoratorDelaunay2D::data(void) const
......
...@@ -78,10 +78,6 @@ public: ...@@ -78,10 +78,6 @@ public:
void dtkVisualizationDecoratorIsocontours::updateContours(void) void dtkVisualizationDecoratorIsocontours::updateContours(void)
{ {
if (!d_func()->show_actor_cb->isChecked()) {
return;
}
auto field_name = d_func()->current_field_name; auto field_name = d_func()->current_field_name;
if (field_name.isEmpty() || !d_func()->dataset) { if (field_name.isEmpty() || !d_func()->dataset) {
...@@ -142,25 +138,28 @@ dtkVisualizationDecoratorIsocontours::dtkVisualizationDecoratorIsocontours(void) ...@@ -142,25 +138,28 @@ dtkVisualizationDecoratorIsocontours::dtkVisualizationDecoratorIsocontours(void)
////////// //////////
// Inspectors connections // Inspectors connections
connect(d_func()->show_actor_cb, &QCheckBox::stateChanged, [=] (int state) { connect(d_func()->show_actor_cb, &QCheckBox::stateChanged, [=] (int state)
this->saveSettings("visibility",state == Qt::Checked); {
this->setVisibility(state == Qt::Checked); this->saveSettings("visibility", state == Qt::Checked);
this->draw(); this->setVisibility(state == Qt::Checked);
}); this->draw();
});
connect(d->isolines_counts_sb, QOverload<int>::of(&QSpinBox::valueChanged), [=] (int value) {
this->saveSettings("isolines_count", value); connect(d->isolines_counts_sb, QOverload<int>::of(&QSpinBox::valueChanged), [=] (int value)
this->setCurrentIsolinesCount(value); {
this->touch(); this->saveSettings("isolines_count", value);
this->draw(); this->setCurrentIsolinesCount(value);
}); this->touch();
this->draw();
connect(d->isolines_width_sb, QOverload<double>::of(&QDoubleSpinBox::valueChanged), [=] (double value) { });
this->saveSettings("isolines_line_width", value);
d->actor->GetProperty()->SetLineWidth(value); connect(d->isolines_width_sb, QOverload<double>::of(&QDoubleSpinBox::valueChanged), [=] (double value)
d->actor->Modified(); {
this->draw(); this->saveSettings("isolines_line_width", value);
}); d->actor->GetProperty()->SetLineWidth(value);
d->actor->Modified();
this->draw();
});
this->setObjectName("Isocontours"); this->setObjectName("Isocontours");
......
...@@ -36,6 +36,7 @@ ...@@ -36,6 +36,7 @@
#include <vtkDataSetMapper.h> #include <vtkDataSetMapper.h>
#include <vtkImageMapToColors.h> #include <vtkImageMapToColors.h>
#include <vtkImagePlaneWidget.h> #include <vtkImagePlaneWidget.h>
#include <vtkImageReslice.h>
#include <vtkLookupTable.h> #include <vtkLookupTable.h>
#include <vtkOutlineFilter.h> #include <vtkOutlineFilter.h>
#include <vtkPiecewiseFunction.h> #include <vtkPiecewiseFunction.h>
...@@ -91,6 +92,9 @@ public: ...@@ -91,6 +92,9 @@ public:
class dtkVisualizationDecoratorSlicesPrivate class dtkVisualizationDecoratorSlicesPrivate
{ {
public:
vtkSmartPointer<vtkImageData> input_image;
public: public:
vtkSmartPointer<vtkImagePlaneWidget> volume_slice_x; vtkSmartPointer<vtkImagePlaneWidget> volume_slice_x;
vtkSmartPointer<vtkImagePlaneWidget> volume_slice_y; vtkSmartPointer<vtkImagePlaneWidget> volume_slice_y;
...@@ -121,7 +125,7 @@ public slots: ...@@ -121,7 +125,7 @@ public slots:
void dtkVisualizationDecoratorSlicesPrivate::setupSlices(void) void dtkVisualizationDecoratorSlicesPrivate::setupSlices(void)
{ {
double *origin; double *origin;
origin = vtkImageData::SafeDownCast(this->volume_slice_z->GetInput())->GetOrigin(); origin = vtkImageData::SafeDownCast(this->volume_slice_x->GetInput())->GetOrigin();
this->volume_slice_x->PlaceWidget(); this->volume_slice_x->PlaceWidget();
this->volume_slice_x->SetPlaneOrientationToXAxes(); this->volume_slice_x->SetPlaneOrientationToXAxes();
...@@ -148,6 +152,11 @@ void dtkVisualizationDecoratorSlicesPrivate::setupSlices(void) ...@@ -148,6 +152,11 @@ void dtkVisualizationDecoratorSlicesPrivate::setupSlices(void)
void dtkVisualizationDecoratorSlicesPrivate::setVisibility(bool visible) void dtkVisualizationDecoratorSlicesPrivate::setVisibility(bool visible)
{ {
if (!this->volume_slice_x->GetInteractor()) {
// Interactor must be set before enabling vtkImagePlaneWidget.
return;
}
if (visible) { if (visible) {
this->volume_slice_x->On(); this->volume_slice_x->On();
this->volume_slice_x->InteractionOn(); this->volume_slice_x->InteractionOn();
...@@ -170,7 +179,10 @@ void dtkVisualizationDecoratorSlicesPrivate::setVisibility(bool visible) ...@@ -170,7 +179,10 @@ void dtkVisualizationDecoratorSlicesPrivate::setVisibility(bool visible)
dtkVisualizationDecoratorSlices::dtkVisualizationDecoratorSlices(void): dtkVisualizationDecoratorWithClut(), d(new dtkVisualizationDecoratorSlicesPrivate()) dtkVisualizationDecoratorSlices::dtkVisualizationDecoratorSlices(void): dtkVisualizationDecoratorWithClut(), d(new dtkVisualizationDecoratorSlicesPrivate())
{ {
d->input_image = vtkSmartPointer<vtkImageData>::New();
d->c2p_filter = vtkSmartPointer<vtkCellDataToPointData>::New(); d->c2p_filter = vtkSmartPointer<vtkCellDataToPointData>::New();
d->c2p_filter->SetInputData(d->input_image);
d->volume_slice_x = vtkImagePlaneWidget::New(); d->volume_slice_x = vtkImagePlaneWidget::New();
d->volume_slice_y = vtkImagePlaneWidget::New(); d->volume_slice_y = vtkImagePlaneWidget::New();
...@@ -195,58 +207,61 @@ dtkVisualizationDecoratorSlices::dtkVisualizationDecoratorSlices(void): dtkVisua ...@@ -195,58 +207,61 @@ dtkVisualizationDecoratorSlices::dtkVisualizationDecoratorSlices(void): dtkVisua
////////// //////////
// Inspectors connections // Inspectors connections
connect(d->enable_slicing_x, &dtkVisualizationWidgetsSliceControls::toggled, [=] (bool checked) { connect(d->enable_slicing_x, &dtkVisualizationWidgetsSliceControls::toggled, [=] (bool checked)
{
d->volume_slice_x->SetEnabled(checked); d->volume_slice_x->SetEnabled(checked);
this->draw(); this->draw();
}); });
connect(d->enable_slicing_x, &dtkVisualizationWidgetsSliceControls::reset, [=] () { connect(d->enable_slicing_x, &dtkVisualizationWidgetsSliceControls::reset, [=] ()
double *origin; {
origin = vtkImageData::SafeDownCast(d_func()->dataset)->GetOrigin(); double *origin = d->input_image->GetOrigin();
d->volume_slice_x->SetPlaneOrientationToXAxes(); d->volume_slice_x->SetPlaneOrientationToXAxes();
d->volume_slice_x->SetSlicePosition(origin[0]); d->volume_slice_x->SetSlicePosition(origin[0]);
this->draw(); this->draw();
}); });
connect(d->enable_slicing_x, &dtkVisualizationWidgetsSliceControls::valueChanged, [=] (double value) { connect(d->enable_slicing_x, &dtkVisualizationWidgetsSliceControls::valueChanged, [=] (double value)
double *origin; {
origin = vtkImageData::SafeDownCast(d_func()->dataset)->GetOrigin(); double *origin = d->input_image->GetOrigin();
d->volume_slice_x->SetSlicePosition(value + origin[0]); d->volume_slice_x->SetSlicePosition(value + origin[0]);
this->draw(); this->draw();
}); });
connect(d->enable_slicing_y, &dtkVisualizationWidgetsSliceControls::toggled, [=] (bool checked) { connect(d->enable_slicing_y, &dtkVisualizationWidgetsSliceControls::toggled, [=] (bool checked)
{
d->volume_slice_y->SetEnabled(checked); d->volume_slice_y->SetEnabled(checked);
this->draw(); this->draw();
}); });
connect(d->enable_slicing_y, &dtkVisualizationWidgetsSliceControls::reset, [=] () { connect(d->enable_slicing_y, &dtkVisualizationWidgetsSliceControls::reset, [=] ()
double *origin; {
origin = vtkImageData::SafeDownCast(d_func()->dataset)->GetOrigin(); double *origin = d->input_image->GetOrigin();
d->volume_slice_y->SetPlaneOrientationToYAxes(); d->volume_slice_y->SetPlaneOrientationToYAxes();
d->volume_slice_y->SetSlicePosition(origin[1]); d->volume_slice_y->SetSlicePosition(origin[1]);
this->draw(); this->draw();
}); });
connect(d->enable_slicing_y, &dtkVisualizationWidgetsSliceControls::valueChanged, [=] (double value) { connect(d->enable_slicing_y, &dtkVisualizationWidgetsSliceControls::valueChanged, [=] (double value)
double *origin; {
origin = vtkImageData::SafeDownCast(d_func()->dataset)->GetOrigin(); double *origin = d->input_image->GetOrigin();
d->volume_slice_y->SetSlicePosition(value + origin[1]); d->volume_slice_y->SetSlicePosition(value + origin[1]);
this->draw(); this->draw();
}); });
connect(d->enable_slicing_z, &dtkVisualizationWidgetsSliceControls::toggled, [=] (bool checked) { connect(d->enable_slicing_z, &dtkVisualizationWidgetsSliceControls::toggled, [=] (bool checked)
{
d->volume_slice_z->SetEnabled(checked); d->volume_slice_z->SetEnabled(checked);
this->draw(); this->draw();
}); });
connect(d->enable_slicing_z, &dtkVisualizationWidgetsSliceControls::reset, [=] () { connect(d->enable_slicing_z, &dtkVisualizationWidgetsSliceControls::reset, [=] ()
double *origin; {
origin = vtkImageData::SafeDownCast(d_func()->dataset)->GetOrigin(); double *origin = d->input_image->GetOrigin();
d->volume_slice_z->SetPlaneOrientationToZAxes(); d->volume_slice_z->SetPlaneOrientationToZAxes();
d->volume_slice_z->SetSlicePosition(origin[2]); d->volume_slice_z->SetSlicePosition(origin[2]);
this->draw(); this->draw();
}); });
connect(d->enable_slicing_z, &dtkVisualizationWidgetsSliceControls::valueChanged, [=] (double value) { connect(d->enable_slicing_z, &dtkVisualizationWidgetsSliceControls::valueChanged, [=] (double value)
double *origin; {
origin = vtkImageData::SafeDownCast(d_func()->dataset)->GetOrigin(); double *origin = d->input_image->GetOrigin();
d->volume_slice_z->SetSlicePosition((value + origin[2])); d->volume_slice_z->SetSlicePosition((value + origin[2]));
this->draw(); this->draw();
}); });
...@@ -303,7 +318,8 @@ void dtkVisualizationDecoratorSlices::setData(const QVariant& data) ...@@ -303,7 +318,8 @@ void dtkVisualizationDecoratorSlices::setData(const QVariant& data)
d_func()->clear(); d_func()->clear();
return; return;
} }
d->c2p_filter->SetInputData(dataset); d->input_image->ShallowCopy(dataset);
this->restoreSettings(); this->restoreSettings();
d_func()->sortEligibleFields(); d_func()->sortEligibleFields();
...@@ -343,8 +359,8 @@ void dtkVisualizationDecoratorSlices::setCanvas(dtkVisualizationCanvas *canvas) ...@@ -343,8 +359,8 @@ void dtkVisualizationDecoratorSlices::setCanvas(dtkVisualizationCanvas *canvas)
void dtkVisualizationDecoratorSlices::unsetCanvas(void) void dtkVisualizationDecoratorSlices::unsetCanvas(void)
{ {
if (d_func()->view) { if (!d_func()->view) {
// d_func()->view->renderer()->RemoveActor(d->actor); return;
} }
d->volume_slice_x->SetInteractor(nullptr); d->volume_slice_x->SetInteractor(nullptr);
...@@ -376,6 +392,12 @@ void dtkVisualizationDecoratorSlices::restoreSettings(void) ...@@ -376,6 +392,12 @@ void dtkVisualizationDecoratorSlices::restoreSettings(void)
void dtkVisualizationDecoratorSlices::touch(void) void dtkVisualizationDecoratorSlices::touch(void)
{ {
// Need to update slices positions before calling parent touch to ensure drawing slices at the right positions.
double *origin = d->input_image->GetOrigin();
d->volume_slice_x->SetSlicePosition(d->enable_slicing_x->value() + origin[0]);
d->volume_slice_y->SetSlicePosition(d->enable_slicing_y->value() + origin[1]);
d->volume_slice_z->SetSlicePosition(d->enable_slicing_z->value() + origin[2]);
dtkVisualizationDecoratorWithClut::touch(); dtkVisualizationDecoratorWithClut::touch();
} }
...@@ -393,29 +415,25 @@ bool dtkVisualizationDecoratorSlices::setCurrentFieldName(const QString& field_n ...@@ -393,29 +415,25 @@ bool dtkVisualizationDecoratorSlices::setCurrentFieldName(const QString& field_n
if(!d_func()->eligible_field_names.contains(field_name)) { if(!d_func()->eligible_field_names.contains(field_name)) {
dtkWarn() << Q_FUNC_INFO << "The field name :" << field_name << "that was specified doesn't match any of the eligible scalar field names"; dtkWarn() << Q_FUNC_INFO << "The field name :" << field_name << "that was specified doesn't match any of the eligible scalar field names";
return false; return false;
} }
using Support = dtkVisualizationDecoratorWithClut::Support; using Support = dtkVisualizationDecoratorWithClut::Support;
int support = d_func()->supports[field_name]; int support = d_func()->supports[field_name];
if(support == Support::Point) { if(support == Support::Point) {
d->volume_slice_x->SetInputData(d_func()->dataset); d->input_image->GetPointData()->SetActiveScalars(qPrintable(field_name));
d->volume_slice_y->SetInputData(d_func()->dataset); d->volume_slice_x->SetInputData(d->input_image);
d->volume_slice_z->SetInputData(d_func()->dataset); d->volume_slice_y->SetInputData(d->input_image);
d->volume_slice_z->SetInputData(d->input_image);
} else if(support == Support::Cell) { } else if(support == Support::Cell) {
d->c2p_filter->SetInputArrayToProcess(0, 0, 0, vtkDataObject::FIELD_ASSOCIATION_CELLS, qPrintable(field_name)); d->input_image->GetCellData()->SetActiveScalars(qPrintable(field_name));
d->volume_slice_x->SetInputConnection(d->c2p_filter->GetOutputPort()); d->c2p_filter->Modified();
d->volume_slice_y->SetInputConnection(d->c2p_filter->GetOutputPort()); d->volume_slice_x->SetInputConnection(d->c2p_filter->GetOutputPort());
d->volume_slice_z->SetInputConnection(d->c2p_filter->GetOutputPort()); d->volume_slice_y->SetInputConnection(d->c2p_filter->GetOutputPort());
d->c2p_filter->Modified(); d->volume_slice_z->SetInputConnection(d->c2p_filter->GetOutputPort());
} }
d->volume_slice_x->SetSlicePosition(d->enable_slicing_x->value()); return dtkVisualizationDecoratorWithClut::setCurrentFieldName(field_name);
d->volume_slice_y->SetSlicePosition(d->enable_slicing_y->value());
d->volume_slice_z->SetSlicePosition(d->enable_slicing_z->value());
return dtkVisualizationDecoratorWithClut::setCurrentFieldName(field_name);
} }
void dtkVisualizationDecoratorSlices::setColorMap(const QMap<double, QColor>& new_colormap) void dtkVisualizationDecoratorSlices::setColorMap(const QMap<double, QColor>& new_colormap)
...@@ -423,8 +441,13 @@ void dtkVisualizationDecoratorSlices::setColorMap(const QMap<double, QColor>& ne ...@@ -423,8 +441,13 @@ void dtkVisualizationDecoratorSlices::setColorMap(const QMap<double, QColor>& ne
dtkVisualizationDecoratorWithClut::setColorMap(new_colormap); dtkVisualizationDecoratorWithClut::setColorMap(new_colormap);
d->volume_slice_x->GetColorMap()->SetLookupTable(d_func()->color_function); d->volume_slice_x->GetColorMap()->SetLookupTable(d_func()->color_function);
d->volume_slice_x->GetColorMap()->Modified();
d->volume_slice_y->GetColorMap()->SetLookupTable(d_func()->color_function); d->volume_slice_y->GetColorMap()->SetLookupTable(d_func()->color_function);
d->volume_slice_y->GetColorMap()->Modified();
d->volume_slice_z->GetColorMap()->SetLookupTable(d_func()->color_function); d->volume_slice_z->GetColorMap()->SetLookupTable(d_func()->color_function);
d->volume_slice_z->GetColorMap()->Modified();
} }
// //
......
...@@ -109,6 +109,7 @@ dtkVisualizationDecoratorVectorGlyphs::dtkVisualizationDecoratorVectorGlyphs(voi ...@@ -109,6 +109,7 @@ dtkVisualizationDecoratorVectorGlyphs::dtkVisualizationDecoratorVectorGlyphs(voi