------------------------------------------------------------------------------
| 411 | |
| 412 | //------------------------------------------------------------------------------ |
| 413 | vtkDataArray* vtkTemporalArrayOperatorFilter::ProcessDataArray( |
| 414 | vtkDataArray* inputArray0, vtkDataArray* inputArray1) |
| 415 | { |
| 416 | vtkAbstractArray* outputArray = vtkAbstractArray::CreateArray(inputArray0->GetDataType()); |
| 417 | vtkDataArray* outputDataArray = vtkDataArray::SafeDownCast(outputArray); |
| 418 | |
| 419 | outputDataArray->SetNumberOfComponents(inputArray0->GetNumberOfComponents()); |
| 420 | outputDataArray->SetNumberOfTuples(inputArray0->GetNumberOfTuples()); |
| 421 | outputDataArray->CopyComponentNames(inputArray0); |
| 422 | |
| 423 | std::string arrayName = inputArray0->GetName() ? inputArray0->GetName() : "input_array"; |
| 424 | if (this->OutputArrayNameSuffix && strlen(this->OutputArrayNameSuffix) != 0) |
| 425 | { |
| 426 | arrayName += this->OutputArrayNameSuffix; |
| 427 | } |
| 428 | else |
| 429 | { |
| 430 | arrayName += "_" + this->GetOperatorAsString(); |
| 431 | } |
| 432 | outputDataArray->SetName(arrayName.c_str()); |
| 433 | |
| 434 | // Let's perform the operation on the array |
| 435 | TemporalDataOperatorWorker worker(this->Operator); |
| 436 | |
| 437 | if (!vtkArrayDispatch::Dispatch3SameValueType::Execute( |
| 438 | inputArray0, inputArray1, outputDataArray, worker)) |
| 439 | { |
| 440 | worker(inputArray0, inputArray1, outputDataArray); // vtkDataArray fallback |
| 441 | } |
| 442 | |
| 443 | return outputDataArray; |
| 444 | } |
| 445 | |
| 446 | //------------------------------------------------------------------------------ |
| 447 | std::string vtkTemporalArrayOperatorFilter::GetOperatorAsString() |
no test coverage detected