Medical Imaging Interaction Toolkit  2018.4.99-389bf124
Medical Imaging Interaction Toolkit
mitkSurfaceVtkMapper3DTest.cpp
Go to the documentation of this file.
1 /*============================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center (DKFZ)
6 All rights reserved.
7 
8 Use of this source code is governed by a 3-clause BSD license that can be
9 found in the LICENSE file.
10 
11 ============================================================================*/
12 
16 #include <mitkTestingMacros.h>
17 
18 #include <vtkSmartPointer.h>
19 #include <vtkTexturedSphereSource.h>
20 
22 {
23  auto source = vtkSmartPointer<vtkTexturedSphereSource>::New();
24  source->SetThetaResolution(64);
25  source->SetPhiResolution(32);
26  source->SetRadius(16.0);
27  source->Update();
28 
29  auto surface = mitk::Surface::New();
30  surface->SetVtkPolyData(source->GetOutput());
31 
32  return surface;
33 }
34 
36 {
37  auto node = mitk::DataNode::New();
38  node->SetData(CreateTexturedSphere());
39 
40  dataStorage->Add(node);
41 }
42 
43 int mitkSurfaceVtkMapper3DTest(int argc, char *argv[])
44 {
45  MITK_TEST_BEGIN("mitkSurfaceVtkMapper3DTest")
46 
47  try
48  {
49  mitk::RenderingTestHelper openGlTest(640, 480);
50  }
51  catch (const mitk::TestNotRunException &e)
52  {
53  MITK_WARN << "Test not run: " << e.GetDescription();
54  return 77;
55  }
56 
57  mitk::RenderingTestHelper renderingHelper(640, 480, argc, argv);
58 
60  renderingHelper.GetVtkRenderer()->SetBackground(0.5, 0.5, 0.5);
61 
62  auto dataStorage = renderingHelper.GetDataStorage();
63  AddGeneratedDataToStorage(dataStorage);
64 
65  mitk::DataNode::Pointer textureNode = dataStorage->GetNode(mitk::NodePredicateDataType::New("Image"));
66  mitk::Image::Pointer texture = dynamic_cast<mitk::Image *>(textureNode->GetData());
67 
68  mitk::DataNode::Pointer surfaceNode = dataStorage->GetNode(mitk::NodePredicateDataType::New("Surface"));
69  mitk::Surface::Pointer surface = dynamic_cast<mitk::Surface *>(surfaceNode->GetData());
70 
71  auto textureProperty = mitk::SmartPointerProperty::New(texture);
72  surfaceNode->SetProperty("Surface.Texture", textureProperty);
73 
74  textureNode->SetVisibility(false);
75 
77 
78  // use this to generate a reference screenshot or save the file:
79  bool generateReferenceScreenshot = false;
80  if (generateReferenceScreenshot)
81  {
82  renderingHelper.SaveReferenceScreenShot("/home/kilgus/output.png");
83  }
84 
86  true == renderingHelper.CompareRenderWindowAgainstReference(argc, argv),
87  "CompareRenderWindowAgainstReference test result positive?");
88 
89  MITK_TEST_END();
90 }
Class for storing surfaces (vtkPolyData).
Definition: mitkSurface.h:28
Data management class that handles &#39;was created by&#39; relations.
void SetMapperID(mitk::BaseRenderer::StandardMapperSlot id)
SetMapperID Change between Standard2D and 3D mappers.
section GeneralTestsDeprecatedOldTestingStyle Deprecated macros All tests with MITK_TEST_BEGIN()
void SaveReferenceScreenShot(std::string fileName)
SaveReferenceScreenShot Convenience method to save a reference screen shot.
virtual void Add(DataNode *node, const DataStorage::SetOfObjects *parents=nullptr)=0
Adds a DataNode containing a data object to its internal storage.
bool CompareRenderWindowAgainstReference(int argc, char *argv[], double threshold=10.0)
CompareRenderWindowAgainstReference Convenience method to compare the image rendered in the internal ...
#define MITK_WARN
Definition: mitkLogMacros.h:19
static Pointer New()
#define MITK_TEST_CONDITION(COND, MSG)
static RenderingManager * GetInstance()
Specialized mitk::Exception for skipped tests.
Image class for storing images.
Definition: mitkImage.h:72
mitk::Surface::Pointer CreateTexturedSphere()
mitk::DataStorage::Pointer GetDataStorage()
Returns the datastorage, in order to modify the data inside a rendering test.
static Pointer New(const char *_arg)
vtkRenderer * GetVtkRenderer()
Getter for the vtkRenderer.
int mitkSurfaceVtkMapper3DTest(int argc, char *argv[])
void AddGeneratedDataToStorage(mitk::DataStorage *dataStorage)
and MITK_TEST_END()
virtual void InitializeViewsByBoundingObjects(const DataStorage *)
Initializes the renderwindows by the aggregated geometry of all objects that are held in the data sto...
static Pointer New()