------------------------------------------------------------------------------
| 258 | |
| 259 | //------------------------------------------------------------------------------ |
| 260 | vtkDataObject* vtkTemporalArrayOperatorFilter::Process( |
| 261 | vtkDataObject* inputData0, vtkDataObject* inputData1) |
| 262 | { |
| 263 | if (inputData0->IsA("vtkCompositeDataSet")) |
| 264 | { |
| 265 | // We suppose input data are same type and have same structure (they should!) |
| 266 | vtkCompositeDataSet* compositeDataSet0 = vtkCompositeDataSet::SafeDownCast(inputData0); |
| 267 | vtkCompositeDataSet* compositeDataSet1 = vtkCompositeDataSet::SafeDownCast(inputData1); |
| 268 | |
| 269 | vtkCompositeDataSet* outputCompositeDataSet = compositeDataSet0->NewInstance(); |
| 270 | outputCompositeDataSet->CompositeShallowCopy(compositeDataSet0); |
| 271 | |
| 272 | vtkSmartPointer<vtkCompositeDataIterator> iter; |
| 273 | iter.TakeReference(compositeDataSet0->NewIterator()); |
| 274 | for (iter->InitTraversal(); !iter->IsDoneWithTraversal(); iter->GoToNextItem()) |
| 275 | { |
| 276 | if (this->CheckAbort()) |
| 277 | { |
| 278 | break; |
| 279 | } |
| 280 | vtkDataObject* dataObj0 = iter->GetCurrentDataObject(); |
| 281 | vtkDataObject* dataObj1 = compositeDataSet1->GetDataSet(iter); |
| 282 | if (!dataObj0 || !dataObj1) |
| 283 | { |
| 284 | vtkWarningMacro("The composite datasets have different structure."); |
| 285 | continue; |
| 286 | } |
| 287 | |
| 288 | vtkSmartPointer<vtkDataObject> resultDataObj; |
| 289 | resultDataObj.TakeReference(this->ProcessDataObject(dataObj0, dataObj1)); |
| 290 | if (!resultDataObj) |
| 291 | { |
| 292 | return nullptr; |
| 293 | } |
| 294 | outputCompositeDataSet->SetDataSet(iter, resultDataObj); |
| 295 | } |
| 296 | return outputCompositeDataSet; |
| 297 | } |
| 298 | |
| 299 | return this->ProcessDataObject(inputData0, inputData1); |
| 300 | } |
| 301 | |
| 302 | //------------------------------------------------------------------------------ |
| 303 | vtkDataObject* vtkTemporalArrayOperatorFilter::ProcessDataObject( |
no test coverage detected