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

Method ComputeTransformedExtent

IO/Image/vtkImageReader.cxx:462–538  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

460}
461
462void vtkImageReader::ComputeTransformedExtent(int inExtent[6], int outExtent[6])
463{
464 double transformedExtent[3];
465 int temp;
466 int idx;
467 int dataExtent[6];
468
469 if (!this->Transform)
470 {
471 memcpy(outExtent, inExtent, 6 * sizeof(int));
472 memcpy(dataExtent, this->DataExtent, 6 * sizeof(int));
473 }
474 else
475 {
476 // need to know how far to translate to start at 000
477 // first transform the data extent
478 transformedExtent[0] = this->DataExtent[0];
479 transformedExtent[1] = this->DataExtent[2];
480 transformedExtent[2] = this->DataExtent[4];
481 this->Transform->TransformPoint(transformedExtent, transformedExtent);
482 dataExtent[0] = (int)transformedExtent[0];
483 dataExtent[2] = (int)transformedExtent[1];
484 dataExtent[4] = (int)transformedExtent[2];
485
486 transformedExtent[0] = this->DataExtent[1];
487 transformedExtent[1] = this->DataExtent[3];
488 transformedExtent[2] = this->DataExtent[5];
489 this->Transform->TransformPoint(transformedExtent, transformedExtent);
490 dataExtent[1] = (int)transformedExtent[0];
491 dataExtent[3] = (int)transformedExtent[1];
492 dataExtent[5] = (int)transformedExtent[2];
493
494 for (idx = 0; idx < 6; idx += 2)
495 {
496 if (dataExtent[idx] > dataExtent[idx + 1])
497 {
498 temp = dataExtent[idx];
499 dataExtent[idx] = dataExtent[idx + 1];
500 dataExtent[idx + 1] = temp;
501 }
502 }
503
504 // now transform the inExtent
505 transformedExtent[0] = inExtent[0];
506 transformedExtent[1] = inExtent[2];
507 transformedExtent[2] = inExtent[4];
508 this->Transform->TransformPoint(transformedExtent, transformedExtent);
509 outExtent[0] = (int)transformedExtent[0];
510 outExtent[2] = (int)transformedExtent[1];
511 outExtent[4] = (int)transformedExtent[2];
512
513 transformedExtent[0] = inExtent[1];
514 transformedExtent[1] = inExtent[3];
515 transformedExtent[2] = inExtent[5];
516 this->Transform->TransformPoint(transformedExtent, transformedExtent);
517 outExtent[1] = (int)transformedExtent[0];
518 outExtent[3] = (int)transformedExtent[1];
519 outExtent[5] = (int)transformedExtent[2];

Callers 2

RequestInformationMethod · 0.95

Calls 1

TransformPointMethod · 0.45

Tested by

no test coverage detected