------------------------------------------------------------------------------
| 579 | |
| 580 | //------------------------------------------------------------------------------ |
| 581 | static vtkSmartPointer<vtkDataArray> vtkXMLWriterC_NewDataArray(const char* method, |
| 582 | const char* name, int dataType, void* data, vtkIdType numTuples, int numComponents) |
| 583 | { |
| 584 | // Create the vtkDataArray that will reference the data. |
| 585 | vtkSmartPointer<vtkDataArray> array = vtkDataArray::CreateDataArray(dataType); |
| 586 | if (array) |
| 587 | { |
| 588 | array->Delete(); |
| 589 | } |
| 590 | if (!array || array->GetDataType() != dataType) |
| 591 | { |
| 592 | vtkGenericWarningMacro( |
| 593 | "vtkXMLWriterC_" << method << " could not allocate array of type " << dataType << "."); |
| 594 | return nullptr; |
| 595 | } |
| 596 | |
| 597 | // Set the number of components. |
| 598 | array->SetNumberOfComponents(numComponents); |
| 599 | |
| 600 | // Set the name if one was given. |
| 601 | array->SetName(name); |
| 602 | |
| 603 | // Point the array at the given data. It is not copied. |
| 604 | array->SetVoidArray(data, numTuples * numComponents, 1); |
| 605 | |
| 606 | // Return the array. |
| 607 | return array; |
| 608 | } |
| 609 | |
| 610 | //------------------------------------------------------------------------------ |
| 611 | static vtkSmartPointer<vtkCellArray> vtkXMLWriterC_NewCellArray( |
no test coverage detected