------------------------------------------------------------------------------
| 331 | |
| 332 | //------------------------------------------------------------------------------ |
| 333 | char* vtkXdmfDataArray::ToXdmfArray(vtkDataArray* DataArray, int CopyShape) |
| 334 | { |
| 335 | xdmf2::XdmfArray* array; |
| 336 | if (DataArray == nullptr) |
| 337 | { |
| 338 | DataArray = this->vtkArray; |
| 339 | } |
| 340 | if (DataArray == nullptr) |
| 341 | { |
| 342 | vtkDebugMacro(<< "Array is nullptr"); |
| 343 | return (nullptr); |
| 344 | } |
| 345 | if (this->Array == nullptr) |
| 346 | { |
| 347 | this->Array = new xdmf2::XdmfArray(); |
| 348 | switch (DataArray->GetDataType()) |
| 349 | { |
| 350 | case VTK_CHAR: |
| 351 | this->Array->SetNumberType(XDMF_INT8_TYPE); |
| 352 | break; |
| 353 | case VTK_UNSIGNED_CHAR: |
| 354 | this->Array->SetNumberType(XDMF_UINT8_TYPE); |
| 355 | break; |
| 356 | case VTK_SHORT: |
| 357 | this->Array->SetNumberType(XDMF_INT16_TYPE); |
| 358 | break; |
| 359 | case VTK_UNSIGNED_SHORT: |
| 360 | this->Array->SetNumberType(XDMF_UINT16_TYPE); |
| 361 | break; |
| 362 | case VTK_INT: |
| 363 | this->Array->SetNumberType(XDMF_INT32_TYPE); |
| 364 | break; |
| 365 | case VTK_UNSIGNED_INT: |
| 366 | this->Array->SetNumberType(XDMF_UINT32_TYPE); |
| 367 | break; |
| 368 | case VTK_LONG: |
| 369 | this->Array->SetNumberType(XDMF_INT64_TYPE); |
| 370 | break; |
| 371 | case VTK_FLOAT: |
| 372 | this->Array->SetNumberType(XDMF_FLOAT32_TYPE); |
| 373 | break; |
| 374 | case VTK_DOUBLE: |
| 375 | this->Array->SetNumberType(XDMF_FLOAT64_TYPE); |
| 376 | break; |
| 377 | default: |
| 378 | XdmfErrorMessage("Can't handle Data Type"); |
| 379 | return (nullptr); |
| 380 | } |
| 381 | } |
| 382 | array = this->Array; |
| 383 | if (CopyShape) |
| 384 | { |
| 385 | XdmfInt64 Shape[3]; |
| 386 | |
| 387 | Shape[0] = DataArray->GetNumberOfTuples(); |
| 388 | Shape[1] = DataArray->GetNumberOfComponents(); |
| 389 | if (Shape[1] == 1) |
| 390 | { |
no test coverage detected