------------------------------------------------------------------------------
| 286 | |
| 287 | //------------------------------------------------------------------------------ |
| 288 | void vtkSegYReaderInternal::ExportData( |
| 289 | vtkImageData* imageData, int* extent, double origin[3], double spacing[3][3], int* spacingSign) |
| 290 | { |
| 291 | imageData->SetExtent(extent); |
| 292 | imageData->SetOrigin(origin); |
| 293 | imageData->SetSpacing( |
| 294 | vtkMath::Norm(spacing[0]), vtkMath::Norm(spacing[1]), vtkMath::Norm(spacing[2])); |
| 295 | const int* dims = imageData->GetDimensions(); |
| 296 | |
| 297 | vtkNew<vtkFloatArray> scalars; |
| 298 | scalars->SetNumberOfComponents(1); |
| 299 | scalars->SetNumberOfTuples(dims[0] * dims[1] * dims[2]); |
| 300 | scalars->SetName("trace"); |
| 301 | imageData->GetPointData()->SetScalars(scalars); |
| 302 | int id = 0; |
| 303 | int destK, destJ, destI; |
| 304 | for (int k = 0; k < dims[2]; ++k) |
| 305 | { |
| 306 | destK = (spacingSign[2] > 0 ? k : dims[2] - k - 1); |
| 307 | for (int j = 0; j < dims[1]; ++j) |
| 308 | { |
| 309 | destJ = (spacingSign[1] > 0 ? j : dims[1] - j - 1); |
| 310 | for (int i = 0; i < dims[0]; ++i) |
| 311 | { |
| 312 | destI = (spacingSign[0] > 0 ? i : dims[0] - i - 1); |
| 313 | vtkSegYTrace* trace = this->Traces[destJ * dims[0] + destI]; |
| 314 | scalars->SetValue(id++, trace ? trace->Data[destK] : 0.0); |
| 315 | } |
| 316 | } |
| 317 | } |
| 318 | } |
| 319 | |
| 320 | //------------------------------------------------------------------------------ |
| 321 | void vtkSegYReaderInternal::ExportData( |
no test coverage detected