44 scalarOpacityPoints.push_back(std::make_pair(0.0, 0.0));
45 scalarOpacityPoints.push_back(std::make_pair(5.0, 0.3));
46 scalarOpacityPoints.push_back(std::make_pair(10.0, 1.0));
47 myTransferFunction->SetScalarOpacityPoints(scalarOpacityPoints);
49 "Adding three point/value pairs to scalar opacity transfer function via VTK interface");
53 gradientOpacityPoints.push_back(std::make_pair(0.0, 0.2));
54 gradientOpacityPoints.push_back(std::make_pair(3.0, 0.7));
55 gradientOpacityPoints.push_back(std::make_pair(7.0, 0.8));
56 gradientOpacityPoints.push_back(std::make_pair(15.0, 0.9));
57 myTransferFunction->SetGradientOpacityPoints(gradientOpacityPoints);
59 "Adding four point/value pairs to gradient opacity transfer function via VTK interface");
63 itk::RGBPixel<double> rgb0, rgb1, rgb2, rgb3;
67 colorPoints.push_back(std::make_pair(2.0, rgb0));
71 colorPoints.push_back(std::make_pair(3.0, rgb1));
75 colorPoints.push_back(std::make_pair(4.0, rgb2));
79 colorPoints.push_back(std::make_pair(5.0, rgb3));
81 myTransferFunction->SetRGBPoints(colorPoints);
83 "Adding four point/value pairs to color transfer function via VTK interface");
87 myTransferFunction->AddScalarOpacityPoint(3.0, 0.2);
89 "Adding new point/value to scalar opacity transfer function via MITK interface");
92 myTransferFunction->AddGradientOpacityPoint(19.0, 1.0);
94 "Adding new point/value to gradient opacity transfer function via MITK interface");
97 myTransferFunction->AddRGBPoint(1.0, 0.0, 0.1, 0.2);
99 "Adding new point/value to color transfer function via MITK interface");
104 v1 = myTransferFunction->GetScalarOpacityFunction()->GetValue(3.0);
105 v2 = myTransferFunction->GetScalarOpacityFunction()->GetValue(10.0);
107 "Retrieving values at two points from scalar opacity transfer function");
110 v1 = myTransferFunction->GetGradientOpacityFunction()->GetValue(0.0);
111 v2 = myTransferFunction->GetGradientOpacityFunction()->GetValue(19.0);
113 "Retrieving values at two points from gradient opacity transfer function");
116 double vrgb1[3], vrgb2[3];
117 myTransferFunction->GetColorTransferFunction()->GetColor(1.0, vrgb1);
118 myTransferFunction->GetColorTransferFunction()->GetColor(4.0, vrgb2);
119 std::cout << vrgb2[0] <<
", " << vrgb2[1] <<
", " << vrgb2[2] << std::endl;
121 (fabs(vrgb1[2] - 0.2) < 1.0e-5) && (fabs(vrgb2[0] - 0.6) < 1.0e-5) &&
122 (fabs(vrgb2[1] - 0.5) < 1.0e-5) && (fabs(vrgb2[2] - 0.4) < 1.0e-5),
123 "Retrieving values at two points from color transfer function");
129 "Removing point from scalar opacity transfer function (should return point index)");
134 "Removing point from gradient opacity transfer function (should return point index)");
139 "Removing point from color transfer function (should return point ndex)");
144 myTransferFunction->RemoveScalarOpacityPoint(2.5) == -1,
145 "Trying to remove non-existing point from scalar opacity transfer function (should return -1)");
149 myTransferFunction->RemoveGradientOpacityPoint(2.5) == -1,
150 "Trying to remove non-existing point from gradient opacity transfer function (should return -1)");
154 "Trying to remove non-existing point from color transfer function (should return -1)");
160 (fabs(newScalarOpacityPoints[2].first - 10.0) < 1.0e-5) &&
161 (fabs(newScalarOpacityPoints[2].second - 1.0) < 1.0e-5),
162 "Retrieving copy of scalar opacity points (checking for correct content and size)");
167 (fabs(newGradientOpacityPoints[3].first - 19.0) < 1.0e-5) &&
168 (fabs(newGradientOpacityPoints[3].second - 1.0) < 1.0e-5),
169 "Retrieving copy of gradient opacity points (checking for correct content and size)");
174 (newRGBPoints.size() == 4) && (fabs(newRGBPoints[3].first - 4.0) < 1.0e-5) &&
175 (fabs(newRGBPoints[3].second[0] - 0.6) < 1.0e-5) && (fabs(newRGBPoints[3].second[1] - 0.5) < 1.0e-5) &&
176 (fabs(newRGBPoints[3].second[2] - 0.4) < 1.0e-5),
177 "Retrieving copy of color transfer function points (checking for correct content and size)");
181 myTransferFunction->ClearScalarOpacityPoints();
183 "Clearing scalar opacity points (resulting array should be empty)");
185 myTransferFunction->ClearGradientOpacityPoints();
187 "Clearing gradient opacity points (resulting array should be empty)");
189 myTransferFunction->ClearRGBPoints();
191 "Clearing color transfer function points (resulting array should be empty)");
199 "Testing if Transferfunction is the correct one");
201 transferInit->SetTransferFunction(myTransferFunction);
204 "Testing if Set Transferfunction works");
206 "Testing if Set Transferfunction sets the correct one");
209 int arPointNumbers[size][3] = {
210 {3, 1, 6}, {2, 1, 2}, {4, 1, 5}, {3, 1, 5}, {4, 1, 7}, {4, 2, 7}, {4, 1, 4}, {6, 2, 6}};
212 std::string names[size] = {
"SetDefaultMode",
213 "SetCtBlackWhiteMode",
214 "SetCtThoraxLargeMode",
215 "SetCtThoraxSmallMode",
217 "SetCtBoneGradientMode",
221 for (
int i = 0; i < size; i++)
223 transferInit->SetTransferFunctionMode(i);
225 std::cout <<
"Punkte: " << myTransferFunction->GetScalarOpacityFunction()->GetSize() << std::endl;
227 "Testing if in " << names[i] <<
" the Scalar Opacity Function is set");
229 "Testing if in " << names[i] <<
" the Gradient Opacity Function is set");
231 "Testing if in " << names[i] <<
" the Color Transfer Function is set");
#define MITK_TEST_CONDITION_REQUIRED(COND, MSG)
int mitkTransferFunctionTest(int, char *[])
section GeneralTestsDeprecatedOldTestingStyle Deprecated macros All tests with MITK_TEST_BEGIN()
std::vector< std::pair< double, itk::RGBPixel< double > > > RGBControlPoints
std::vector< std::pair< double, double > > ControlPoints