MCPcopy Create free account
hub / github.com/Kitware/VTK / ProcessDataObject

Method ProcessDataObject

Filters/Hybrid/vtkTemporalArrayOperatorFilter.cxx:303–363  ·  view source on GitHub ↗

------------------------------------------------------------------------------

Source from the content-addressed store, hash-verified

301
302//------------------------------------------------------------------------------
303vtkDataObject* 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();

Callers 1

ProcessMethod · 0.95

Calls 14

ProcessDataArrayMethod · 0.95
CheckAbortMethod · 0.80
GetDataTypeMethod · 0.45
GetNameMethod · 0.45
GetNumberOfComponentsMethod · 0.45
GetNumberOfTuplesMethod · 0.45
NewInstanceMethod · 0.45
ShallowCopyMethod · 0.45
TakeReferenceMethod · 0.45

Tested by

no test coverage detected