----------------------------------------------------------------------------
| 86 | |
| 87 | //---------------------------------------------------------------------------- |
| 88 | void vtkXMLWriterC_SetDataObjectType(vtkXMLWriterC* self, int objType) |
| 89 | { |
| 90 | if (!self) |
| 91 | { |
| 92 | return; |
| 93 | } |
| 94 | if (!self->DataObject) |
| 95 | { |
| 96 | // Create the writer and data object. |
| 97 | switch (objType) |
| 98 | { |
| 99 | case VTK_POLY_DATA: |
| 100 | { |
| 101 | self->DataObject = vtkSmartPointer<vtkPolyData>::New(); |
| 102 | self->Writer = vtkSmartPointer<vtkXMLPolyDataWriter>::New(); |
| 103 | } |
| 104 | break; |
| 105 | case VTK_UNSTRUCTURED_GRID: |
| 106 | { |
| 107 | self->DataObject = vtkSmartPointer<vtkUnstructuredGrid>::New(); |
| 108 | self->Writer = vtkSmartPointer<vtkXMLUnstructuredGridWriter>::New(); |
| 109 | } |
| 110 | break; |
| 111 | case VTK_STRUCTURED_GRID: |
| 112 | { |
| 113 | self->DataObject = vtkSmartPointer<vtkStructuredGrid>::New(); |
| 114 | self->Writer = vtkSmartPointer<vtkXMLStructuredGridWriter>::New(); |
| 115 | } |
| 116 | break; |
| 117 | case VTK_RECTILINEAR_GRID: |
| 118 | { |
| 119 | self->DataObject = vtkSmartPointer<vtkRectilinearGrid>::New(); |
| 120 | self->Writer = vtkSmartPointer<vtkXMLRectilinearGridWriter>::New(); |
| 121 | } |
| 122 | break; |
| 123 | case VTK_IMAGE_DATA: |
| 124 | { |
| 125 | self->DataObject = vtkSmartPointer<vtkImageData>::New(); |
| 126 | self->Writer = vtkSmartPointer<vtkXMLImageDataWriter>::New(); |
| 127 | } |
| 128 | break; |
| 129 | } |
| 130 | |
| 131 | // Set the data object as input to the writer. |
| 132 | if (self->Writer && self->DataObject) |
| 133 | { |
| 134 | self->Writer->SetInputData(self->DataObject); |
| 135 | } |
| 136 | else |
| 137 | { |
| 138 | vtkGenericWarningMacro( |
| 139 | "Failed to allocate data object and writer for type " << objType << "."); |
| 140 | } |
| 141 | } |
| 142 | else |
| 143 | { |
| 144 | vtkGenericWarningMacro("vtkXMLWriterC_SetDataObjectType called twice."); |
| 145 | } |