RTK  1.4.0
Reconstruction Toolkit
rtkOraGeometryReader.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright RTK Consortium
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0.txt
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  *=========================================================================*/
18 
19 #ifndef rtkOraGeometryReader_h
20 #define rtkOraGeometryReader_h
21 
22 #include <itkLightProcessObject.h>
24 #include "RTKExport.h"
25 
26 namespace rtk
27 {
28 
39 class RTK_EXPORT OraGeometryReader : public itk::LightProcessObject
40 {
41 public:
46 
53 
56 
58  itkNewMacro(Self);
59 
61  itkGetModifiableObjectMacro(Geometry, GeometryType);
62 
64  typedef std::vector<std::string> FileNamesContainer;
65 
68  void SetProjectionsFileNames (const FileNamesContainer &name)
69  {
70  if ( m_ProjectionsFileNames != name)
71  {
72  m_ProjectionsFileNames = name;
73  this->Modified();
74  }
75  }
76  const FileNamesContainer & GetProjectionsFileNames() const
77  {
78  return m_ProjectionsFileNames;
79  }
81 
86  itkGetMacro(CollimationMargin, MarginVectorType)
87  itkSetMacro(CollimationMargin, MarginVectorType)
88 
89 
90 protected:
91  OraGeometryReader(): m_Geometry(ITK_NULLPTR), m_CollimationMargin(0.) {};
92 
93  virtual ~OraGeometryReader() ITK_OVERRIDE {}
94 
95 private:
96  //purposely not implemented
97  OraGeometryReader(const Self&);
98  void operator=(const Self&);
99 
100  void GenerateData() ITK_OVERRIDE;
101 
103  FileNamesContainer m_ProjectionsFileNames;
104  MarginVectorType m_CollimationMargin;
105 };
106 
107 }
108 
109 #endif // rtkOraGeometryReader_h
void SetProjectionsFileNames(const FileNamesContainer &name)
virtual ~OraGeometryReader() override
itk::SmartPointer< Self > Pointer
GeometryType::PointType PointType
const FileNamesContainer & GetProjectionsFileNames() const
GeometryType::Matrix3x3Type Matrix3x3Type
Projection geometry for a source and a 2-D flat panel.
MarginVectorType m_CollimationMargin
std::vector< std::string > FileNamesContainer
itk::LightProcessObject Superclass
FileNamesContainer m_ProjectionsFileNames
itk::Vector< double, 4 > MarginVectorType
ThreeDCircularProjectionGeometry GeometryType
GeometryType::VectorType VectorType
GeometryType::Pointer m_Geometry
#define itkSetMacro(name, type)