diff --git a/src/dtkVisualization/dtkVisualizationDecoratorAxes.cpp b/src/dtkVisualization/dtkVisualizationDecoratorAxes.cpp index f95cff92e96363e3e9a7a9f57bc2d579c30956c7..e2d30302eedaea3d3b49ed89dc4b2fb60cb9661d 100644 --- a/src/dtkVisualization/dtkVisualizationDecoratorAxes.cpp +++ b/src/dtkVisualization/dtkVisualizationDecoratorAxes.cpp @@ -141,6 +141,19 @@ dtkVisualizationDecoratorAxes::~dtkVisualizationDecoratorAxes(void) void dtkVisualizationDecoratorAxes::setData(const QVariant& data) { d->dataset = data.value(); + + if (!d->dataset) { + //try to cast from other types of structures + if(dynamic_cast(data.value())) + d->dataset = vtkSmartPointer(data.value()); + + if(dynamic_cast(data.value())) + d->dataset = vtkSmartPointer(data.value()); + + if(dynamic_cast(data.value())) + d->dataset = vtkSmartPointer(data.value()); + } + if (!d->dataset) { dtkWarn() << Q_FUNC_INFO << "vtkDataSet is expected. Input data is not stored."; return; diff --git a/src/dtkVisualization/dtkVisualizationDecoratorClutEditor.cpp b/src/dtkVisualization/dtkVisualizationDecoratorClutEditor.cpp index e03733fc42078b3c07f741a175628900adf08282..3fbcc2ea2fd2554ea8d17c1a6fd3ff50fbd22a8c 100644 --- a/src/dtkVisualization/dtkVisualizationDecoratorClutEditor.cpp +++ b/src/dtkVisualization/dtkVisualizationDecoratorClutEditor.cpp @@ -210,6 +210,18 @@ bool dtkVisualizationDecoratorClutEditor::isDecorating(void) void dtkVisualizationDecoratorClutEditor::setData(const QVariant& data) { d->dataset = data.value(); + if (!d->dataset) { + //try to cast from other types of structures + if(dynamic_cast(data.value())) + d->dataset = vtkSmartPointer(data.value()); + + if(dynamic_cast(data.value())) + d->dataset = vtkSmartPointer(data.value()); + + if(dynamic_cast(data.value())) + d->dataset = vtkSmartPointer(data.value()); + } + if (!d->dataset) { dtkWarn() << Q_FUNC_INFO << "vtkDataSet is expected. Input data is not stored."; return; diff --git a/src/dtkVisualization/dtkVisualizationDecoratorClutEditorSimple.cpp b/src/dtkVisualization/dtkVisualizationDecoratorClutEditorSimple.cpp index 6a7919e271ff805d03c6c69f81a26b119795942c..4a1b37d95a594cf54f616910b808515fea5d7028 100644 --- a/src/dtkVisualization/dtkVisualizationDecoratorClutEditorSimple.cpp +++ b/src/dtkVisualization/dtkVisualizationDecoratorClutEditorSimple.cpp @@ -252,6 +252,18 @@ bool dtkVisualizationDecoratorClutEditorSimple::isDecorating(void) void dtkVisualizationDecoratorClutEditorSimple::setData(const QVariant& data) { d->dataset = data.value(); + if (!d->dataset) { + //try to cast from other types of structures + if(dynamic_cast(data.value())) + d->dataset = vtkSmartPointer(data.value()); + + if(dynamic_cast(data.value())) + d->dataset = vtkSmartPointer(data.value()); + + if(dynamic_cast(data.value())) + d->dataset = vtkSmartPointer(data.value()); + } + if (!d->dataset) { dtkWarn() << Q_FUNC_INFO << "vtkDataSet is expected. Input data is not stored."; return; diff --git a/src/dtkVisualization/dtkVisualizationDecoratorInfo.cpp b/src/dtkVisualization/dtkVisualizationDecoratorInfo.cpp index d1199e4e343e01a94a87efc32a3a3a7ac0ab114d..0d40af983cc6072f696dd525f8733826336fde83 100644 --- a/src/dtkVisualization/dtkVisualizationDecoratorInfo.cpp +++ b/src/dtkVisualization/dtkVisualizationDecoratorInfo.cpp @@ -174,6 +174,17 @@ void dtkVisualizationDecoratorInfo::setVisibility(bool visible) void dtkVisualizationDecoratorInfo::setData(const QVariant& data) { d->dataset = data.value(); + if (!d->dataset) { + //try to cast from other types of structures + if(dynamic_cast(data.value())) + d->dataset = vtkSmartPointer(data.value()); + + if(dynamic_cast(data.value())) + d->dataset = vtkSmartPointer(data.value()); + + if(dynamic_cast(data.value())) + d->dataset = vtkSmartPointer(data.value()); + } if (d->dataset) { for (int row = 0; row < d->layout->rowCount(); ++row) { diff --git a/src/dtkVisualization/dtkVisualizationDecoratorIsocontours.cpp b/src/dtkVisualization/dtkVisualizationDecoratorIsocontours.cpp index 6ef69f76ab34ff7f3e09c66227f06afd424b98f3..be922042f7503a192b72af059dc67538179b2cbb 100644 --- a/src/dtkVisualization/dtkVisualizationDecoratorIsocontours.cpp +++ b/src/dtkVisualization/dtkVisualizationDecoratorIsocontours.cpp @@ -216,6 +216,19 @@ void dtkVisualizationDecoratorIsocontours::touchRange(void) void dtkVisualizationDecoratorIsocontours::setData(const QVariant& data) { vtkDataSet *dataset = data.value(); + + if (!dataset) { + //try to cast from other types of structures + if(dynamic_cast(data.value())) + dataset = vtkSmartPointer(data.value()); + + if(dynamic_cast(data.value())) + dataset = vtkSmartPointer(data.value()); + + if(dynamic_cast(data.value())) + dataset = vtkSmartPointer(data.value()); + } + if (!dataset) { dtkWarn() << Q_FUNC_INFO << "vtkDataSet is expected. Input data is not stored."; return; diff --git a/src/dtkVisualization/dtkVisualizationDecoratorScalarGlyphs.cpp b/src/dtkVisualization/dtkVisualizationDecoratorScalarGlyphs.cpp index a27b9b47ab4bcf6ff85b5fb651497a6a1c4b9fa3..dcb0fe2f0177e47b9f3b37373e95b535b9fef01e 100644 --- a/src/dtkVisualization/dtkVisualizationDecoratorScalarGlyphs.cpp +++ b/src/dtkVisualization/dtkVisualizationDecoratorScalarGlyphs.cpp @@ -222,6 +222,19 @@ void dtkVisualizationDecoratorScalarGlyphs::restoreSettings(void) void dtkVisualizationDecoratorScalarGlyphs::setData(const QVariant& data) { vtkDataSet *dataset = data.value(); + + if (!dataset) { + //try to cast from other types of structures + if(dynamic_cast(data.value())) + dataset = vtkSmartPointer(data.value()); + + if(dynamic_cast(data.value())) + dataset = vtkSmartPointer(data.value()); + + if(dynamic_cast(data.value())) + dataset = vtkSmartPointer(data.value()); + } + if (!dataset) { dtkWarn() << Q_FUNC_INFO << "vtkDataSet is expected. Input data is not stored."; return; diff --git a/src/dtkVisualization/dtkVisualizationDecoratorSlices.cpp b/src/dtkVisualization/dtkVisualizationDecoratorSlices.cpp index 8953c713686dde0232f07d7e70d5b1d65cfc3e86..77c5b2506dddb34bce9af026e2f411f0b283c003 100644 --- a/src/dtkVisualization/dtkVisualizationDecoratorSlices.cpp +++ b/src/dtkVisualization/dtkVisualizationDecoratorSlices.cpp @@ -303,6 +303,20 @@ bool dtkVisualizationDecoratorSlices::isDecorating(void) void dtkVisualizationDecoratorSlices::setData(const QVariant& data) { vtkDataSet *dataset = data.value(); + + if (!dataset) { + //try to cast from other types of structures + if(dynamic_cast(data.value())) + dataset = vtkSmartPointer(data.value()); + + if(dynamic_cast(data.value())) + dataset = vtkSmartPointer(data.value()); + + if(dynamic_cast(data.value())) + dataset = vtkSmartPointer(data.value()); + } + + if (!dataset) { dtkWarn() << Q_FUNC_INFO << "vtkDataSet is expected. Input data is not stored."; return; diff --git a/src/dtkVisualization/dtkVisualizationDecoratorSurfaceColor.cpp b/src/dtkVisualization/dtkVisualizationDecoratorSurfaceColor.cpp index 87ac32bdfd7cbeffd317ab4332b448fcacbde032..d0fbcf5ddfba3b0869c46efbaf1bc1efc70d44de 100644 --- a/src/dtkVisualization/dtkVisualizationDecoratorSurfaceColor.cpp +++ b/src/dtkVisualization/dtkVisualizationDecoratorSurfaceColor.cpp @@ -80,6 +80,19 @@ dtkVisualizationDecoratorSurfaceColor::~dtkVisualizationDecoratorSurfaceColor(vo void dtkVisualizationDecoratorSurfaceColor::setData(const QVariant& data) { vtkDataSet *dataset = data.value(); + + if (!dataset) { + //try to cast from other types of structures + if(dynamic_cast(data.value())) + dataset = vtkSmartPointer(data.value()); + + if(dynamic_cast(data.value())) + dataset = vtkSmartPointer(data.value()); + + if(dynamic_cast(data.value())) + dataset = vtkSmartPointer(data.value()); + } + if (!dataset) { dtkWarn() << Q_FUNC_INFO << "vtkDataSet is expected. Input data is not stored."; return; diff --git a/src/dtkVisualization/dtkVisualizationDecoratorVectorCurvedGlyphs.cpp b/src/dtkVisualization/dtkVisualizationDecoratorVectorCurvedGlyphs.cpp index bc73626df2db21dd095d3a67aec92f7550376d4c..cc038c8282b8519655646c289e987d7015669f92 100644 --- a/src/dtkVisualization/dtkVisualizationDecoratorVectorCurvedGlyphs.cpp +++ b/src/dtkVisualization/dtkVisualizationDecoratorVectorCurvedGlyphs.cpp @@ -314,6 +314,19 @@ void dtkVisualizationDecoratorVectorCurvedGlyphs::restoreSettings(void) void dtkVisualizationDecoratorVectorCurvedGlyphs::setData(const QVariant& data) { vtkDataSet *dataset = data.value(); + + if (!dataset) { + //try to cast from other types of structures + if(dynamic_cast(data.value())) + dataset = vtkSmartPointer(data.value()); + + if(dynamic_cast(data.value())) + dataset = vtkSmartPointer(data.value()); + + if(dynamic_cast(data.value())) + dataset = vtkSmartPointer(data.value()); + } + if (!dataset) { dtkWarn() << Q_FUNC_INFO << "vtkDataSet is expected. Input data is not stored."; return; diff --git a/src/dtkVisualization/dtkVisualizationDecoratorVectorGlyphs.cpp b/src/dtkVisualization/dtkVisualizationDecoratorVectorGlyphs.cpp index 2b6619a5a365b70f6d6bddad72a7e9637498f485..8ce0ec365c32d9d8dfa6bdf91014abe5615224e7 100644 --- a/src/dtkVisualization/dtkVisualizationDecoratorVectorGlyphs.cpp +++ b/src/dtkVisualization/dtkVisualizationDecoratorVectorGlyphs.cpp @@ -190,6 +190,19 @@ void dtkVisualizationDecoratorVectorGlyphs::restoreSettings(void) void dtkVisualizationDecoratorVectorGlyphs::setData(const QVariant& data) { vtkDataSet *dataset = data.value(); + + if (!dataset) { + //try to cast from other types of structures + if(dynamic_cast(data.value())) + dataset = vtkSmartPointer(data.value()); + + if(dynamic_cast(data.value())) + dataset = vtkSmartPointer(data.value()); + + if(dynamic_cast(data.value())) + dataset = vtkSmartPointer(data.value()); + } + if (!dataset) { dtkWarn() << Q_FUNC_INFO << "vtkDataSet is expected. Input data is not stored."; return; diff --git a/src/dtkVisualization/dtkVisualizationDecoratorVectorStreamTracer.cpp b/src/dtkVisualization/dtkVisualizationDecoratorVectorStreamTracer.cpp index 606d8e1e17043bfe80f8cb98b9013cfbcd6439cd..48ec35e1afd602cf3f37cd6c323799c578560242 100644 --- a/src/dtkVisualization/dtkVisualizationDecoratorVectorStreamTracer.cpp +++ b/src/dtkVisualization/dtkVisualizationDecoratorVectorStreamTracer.cpp @@ -505,6 +505,19 @@ void dtkVisualizationDecoratorVectorStreamTracer::restoreSettings(void) void dtkVisualizationDecoratorVectorStreamTracer::setData(const QVariant& data) { vtkDataSet *dataset = data.value(); + + if (!dataset) { + //try to cast from other types of structures + if(dynamic_cast(data.value())) + dataset = vtkSmartPointer(data.value()); + + if(dynamic_cast(data.value())) + dataset = vtkSmartPointer(data.value()); + + if(dynamic_cast(data.value())) + dataset = vtkSmartPointer(data.value()); + } + if (!dataset) { dtkWarn() << Q_FUNC_INFO << "vtkDataSet is expected. Input data is not stored."; return; diff --git a/src/dtkVisualization/dtkVisualizationDecoratorVectorStreamlines.cpp b/src/dtkVisualization/dtkVisualizationDecoratorVectorStreamlines.cpp index d214515d90ef9c8e34ae037333600784e2c5c2b2..c4d21ac1f6a5ec61895b81a4543bfa225b6287fa 100644 --- a/src/dtkVisualization/dtkVisualizationDecoratorVectorStreamlines.cpp +++ b/src/dtkVisualization/dtkVisualizationDecoratorVectorStreamlines.cpp @@ -281,6 +281,19 @@ bool dtkVisualizationDecoratorVectorStreamlines::isCurrentFieldUniform(void) void dtkVisualizationDecoratorVectorStreamlines::setData(const QVariant& data) { vtkDataSet *dataset = data.value(); + + if (!dataset) { + //try to cast from other types of structures + if(dynamic_cast(data.value())) + dataset = vtkSmartPointer(data.value()); + + if(dynamic_cast(data.value())) + dataset = vtkSmartPointer(data.value()); + + if(dynamic_cast(data.value())) + dataset = vtkSmartPointer(data.value()); + } + if (!dataset) { dtkWarn() << Q_FUNC_INFO << "vtkDataSet is expected. Input data is not stored."; return; diff --git a/src/dtkVisualization/dtkVisualizationDecoratorVolume.cpp b/src/dtkVisualization/dtkVisualizationDecoratorVolume.cpp index 6f3cb74944ee3f50c77fd7c13226d61e523a56bb..6488aaba01229f3d8a99809d7596aefa4f10afee 100644 --- a/src/dtkVisualization/dtkVisualizationDecoratorVolume.cpp +++ b/src/dtkVisualization/dtkVisualizationDecoratorVolume.cpp @@ -136,6 +136,19 @@ bool dtkVisualizationDecoratorVolume::isDecorating(void) void dtkVisualizationDecoratorVolume::setData(const QVariant& data) { vtkDataSet *dataset = data.value(); + + if (!dataset) { + //try to cast from other types of structures + if(dynamic_cast(data.value())) + dataset = vtkSmartPointer(data.value()); + + if(dynamic_cast(data.value())) + dataset = vtkSmartPointer(data.value()); + + if(dynamic_cast(data.value())) + dataset = vtkSmartPointer(data.value()); + } + if (!dataset) { dtkWarn() << Q_FUNC_INFO << "vtkDataSet is expected. Input data is not stored."; return;