18 #include <vnl/vnl_quaternion.h> 19 #include <vnl/vnl_quaternion.hxx> 29 planeGeometry->Initialize();
36 slicedGeometry->InitializeSlicedGeometry(static_cast<unsigned int>(numberOfSlices));
37 slicedGeometry->SetOrigin(origin);
38 slicedGeometry->SetSpacing(spacing);
40 for (
int i = 0; i < numberOfSlices; ++i)
43 slicedGeometry->SetPlaneGeometry(planeGeometry, i);
46 return slicedGeometry;
52 slicedGeometry->InitializeEvenlySpaced(planeGeometry, spacing, numberOfSlices);
53 return slicedGeometry;
65 return createArray<mitk::Point3D>(x, y, z);
70 return createArray<mitk::Vector3D>(x, y, z);
75 MITK_TEST_OUTPUT(<<
"====== mitkSlicedGeometry3D_ChangeImageGeometryConsideringOriginOffset_Test() ======");
79 auto numberOfSlices = 5;
85 MITK_TEST_OUTPUT(<<
"First and last PlaneGeometry in SlicedGeometry3D are not image geometries");
86 auto firstPlaneGeometry = slicedGeometry->GetPlaneGeometry(0);
87 auto lastPlaneGeometry = slicedGeometry->GetPlaneGeometry(numberOfSlices - 1);
91 auto originOfSlicedGeometry = slicedGeometry->GetOrigin();
92 auto originOfFirstPlaneGeometry = firstPlaneGeometry->GetOrigin();
93 auto originOfLastPlaneGeometry = lastPlaneGeometry->GetOrigin();
94 auto firstCornerPointOfSlicedGeometry = slicedGeometry->GetCornerPoint(0);
95 auto secondCornerPointOfFirstPlaneGeometry = firstPlaneGeometry->GetCornerPoint(1);
96 auto thirdCornerPointOfLastPlaneGeometry = lastPlaneGeometry->GetCornerPoint(2);
98 MITK_TEST_OUTPUT(<<
"Calling SlicedGeometry3D::ChangeImageGeometryConsideringOriginOffset(true)");
99 slicedGeometry->ChangeImageGeometryConsideringOriginOffset(
true);
102 MITK_TEST_OUTPUT(<<
"First and last PlaneGeometry in SlicedGeometry3D are image geometries");
113 MITK_TEST_CONDITION_REQUIRED(firstPlaneGeometry->GetOrigin() == originOfFirstPlaneGeometry + firstPlaneGeometry->GetSpacing() * 0.5,
"");
116 MITK_TEST_OUTPUT(<<
"Calling SlicedGeometry3D::ChangeImageGeometryConsideringOriginOffset(false)");
117 slicedGeometry->ChangeImageGeometryConsideringOriginOffset(
false);
120 MITK_TEST_OUTPUT(<<
"First and last PlaneGeometry in SlicedGeometry3D are no image geometries anymore");
150 planeGeometry->InitializeStandardPlane(right, bottom, &spacing);
152 auto numberOfSlices = 5;
154 auto firstPlaneGeometry = slicedGeometry->GetPlaneGeometry(0);
156 MITK_TEST_OUTPUT(<<
"Check if first PlaneGeometry of evenly spaced SlicedGeometry is valid");
162 auto lastPlaneGeometry = slicedGeometry->GetPlaneGeometry(numberOfSlices - 1);
163 auto expectedOriginOfLastSlice =
createPoint(0.0, 0.0, thicknessInMM * (numberOfSlices - 1));
165 MITK_TEST_OUTPUT(<<
"Check if origin of last PlaneGeometry is at expected location");
170 std::cout <<
"[TEST DONE]" << std::endl;
static const mitk::ScalarType slicedGeometryEps
static T createArray(mitk::ScalarType x, mitk::ScalarType y, mitk::ScalarType z)
#define MITK_TEST_CONDITION_REQUIRED(COND, MSG)
void mitkSlicedGeometry3D_ChangeImageGeometryConsideringOriginOffset_Test()
static mitk::Point3D createPoint(mitk::ScalarType x, mitk::ScalarType y, mitk::ScalarType z)
void FillVector3D(Tout &out, mitk::ScalarType x, mitk::ScalarType y, mitk::ScalarType z)
static mitk::Vector3D createVector(mitk::ScalarType x, mitk::ScalarType y, mitk::ScalarType z)
static mitk::SlicedGeometry3D::Pointer createSlicedGeometry(const mitk::Point3D &origin, const mitk::Vector3D &spacing, int numberOfSlices)
#define MITK_TEST_OUTPUT(x)
Output some text.
static mitk::SlicedGeometry3D::Pointer createEvenlySpacedSlicedGeometry(mitk::PlaneGeometry::Pointer planeGeometry, mitk::ScalarType spacing, int numberOfSlices)
int mitkSlicedGeometry3DTest(int, char *[])
static mitk::PlaneGeometry::Pointer createPlaneGeometry()
MITKNEWMODULE_EXPORT bool Equal(mitk::ExampleDataStructure *leftHandSide, mitk::ExampleDataStructure *rightHandSide, mitk::ScalarType eps, bool verbose)
Returns true if the example data structures are considered equal.