| 43 | } |
| 44 | |
| 45 | vtkArray* vtkArray::CreateArray(int StorageType, int ValueType) |
| 46 | { |
| 47 | switch (StorageType) |
| 48 | { |
| 49 | case DENSE: |
| 50 | { |
| 51 | switch (ValueType) |
| 52 | { |
| 53 | case VTK_CHAR: |
| 54 | return vtkDenseArray<char>::New(); |
| 55 | case VTK_SIGNED_CHAR: |
| 56 | return vtkDenseArray<signed char>::New(); |
| 57 | case VTK_UNSIGNED_CHAR: |
| 58 | return vtkDenseArray<unsigned char>::New(); |
| 59 | case VTK_SHORT: |
| 60 | return vtkDenseArray<short>::New(); |
| 61 | case VTK_UNSIGNED_SHORT: |
| 62 | return vtkDenseArray<unsigned short>::New(); |
| 63 | case VTK_INT: |
| 64 | return vtkDenseArray<int>::New(); |
| 65 | case VTK_UNSIGNED_INT: |
| 66 | return vtkDenseArray<unsigned int>::New(); |
| 67 | case VTK_LONG: |
| 68 | return vtkDenseArray<long>::New(); |
| 69 | case VTK_UNSIGNED_LONG: |
| 70 | return vtkDenseArray<unsigned long>::New(); |
| 71 | case VTK_LONG_LONG: |
| 72 | return vtkDenseArray<long long>::New(); |
| 73 | case VTK_UNSIGNED_LONG_LONG: |
| 74 | return vtkDenseArray<unsigned long long>::New(); |
| 75 | case VTK_FLOAT: |
| 76 | return vtkDenseArray<float>::New(); |
| 77 | case VTK_DOUBLE: |
| 78 | return vtkDenseArray<double>::New(); |
| 79 | case VTK_ID_TYPE: |
| 80 | return vtkDenseArray<vtkIdType>::New(); |
| 81 | case VTK_STRING: |
| 82 | return vtkDenseArray<vtkStdString>::New(); |
| 83 | case VTK_VARIANT: |
| 84 | return vtkDenseArray<vtkVariant>::New(); |
| 85 | } |
| 86 | vtkGenericWarningMacro( |
| 87 | << "vtkArrary::CreateArray() cannot create array with unknown value type: " |
| 88 | << vtkImageScalarTypeNameMacro(ValueType)); |
| 89 | return nullptr; |
| 90 | } |
| 91 | case SPARSE: |
| 92 | { |
| 93 | switch (ValueType) |
| 94 | { |
| 95 | case VTK_CHAR: |
| 96 | return vtkSparseArray<char>::New(); |
| 97 | case VTK_SIGNED_CHAR: |
| 98 | return vtkSparseArray<signed char>::New(); |
| 99 | case VTK_UNSIGNED_CHAR: |
| 100 | return vtkSparseArray<unsigned char>::New(); |
| 101 | case VTK_SHORT: |
| 102 | return vtkSparseArray<short>::New(); |