NifTK  16.4.1 - 0798f20
CMIC's Translational Medical Imaging Platform
niftkICPRegServiceRAII.h
Go to the documentation of this file.
1 /*=============================================================================
2 
3  NifTK: A software platform for medical image computing.
4 
5  Copyright (c) University College London (UCL). All rights reserved.
6 
7  This software is distributed WITHOUT ANY WARRANTY; without even
8  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
9  PURPOSE.
10 
11  See LICENSE.txt in the top level directory for details.
12 
13 =============================================================================*/
14 
15 #ifndef niftkICPRegServiceRAII_h
16 #define niftkICPRegServiceRAII_h
17 
18 #include <niftkIGIServicesExports.h>
20 
21 #include <usServiceReference.h>
22 #include <usModuleContext.h>
23 
24 #include <mitkDataNode.h>
25 #include <vtkMatrix4x4.h>
26 
27 namespace niftk
28 {
29 
36 class NIFTKIGISERVICES_EXPORT ICPRegServiceRAII : public SurfaceRegServiceI
37 {
38 
39 public:
40 
46  ICPRegServiceRAII(const int& maxLandmarks, const int& maxIterations);
47 
51  virtual ~ICPRegServiceRAII();
52 
57  virtual double Register(const mitk::DataNode::Pointer fixedDataSet,
58  const mitk::DataNode::Pointer movingDataSet,
59  vtkMatrix4x4& matrix) const override;
60 
61 private:
62  ICPRegServiceRAII(const ICPRegServiceRAII&); // deliberately not implemented
63  ICPRegServiceRAII& operator=(const ICPRegServiceRAII&); // deliberately not implemented
64 
65  us::ModuleContext* m_ModuleContext;
66  std::vector<us::ServiceReference<SurfaceRegServiceI> > m_Refs;
67  niftk::SurfaceRegServiceI* m_Service;
68 };
69 
70 } // end namespace
71 
72 #endif
GLuint GLenum matrix
Definition: glew.h:12775
Interface for a Surface Based Registration Service.
Definition: niftkSurfaceRegServiceI.h:34
Definition: niftkExceptionObject.h:21
RAII object to run ICP Surface Based Registration.
Definition: niftkICPRegServiceRAII.h:36