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:
45  typedef InterpolateImageFunction<TInputImage,TCoordRep> Superclass;
46  typedef SmartPointer<Self> Pointer;
47  typedef SmartPointer<const Self> ConstPointer;
48 
50  itkStaticConstMacro(InputImageDimension, unsigned int,
51  TInputImage::ImageDimension);
52 
57  typedef Transform<TCoordRep,InputImageDimension,InputImageDimension> TransformType;
58 
59  typedef typename TransformType::Pointer TransformPointer;
60  typedef typename TransformType::InputPointType InputPointType;
61  typedef typename TransformType::OutputPointType OutputPointType;
62  typedef typename TransformType::ParametersType TransformParametersType;
63  typedef typename TransformType::JacobianType TransformJacobianType;
64 
65  typedef typename Superclass::InputPixelType PixelType;
66 
67  typedef typename TInputImage::SizeType SizeType;
68 
69  typedef Vector<TCoordRep, InputImageDimension> DirectionType;
70 
72  typedef InterpolateImageFunction<TInputImage,TCoordRep> InterpolatorType;
73 
74  typedef typename InterpolatorType::Pointer InterpolatorPointer;
75 
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 
127  virtual OutputType EvaluateAtContinuousIndex(
128  const ContinuousIndexType &index ) const;
129 
130 
132  itkSetObjectMacro( Transform, TransformType );
134  itkGetObjectMacro( Transform, TransformType );
135 
137  itkSetObjectMacro( Interpolator, InterpolatorType );
139  itkGetObjectMacro( Interpolator, InterpolatorType );
140 
142  itkSetMacro( FocalPoint, InputPointType );
144  itkGetConstMacro( FocalPoint, InputPointType );
145 
147  itkSetMacro( Threshold, double );
149  itkGetConstMacro( Threshold, double );
150 
154  inline bool IsInsideBuffer( const PointType & ) const
155  {
156  return true;
157  }
158  bool IsInsideBuffer( const ContinuousIndexType & ) const
159  {
160  return true;
161  }
162  bool IsInsideBuffer( const IndexType & ) const
163  {
164  return true;
165  }
166 
167 protected:
168 
171 
174 
176  void PrintSelf(std::ostream& os, Indent indent) const;
177 
180 
183 
185  double m_Threshold;
186 
189 
190 
191 private:
192  AdvancedRayCastInterpolateImageFunction( const Self& ); //purposely not implemented
193  void operator=( const Self& ); //purposely not implemented
194 
195 
196 };
197 
198 } // namespace itk
199 
200 #ifndef ITK_MANUAL_INSTANTIATION
201 #include "itkAdvancedRayCastInterpolateImageFunction.txx"
202 #endif
203 
204 #endif
InterpolateImageFunction< TInputImage, TCoordRep > InterpolatorType
TransformPointer m_Transform
Transformation used to calculate the new focal point position.
InputPointType m_FocalPoint
The focal point or position of the ray source.
double m_Threshold
The threshold above which voxels along the ray path are integrated.
InterpolatorPointer m_Interpolator
Pointer to the interpolator.
Transform< TCoordRep, InputImageDimension, InputImageDimension > TransformType
Projective interpolation of an image at specified positions.
InterpolateImageFunction< TInputImage, TCoordRep > Superclass


Generated on 05-12-2013 for elastix by doxygen 1.8.5 elastix logo