go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itkAdvancedRayCastInterpolateImageFunction.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3 Program: Insight Segmentation & Registration Toolkit
4 Module: $RCSfile: itkAdvancedRayCastInterpolateImageFunction.h,v $
5 Language: C++
6 Date: $Date: 2009-04-23 03:53:36 $
7 Version: $Revision: 1.17 $
8 
9 Copyright (c) Insight Software Consortium. All rights reserved.
10 See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.
11 
12 This software is distributed WITHOUT ANY WARRANTY; without even
13 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
14 PURPOSE. See the above copyright notices for more information.
15 
16 =========================================================================*/
17 #ifndef __itkAdvancedRayCastInterpolateImageFunction_h
18 #define __itkAdvancedRayCastInterpolateImageFunction_h
19 
20 #include "itkInterpolateImageFunction.h"
21 #include "itkTransform.h"
22 #include "itkVector.h"
23 
24 namespace itk
25 {
26 
38 template< class TInputImage, class TCoordRep = double >
40  public InterpolateImageFunction< TInputImage, TCoordRep >
41 {
42 public:
43 
46  typedef InterpolateImageFunction< TInputImage, TCoordRep > Superclass;
47  typedef SmartPointer< Self > Pointer;
48  typedef SmartPointer< const Self > ConstPointer;
49 
51  itkStaticConstMacro( InputImageDimension, unsigned int,
52  TInputImage::ImageDimension );
53 
58  typedef Transform< TCoordRep, InputImageDimension, InputImageDimension > TransformType;
59 
60  typedef typename TransformType::Pointer TransformPointer;
61  typedef typename TransformType::InputPointType InputPointType;
62  typedef typename TransformType::OutputPointType OutputPointType;
63  typedef typename TransformType::ParametersType TransformParametersType;
64  typedef typename TransformType::JacobianType TransformJacobianType;
65 
66  typedef typename Superclass::InputPixelType PixelType;
67 
68  typedef typename TInputImage::SizeType SizeType;
69 
70  typedef Vector< TCoordRep, InputImageDimension > DirectionType;
71 
73  typedef InterpolateImageFunction< TInputImage, TCoordRep > InterpolatorType;
74 
75  typedef typename InterpolatorType::Pointer InterpolatorPointer;
76 
78  itkTypeMacro( AdvancedRayCastInterpolateImageFunction, InterpolateImageFunction );
79 
81  itkNewMacro( Self );
82 
84  typedef typename Superclass::OutputType OutputType;
85 
87  typedef typename Superclass::InputImageType InputImageType;
88 
90  typedef typename Superclass::RealType RealType;
91 
93  itkStaticConstMacro( ImageDimension, unsigned int, Superclass::ImageDimension );
94 
96  typedef typename Superclass::PointType PointType;
97 
99  typedef typename Superclass::IndexType IndexType;
100 
102  typedef typename Superclass::ContinuousIndexType ContinuousIndexType;
103 
114  virtual OutputType Evaluate( const PointType & point ) const;
115 
128  const ContinuousIndexType & index ) const;
129 
131  itkSetObjectMacro( Transform, TransformType );
133  itkGetObjectMacro( Transform, TransformType );
134 
136  itkSetObjectMacro( Interpolator, InterpolatorType );
138  itkGetObjectMacro( Interpolator, InterpolatorType );
139 
141  itkSetMacro( FocalPoint, InputPointType );
143  itkGetConstMacro( FocalPoint, InputPointType );
144 
146  itkSetMacro( Threshold, double );
148  itkGetConstMacro( Threshold, double );
149 
153  inline bool IsInsideBuffer( const PointType & ) const
154  {
155  return true;
156  }
157 
158 
159  bool IsInsideBuffer( const ContinuousIndexType & ) const
160  {
161  return true;
162  }
163 
164 
165  bool IsInsideBuffer( const IndexType & ) const
166  {
167  return true;
168  }
169 
170 
171 protected:
172 
175 
178 
180  void PrintSelf( std::ostream & os, Indent indent ) const;
181 
184 
187 
189  double m_Threshold;
190 
193 
194 private:
195 
196  AdvancedRayCastInterpolateImageFunction( const Self & ); // purposely not implemented
197  void operator=( const Self & ); // purposely not implemented
198 
199 };
200 
201 } // namespace itk
202 
203 #ifndef ITK_MANUAL_INSTANTIATION
204 #include "itkAdvancedRayCastInterpolateImageFunction.hxx"
205 #endif
206 
207 #endif
void PrintSelf(std::ostream &os, Indent indent) const
Print the object.
Transform< TCoordRep, InputImageDimension, InputImageDimension > TransformType
virtual OutputType Evaluate(const PointType &point) const
Interpolate the image at a point position.
InterpolateImageFunction< TInputImage, TCoordRep > Superclass
itkStaticConstMacro(InputImageDimension, unsigned int, TInputImage::ImageDimension)
TransformPointer m_Transform
Transformation used to calculate the new focal point position.
InputPointType m_FocalPoint
The focal point or position of the ray source.
InterpolateImageFunction< TInputImage, TCoordRep > InterpolatorType
double m_Threshold
The threshold above which voxels along the ray path are integrated.
InterpolatorPointer m_Interpolator
Pointer to the interpolator.
Projective interpolation of an image at specified positions.
virtual OutputType EvaluateAtContinuousIndex(const ContinuousIndexType &index) const


Generated on 27-04-2014 for elastix by doxygen 1.8.6 elastix logo