------------------------------------------------------------------------------
| 301 | |
| 302 | //------------------------------------------------------------------------------ |
| 303 | vtkDataObject* vtkTemporalArrayOperatorFilter::ProcessDataObject( |
| 304 | vtkDataObject* inputData0, vtkDataObject* inputData1) |
| 305 | { |
| 306 | vtkDataArray* inputArray0 = this->GetInputArrayToProcess(0, inputData0); |
| 307 | vtkDataArray* inputArray1 = this->GetInputArrayToProcess(0, inputData1); |
| 308 | if (!inputArray0 || !inputArray1) |
| 309 | { |
| 310 | vtkErrorMacro(<< "Unable to retrieve data arrays to process."); |
| 311 | return nullptr; |
| 312 | } |
| 313 | |
| 314 | if (inputArray0->GetDataType() != inputArray1->GetDataType()) |
| 315 | { |
| 316 | vtkErrorMacro(<< "Array type in each time step are different."); |
| 317 | return nullptr; |
| 318 | } |
| 319 | |
| 320 | if (strcmp(inputArray0->GetName(), inputArray1->GetName()) != 0) |
| 321 | { |
| 322 | vtkErrorMacro(<< "Array name in each time step are different."); |
| 323 | return nullptr; |
| 324 | } |
| 325 | |
| 326 | if (inputArray0->GetNumberOfComponents() != inputArray1->GetNumberOfComponents()) |
| 327 | { |
| 328 | vtkErrorMacro(<< "The number of components of the array in each time " |
| 329 | "step are different."); |
| 330 | return nullptr; |
| 331 | } |
| 332 | |
| 333 | if (inputArray0->GetNumberOfTuples() != inputArray1->GetNumberOfTuples()) |
| 334 | { |
| 335 | vtkErrorMacro(<< "The number of tuples of the array in each time step" |
| 336 | "are different."); |
| 337 | return nullptr; |
| 338 | } |
| 339 | |
| 340 | // Copy input structure into output |
| 341 | vtkDataObject* outputDataObject = inputData0->NewInstance(); |
| 342 | outputDataObject->ShallowCopy(inputData0); |
| 343 | |
| 344 | vtkSmartPointer<vtkDataArray> outputArray; |
| 345 | outputArray.TakeReference(this->ProcessDataArray(inputArray0, inputArray1)); |
| 346 | |
| 347 | vtkFieldData* field = |
| 348 | outputDataObject->GetAttributesAsFieldData(this->GetInputArrayAssociation()); |
| 349 | if (!field) |
| 350 | { |
| 351 | vtkErrorMacro(<< "Bad input association (" |
| 352 | << vtkDataObject::GetAssociationTypeAsString(this->GetInputArrayAssociation()) |
| 353 | << ") for input data object (" << outputDataObject->GetClassName() << ")"); |
| 354 | } |
| 355 | else |
| 356 | { |
| 357 | field->AddArray(outputArray); |
| 358 | } |
| 359 | |
| 360 | this->CheckAbort(); |
no test coverage detected