101 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
		
		
			
		
	
	
			101 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
|   | diff --git a/include/rtkProjectionGeometry.h b/include/rtkProjectionGeometry.h
 | ||
|  | index e5831611f..73ed2b74f 100644
 | ||
|  | --- a/include/rtkProjectionGeometry.h
 | ||
|  | +++ b/include/rtkProjectionGeometry.h
 | ||
|  | @@ -23,6 +23,7 @@
 | ||
|  |   | ||
|  |  #include <vector> | ||
|  |   | ||
|  | +#include "RTKExport.h"
 | ||
|  |  #include "rtkMacro.h" | ||
|  |   | ||
|  |  namespace rtk | ||
|  | @@ -67,25 +68,18 @@ public:
 | ||
|  |     * with the i-th matrix provides the physical coordinate on | ||
|  |     * the i-th projection. | ||
|  |     */ | ||
|  | -  const std::vector<MatrixType> &
 | ||
|  | -  GetMatrices() const
 | ||
|  | -  {
 | ||
|  | -    return this->m_Matrices;
 | ||
|  | -  }
 | ||
|  | +  itkGetConstReferenceMacro(Matrices,std::vector<MatrixType>)
 | ||
|  |   | ||
|  |    /** Get the i-th projection matrix. */ | ||
|  |    MatrixType | ||
|  | -  GetMatrix(const unsigned int i) const
 | ||
|  | -  {
 | ||
|  | -    return this->m_Matrices[i];
 | ||
|  | -  }
 | ||
|  | +  GetMatrix(const unsigned int i) const;
 | ||
|  |   | ||
|  |    /** Empty the geometry object. */ | ||
|  |    virtual void | ||
|  |    Clear(); | ||
|  |   | ||
|  |  protected: | ||
|  | -  ProjectionGeometry() = default;
 | ||
|  | +  ProjectionGeometry();
 | ||
|  |    ~ProjectionGeometry() override = default; | ||
|  |   | ||
|  |    void | ||
|  | @@ -93,11 +87,7 @@ protected:
 | ||
|  |   | ||
|  |    /** Add projection matrix */ | ||
|  |    virtual void | ||
|  | -  AddMatrix(const MatrixType & m)
 | ||
|  | -  {
 | ||
|  | -    this->m_Matrices.push_back(m);
 | ||
|  | -    this->Modified();
 | ||
|  | -  }
 | ||
|  | +  AddMatrix(const MatrixType & m);
 | ||
|  |   | ||
|  |  private: | ||
|  |    /** Projection matrices */ | ||
|  | @@ -105,6 +95,9 @@ private:
 | ||
|  |  }; | ||
|  |  } // namespace rtk | ||
|  |   | ||
|  | -#include "rtkProjectionGeometry.hxx"
 | ||
|  | +#ifndef ITK_MANUAL_INSTANTIATION
 | ||
|  | +#   include "rtkProjectionGeometry.hxx"
 | ||
|  | +#endif
 | ||
|  | +
 | ||
|  |   | ||
|  |  #endif // rtkProjectionGeometry_h | ||
|  | diff --git a/include/rtkProjectionGeometry.hxx b/include/rtkProjectionGeometry.hxx
 | ||
|  | index 192265812..97dfe8c3a 100644
 | ||
|  | --- a/include/rtkProjectionGeometry.hxx
 | ||
|  | +++ b/include/rtkProjectionGeometry.hxx
 | ||
|  | @@ -23,6 +23,8 @@
 | ||
|  |   | ||
|  |  namespace rtk | ||
|  |  { | ||
|  | +template <unsigned int TDimension>
 | ||
|  | +ProjectionGeometry<TDimension>::ProjectionGeometry() = default;
 | ||
|  |   | ||
|  |  template <unsigned int TDimension> | ||
|  |  void | ||
|  | @@ -43,6 +45,21 @@ ProjectionGeometry<TDimension>::Clear()
 | ||
|  |    this->Modified(); | ||
|  |  } | ||
|  |   | ||
|  | +template <unsigned int TDimension>
 | ||
|  | +typename ProjectionGeometry<TDimension>::MatrixType
 | ||
|  | +ProjectionGeometry<TDimension>::GetMatrix(const unsigned int i) const
 | ||
|  | +{
 | ||
|  | +  return this->m_Matrices[i];
 | ||
|  | +}
 | ||
|  | +
 | ||
|  | +template <unsigned int TDimension>
 | ||
|  | +void
 | ||
|  | +ProjectionGeometry<TDimension>::AddMatrix(const typename ProjectionGeometry<TDimension>::MatrixType & m)
 | ||
|  | +{
 | ||
|  | +  this->m_Matrices.push_back(m);
 | ||
|  | +  this->Modified();
 | ||
|  | +}
 | ||
|  | +
 | ||
|  |  } // namespace rtk | ||
|  |   | ||
|  |  #endif // rtkProjectionGeometry_hxx |