26 #include <itkVectorContainer.h> 29 #include <vtkDebugLeaks.h> 30 #include <vtkRegressionTestImage.h> 43 MITK_WARN <<
"Test not run: " << e.GetDescription();
54 vtkDebugLeaks::SetExitError(0);
59 MITK_TEST_OUTPUT(<<
"Usage: " << std::string(*argv) <<
" [file1 file2 ...] outputfile")
60 MITK_TEST_OUTPUT(<<
"Will render a central axial slice of all given files into outputfile")
64 double renderWindowWidth = atof(argv[1]);
65 double renderWindowHeight = atof(argv[2]);
66 double left = atof(argv[3]);
67 double bottom = atof(argv[4]);
68 double right = atof(argv[5]);
69 double top = atof(argv[6]);
70 std::string referenceFilename = argv[8 + 6];
74 MITK_INFO <<
"Testing viewport " << right - left <<
"x" << top - bottom <<
" (" << left <<
", " << bottom <<
") to (" 75 << right <<
", " << top <<
") " 76 <<
"in render window of size " << renderWindowWidth <<
"x" << renderWindowHeight <<
"px";
86 ObjectsSet::ConstPointer figures =
88 for (
auto iterFigures = figures->begin(); iterFigures != figures->end(); ++iterFigures)
96 ObjectsSet::ConstPointer surfaces =
98 for (
auto iterSurfaces = surfaces->begin(); iterSurfaces != surfaces->end(); ++iterSurfaces)
103 ObjectsSet::ConstPointer
images =
105 for (
auto iterImages = images->begin(); iterImages != images->end(); ++iterImages)
108 int imageWidth =
dynamic_cast<mitk::Image *
>((*iterImages)->GetData())->GetDimension(0);
109 int imageHeight =
dynamic_cast<mitk::Image *
>((*iterImages)->GetData())->GetDimension(1);
110 MITK_INFO <<
"Image dimension " << imageWidth <<
"x" << imageHeight;
113 double vLeft = left / renderWindowWidth;
114 double vBottom = bottom / renderWindowHeight;
115 double vRight = right / renderWindowWidth;
116 double vTop = top / renderWindowHeight;
120 renderingHelper.
GetDataStorage()->ComputeBoundingGeometry3D(images));
122 renderingHelper.
GetVtkRenderer()->SetViewport(vLeft, vBottom, vRight, vTop);
126 bool generateReferenceScreenshot =
false;
127 if (generateReferenceScreenshot)
129 std::string tmpFilename = referenceFilename;
130 std::string::size_type slashpos = referenceFilename.find_last_of(
'/');
131 tmpFilename = referenceFilename.substr(slashpos + 1);
132 tmpFilename = std::string(
"/tmp/") + tmpFilename;
134 MITK_INFO <<
"*********************************";
136 MITK_INFO <<
"*********************************";
146 int retVal = vtkRegressionTestImageThreshold(renderingHelper.
GetVtkRenderWindow(), 20.0);
void SaveAsPNG(std::string fileName)
Method can be used to save a screenshot (e.g. reference screenshot as a .png file.
virtual bool InitializeViews(const BaseGeometry *geometry, RequestType type=REQUEST_UPDATE_ALL, bool preserveRoughOrientationInWorldSpace=false)
int mitkViewportRenderingTest(int argc, char *argv[])
void SetViewDirection(mitk::SliceNavigationController::ViewDirection viewDirection)
Set the view direction of the renderwindow (e.g. sagittal, coronal, axial)
vtkRenderWindow * GetVtkRenderWindow()
Getter for the vtkRenderWindow which should be used to call vtkRegressionTestImage.
section GeneralTestsDeprecatedOldTestingStyle Deprecated macros All tests with MITK_TEST_BEGIN()
Tests for type compatibility (dynamic_cast).
#define MITK_TEST_OUTPUT(x)
Output some text.
The LevelWindow class Class to store level/window values.
void Render()
Render everything into an mitkRenderWindow. Call SetViewDirection() and SetProperty() before this met...
#define MITK_TEST_CONDITION(COND, MSG)
static RenderingManager * GetInstance()
Specialized mitk::Exception for skipped tests.
Image class for storing images.
itk::VectorContainer< unsigned int, DataNode::Pointer > SetOfObjects
A Container of objects that is used as a result set of GetSubset() query operations (Set of...
mitk::DataStorage::Pointer GetDataStorage()
Returns the datastorage, in order to modify the data inside a rendering test.
vtkRenderer * GetVtkRenderer()
Getter for the vtkRenderer.
void SetAutomaticallyCloseRenderWindow(bool automaticallyCloseRenderWindow)
SetStopRenderWindow Convenience method to make the renderwindow hold after rendering. Usefull for debugging.