MCPcopy Create free account
hub / github.com/Kitware/VTK / ProcessRectilinearGrid

Method ProcessRectilinearGrid

Filters/General/vtkAxisAlignedReflectionFilter.cxx:336–398  ·  view source on GitHub ↗

------------------------------------------------------------------------------

Source from the content-addressed store, hash-verified

334
335//------------------------------------------------------------------------------
336void vtkAxisAlignedReflectionFilter::ProcessRectilinearGrid(vtkRectilinearGrid* input,
337 vtkRectilinearGrid* output, double constant[3], int mirrorDir[3], int mirrorSymmetricTensorDir[6],
338 int mirrorTensorDir[9])
339{
340 output->SetExtent(input->GetExtent());
341 vtkPointData* inPD = input->GetPointData();
342 vtkPointData* outPD = output->GetPointData();
343 vtkCellData* inCD = input->GetCellData();
344 vtkCellData* outCD = output->GetCellData();
345
346 outPD->CopyAllOn();
347 outPD->CopyAllocate(inPD);
348 outCD->CopyAllOn();
349 outCD->CopyAllocate(inCD);
350
351 int dims[3];
352 input->GetDimensions(dims);
353 output->SetDimensions(dims);
354 vtkDataArray* inXArray = input->GetXCoordinates();
355 vtkDataArray* inYArray = input->GetYCoordinates();
356 vtkDataArray* inZArray = input->GetZCoordinates();
357 vtkDataArray* outXArray = output->GetXCoordinates();
358 vtkDataArray* outYArray = output->GetYCoordinates();
359 vtkDataArray* outZArray = output->GetZCoordinates();
360 outXArray->SetNumberOfTuples(inXArray->GetNumberOfTuples());
361 outYArray->SetNumberOfTuples(inYArray->GetNumberOfTuples());
362 outZArray->SetNumberOfTuples(inZArray->GetNumberOfTuples());
363 for (int i = 0; i < dims[0]; i++)
364 {
365 double* tp = inXArray->GetTuple(i);
366 double newTp = tp[0] * mirrorDir[0] + constant[0];
367 outXArray->SetTuple(dims[0] - i - 1, &newTp);
368 }
369
370 for (int i = 0; i < dims[1]; i++)
371 {
372 double* tp = inYArray->GetTuple(i);
373 double newTp = tp[0] * mirrorDir[1] + constant[1];
374 outYArray->SetTuple(dims[1] - i - 1, &newTp);
375 }
376
377 for (int i = 0; i < dims[2]; i++)
378 {
379 double* tp = inZArray->GetTuple(i);
380 double newTp = tp[0] * mirrorDir[2] + constant[2];
381 outZArray->SetTuple(dims[2] - i - 1, &newTp);
382 }
383
384 // The copy of the data could be avoided by using an implicit array
385 int numPts = input->GetNumberOfPoints();
386 int numCells = input->GetNumberOfCells();
387
388 for (int i = 0; i < numPts; i++)
389 {
390 outPD->CopyData(inPD, i, numPts - i - 1);
391 }
392 for (int i = 0; i < numCells; i++)
393 {

Callers

nothing calls this directly

Calls 15

FindAndReflectArraysMethod · 0.95
SetExtentMethod · 0.45
GetExtentMethod · 0.45
GetPointDataMethod · 0.45
GetCellDataMethod · 0.45
CopyAllOnMethod · 0.45
CopyAllocateMethod · 0.45
GetDimensionsMethod · 0.45
SetDimensionsMethod · 0.45
GetXCoordinatesMethod · 0.45
GetYCoordinatesMethod · 0.45
GetZCoordinatesMethod · 0.45

Tested by

no test coverage detected