27 image->Initialize(mitk::MakePixelType<int, int, 1>(), *(geometry3D.GetPointer()));
41 planeOnSliceZero->InitializePlane(origin, normal);
43 calculator->
SetInput(planeOnSliceZero, image);
49 MITK_TEST_CONDITION(minMax.first == 0 && minMax.second == 0,
"Check if plane is on slice 0");
55 planeOnSliceThree->InitializePlane(origin, normal);
56 planeOnSliceThree->SetImageGeometry(
false);
58 calculator->
SetInput(planeOnSliceThree, image);
64 MITK_TEST_CONDITION(minMax.first == 3 && minMax.second == 3,
"Check if plane is on slice 3");
70 planeOnSliceSeventeen->InitializePlane(origin, normal);
72 calculator->
SetInput(planeOnSliceSeventeen, image);
78 MITK_TEST_CONDITION(minMax.first == 17 && minMax.second == 17,
"Check if plane is on slice 17");
84 planeOnSliceTwenty->InitializePlane(origin, normal);
86 calculator->
SetInput(planeOnSliceTwenty, image);
92 MITK_TEST_CONDITION(minMax.first == 19 && minMax.second == 19,
"Check if plane is on slice 19");
103 image->Initialize(mitk::MakePixelType<int, int, 1>(), *(geometry3D.GetPointer()));
116 planeSagittalOne->InitializePlane(origin, normal);
118 calculator->
SetInput(planeSagittalOne, image);
122 MITK_TEST_CONDITION(minMax.first == 0 && minMax.second == 19,
"Check if plane is from slice 0 to slice 19");
130 planeSagittalTwo->InitializePlane(origin, normal);
132 MITK_INFO <<
"PlaneNormal: " << planeSagittalTwo->GetNormal();
133 MITK_INFO <<
"PlaneOrigin: " << planeSagittalTwo->GetOrigin();
135 calculator->
SetInput(planeSagittalTwo, image);
139 MITK_INFO <<
"min: " << minMax.first <<
" max: " << minMax.second;
141 MITK_TEST_CONDITION(minMax.first == 0 && minMax.second == 19,
"Check if plane is from slice 0 to slice 19");
147 planeOnSliceSeventeen->InitializePlane(origin, normal);
149 calculator->
SetInput(planeOnSliceSeventeen, image);
153 MITK_TEST_CONDITION(minMax.first == 0 && minMax.second == 19,
"Check if plane is from slice 0 to slice 19");
165 planeCrookedOne->InitializePlane(origin, normal);
167 calculator->
SetInput(planeCrookedOne, image);
171 MITK_INFO <<
"min: " << minMax.first <<
" max: " << minMax.second;
174 "Check if plane is from slice 0 to slice 5 with inclined plane");
181 planeCrookedTwo->InitializePlane(origin, normal);
183 calculator->
SetInput(planeCrookedTwo, image);
187 MITK_INFO <<
"min: " << minMax.first <<
" max: " << minMax.second;
190 "Check if plane is from slice 16 to slice 19 with inclined plane");
200 planeCrookedThree->InitializePlane(origin, normal);
202 calculator->
SetInput(planeCrookedThree, image);
206 MITK_INFO <<
"min: " << minMax.first <<
" max: " << minMax.second;
209 "Check if plane is from slice 0 to slice 19 with inclined plane");
220 image->Initialize(mitk::MakePixelType<int, int, 1>(), *(geometry3D.GetPointer()));
232 planeInFront->InitializePlane(origin, normal);
234 calculator->
SetInput(planeInFront, image);
246 planeBehind->InitializePlane(origin, normal);
248 calculator->
SetInput(planeBehind, image);
262 planeAbove->InitializePlane(origin, normal);
264 calculator->
SetInput(planeAbove, image);
276 planeBelow->InitializePlane(origin, normal);
278 calculator->
SetInput(planeBelow, image);
292 planeLeftSide->InitializePlane(origin, normal);
294 calculator->
SetInput(planeLeftSide, image);
306 planeRightSide->InitializePlane(origin, normal);
308 calculator->
SetInput(planeRightSide, image);
324 firstImage->Initialize(mitk::MakePixelType<int, int, 1>(), *(firstGeometry3D.GetPointer()));
326 calculator->
SetInput(secondGeometry3D, firstImage);
330 MITK_INFO <<
"min: " << minMax.first <<
" max: " << minMax.second;
332 MITK_TEST_CONDITION(minMax.first == 0 && minMax.second == 19,
"Check if plane is from slice 0 to slice 19");
341 image->Initialize(mitk::MakePixelType<int, int, 1>(), *(geometry3D.GetPointer()));
353 pointlist.push_back(pnt1);
354 pointlist.push_back(pnt2);
357 calculator.
SetInput(pointlist, image);
362 "Check if points span from slice 3 to slice 8 in axial");
366 "Check if points span from slice 3 to slice 5 in sagittal");
375 pointlist.push_back(pnt1);
376 pointlist.push_back(pnt2);
379 calculator.
SetInput(pointlist, image);
384 "Check if points are correctly clipped to slice 0 and slice 19 in axial");
388 "Check if points are correctly clipped to slice 0 and slice 511 in sagittal");
397 origin3[1] = -113.22;
413 planeGeometry3->InitializePlane(origin3, normal3);
414 planeGeometry3->SetSpacing(spacing);
423 planeGeometry3->SetBounds(moreBounds);
427 rotatedSlicedGeometry3D->InitializeEvenlySpaced(dynamic_cast<mitk::PlaneGeometry *>(planeGeometry3.GetPointer()), 25);
428 rotatedSlicedGeometry3D->SetImageGeometry(
true);
431 mitk::AffineTransform3D::MatrixType matrix;
433 matrix[0][1] = -0.01;
434 matrix[0][2] = -0.02;
438 matrix[2][2] = -0.18;
443 geom->SetMatrix(matrix);
447 image->Initialize(mitk::MakePixelType<int, int, 1>(), *(rotatedSlicedGeometry3D.GetPointer()));
467 planeOnSliceZero->InitializePlane(origin, normal);
468 planeOnSliceZero->SetSpacing(spacing);
470 calculator->
SetInput(planeOnSliceZero, image);
476 MITK_TEST_CONDITION(minMax.first == 24 && minMax.second == 24,
"Check if plane is on slice 24");
495 planeOnSliceZero->InitializePlane(origin, normal);
496 planeOnSliceZero->SetSpacing(spacing);
498 calculator->
SetInput(planeOnSliceZero, image);
504 MITK_TEST_CONDITION(minMax.first == 0 && minMax.second == 24,
"Check if plane is on slices 0-24");
531 planeGeometry3->InitializePlane(origin3, normal3);
532 planeGeometry3->SetSpacing(spacing);
541 planeGeometry3->SetBounds(moreBounds);
545 rotatedSlicedGeometry3D->InitializeEvenlySpaced(dynamic_cast<mitk::PlaneGeometry *>(planeGeometry3.GetPointer()), 50);
546 rotatedSlicedGeometry3D->SetImageGeometry(
true);
551 mitk::AffineTransform3D::MatrixType matrix;
552 matrix[0][0] = spacing[0];
557 matrix[1][1] = spacing[1];
562 matrix[2][2] = spacing[2];
563 geom->SetMatrix(matrix);
567 image->Initialize(mitk::MakePixelType<int, int, 1>(), *(rotatedSlicedGeometry3D.GetPointer()));
573 originFirstSlice[0] = 0.0;
574 originFirstSlice[1] = -1.0;
575 originFirstSlice[2] = 0.0;
581 spacingFirstSlice[0] = 1.0;
582 spacingFirstSlice[1] = 1.0;
583 spacingFirstSlice[2] = 1.0;
586 planeOnFirstSlice->InitializePlane(originFirstSlice, normalFitrstSlice);
587 planeOnFirstSlice->SetSpacing(spacingFirstSlice);
591 originLastSlice[0] = 0.0;
592 originLastSlice[1] = 99.0;
593 originLastSlice[2] = 0.0;
599 spacingLastSlice[0] = 1.0;
600 spacingLastSlice[1] = 1.0;
601 spacingLastSlice[2] = 1.0;
604 planeOnLastSlice->InitializePlane(originLastSlice, normalLastSlice);
605 planeOnLastSlice->SetSpacing(spacingLastSlice);
608 calculator->
SetInput(planeOnLastSlice, image);
614 MITK_TEST_CONDITION(minMax.first == 49 && minMax.second == 49,
"Check if plane is on slice 49");
615 MITK_INFO <<
"min: " << minMax.first <<
" max: " << minMax.second;
618 calculator->
SetInput(planeOnFirstSlice, image);
624 MITK_TEST_CONDITION(minMax.first == 0 && minMax.second == 0,
"Check if plane is on slice 0");
625 MITK_INFO <<
"min: " << minMax.first <<
" max: " << minMax.second;
629 double angleInDegrees = 270 * itk::Math::pi / 180;
631 mitk::AffineTransform3D::MatrixType matrix2;
632 matrix2[0][0] = cos(angleInDegrees);
633 matrix2[0][1] = -sin(angleInDegrees);
636 matrix2[1][0] = sin(angleInDegrees);
637 matrix2[1][1] = cos(angleInDegrees);
645 mitk::AffineTransform3D::MatrixType TransformationMatrix = matrix2 * matrix;
648 geom->SetMatrix(TransformationMatrix);
649 image->Initialize(mitk::MakePixelType<int, int, 1>(), *(rotatedSlicedGeometry3D.GetPointer()));
654 originFirstSlice[0] = -1.0;
655 originFirstSlice[1] = 0.0;
656 originFirstSlice[2] = 0.0;
662 spacingFirstSlice[0] = 1.0;
663 spacingFirstSlice[1] = 1.0;
664 spacingFirstSlice[2] = 1.0;
667 planeOnFirstSlice->InitializePlane(originFirstSlice, normalFitrstSlice);
668 planeOnFirstSlice->SetSpacing(spacingFirstSlice);
672 originLastSlice[0] = 99.0;
673 originLastSlice[1] = 0.0;
674 originLastSlice[2] = 0.0;
680 spacingLastSlice[0] = 1.0;
681 spacingLastSlice[1] = 1.0;
682 spacingLastSlice[2] = 1.0;
685 planeOnLastSlice->InitializePlane(originLastSlice, normalLastSlice);
686 planeOnLastSlice->SetSpacing(spacingLastSlice);
688 calculator->
SetInput(planeOnLastSlice, image);
694 MITK_TEST_CONDITION(minMax.first == 49 && minMax.second == 49,
"Check if plane is on slice 49");
695 MITK_INFO <<
"min: " << minMax.first <<
" max: " << minMax.second;
697 calculator->
SetInput(planeOnFirstSlice, image);
703 MITK_TEST_CONDITION(minMax.first == 0 && minMax.second == 0,
"Check if plane is on slice 0");
704 MITK_INFO <<
"min: " << minMax.first <<
" max: " << minMax.second;
741 planeGeometry->InitializePlane(origin, normal);
751 planeGeometry->SetBounds(bounds);
755 slicedGeometry3D->InitializeEvenlySpaced(dynamic_cast<mitk::PlaneGeometry *>(planeGeometry.GetPointer()), 20);
757 geometry3D->SetImageGeometry(
true);
771 planeGeometry2->InitializePlane(origin2, normal2);
775 secondSlicedGeometry3D->InitializeEvenlySpaced(dynamic_cast<mitk::PlaneGeometry *>(planeGeometry2.GetPointer()), 20);
778 secondGeometry3D->SetImageGeometry(
true);
OutputType GetMinMaxSpatialDirectionZ()
What Z coordinates (slice indices) are cut/visible in given plane.
static void CheckIntersectionWithRotatedGeometry()
void SetInput(const mitk::PlaneGeometry *geometry, mitk::Image *image)
void Update()
Request calculation.
section GeneralTestsDeprecatedOldTestingStyle Deprecated macros All tests with MITK_TEST_BEGIN()
static void CheckPlanesInsideBoundingBox(mitk::BaseGeometry::Pointer geometry3D)
void FillVector3D(Tout &out, mitk::ScalarType x, mitk::ScalarType y, mitk::ScalarType z)
static void CheckIntersectionWithPointCloud(mitk::BaseGeometry::Pointer geometry3D)
#define MITK_TEST_CONDITION(COND, MSG)
static void CheckPlanesOutsideOfBoundingBox(mitk::BaseGeometry::Pointer geometry3D)
std::vector< mitk::Point3D > PointListType
itk::AffineGeometryFrame< ScalarType, 3 >::TransformType AffineTransform3D
mitk::Image::Pointer image
static void CheckIntersectionWithRotatedGeometry90()
int mitkClippedSurfaceBoundsCalculatorTest(int, char *[])
OutputType GetMinMaxSpatialDirectionY()
What Y coordinates (slice indices) are cut/visible in given plane.
static void CheckPlanesInsideBoundingBoxOnlyOnOneSlice(mitk::BaseGeometry::Pointer geometry3D)
OutputType GetMinMaxSpatialDirectionX()
What X coordinates (slice indices) are cut/visible in given plane.
BaseGeometry Describes the geometry of a data object.
std::pair< int, int > OutputType
Minimum (first) and maximum (second) slice index.
BoundingBoxType::BoundsArrayType BoundsArrayType
static void CheckIntersectionPointsOfTwoGeometry3D(mitk::BaseGeometry::Pointer firstGeometry3D, mitk::BaseGeometry::Pointer secondGeometry3D)