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

Method ComputeInverseTransformedExtent

IO/Image/vtkImageReader.cxx:540–624  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

538}
539
540void vtkImageReader::ComputeInverseTransformedExtent(int inExtent[6], int outExtent[6])
541{
542 double transformedExtent[3];
543 int temp;
544 int idx;
545
546 if (!this->Transform)
547 {
548 memcpy(outExtent, inExtent, 6 * sizeof(int));
549 for (idx = 0; idx < 6; idx += 2)
550 {
551 // do the slide to 000 origin by subtracting the minimum extent
552 outExtent[idx] += this->DataExtent[idx];
553 outExtent[idx + 1] += this->DataExtent[idx];
554 }
555 }
556 else
557 {
558 // need to know how far to translate to start at 000
559 int dataExtent[6];
560 // first transform the data extent
561 transformedExtent[0] = this->DataExtent[0];
562 transformedExtent[1] = this->DataExtent[2];
563 transformedExtent[2] = this->DataExtent[4];
564 this->Transform->TransformPoint(transformedExtent, transformedExtent);
565 dataExtent[0] = (int)transformedExtent[0];
566 dataExtent[2] = (int)transformedExtent[1];
567 dataExtent[4] = (int)transformedExtent[2];
568
569 transformedExtent[0] = this->DataExtent[1];
570 transformedExtent[1] = this->DataExtent[3];
571 transformedExtent[2] = this->DataExtent[5];
572 this->Transform->TransformPoint(transformedExtent, transformedExtent);
573 dataExtent[1] = (int)transformedExtent[0];
574 dataExtent[3] = (int)transformedExtent[1];
575 dataExtent[5] = (int)transformedExtent[2];
576
577 for (idx = 0; idx < 6; idx += 2)
578 {
579 if (dataExtent[idx] > dataExtent[idx + 1])
580 {
581 temp = dataExtent[idx];
582 dataExtent[idx] = dataExtent[idx + 1];
583 dataExtent[idx + 1] = temp;
584 }
585 }
586
587 for (idx = 0; idx < 6; idx += 2)
588 {
589 // do the slide to 000 origin by subtracting the minimum extent
590 inExtent[idx] += dataExtent[idx];
591 inExtent[idx + 1] += dataExtent[idx];
592 }
593
594 transformedExtent[0] = inExtent[0];
595 transformedExtent[1] = inExtent[2];
596 transformedExtent[2] = inExtent[4];
597 this->Transform->GetLinearInverse()->TransformPoint(transformedExtent, transformedExtent);

Callers 6

vtkImageReaderUpdate2Function · 0.80
vtkBMPReaderUpdate2Function · 0.80
TransformDataMethod · 0.80
TransformDataMethod · 0.80

Calls 1

TransformPointMethod · 0.45

Tested by

no test coverage detected