Orfeo Toolbox  4.2
itkBSplineScatteredDataPointSetToImageFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright Insight Software 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 #ifndef __itkBSplineScatteredDataPointSetToImageFilter_h
19 #define __itkBSplineScatteredDataPointSetToImageFilter_h
20 
22 
25 #include "itkVectorContainer.h"
26 
27 #include "vnl/vnl_matrix.h"
28 
29 namespace itk
30 {
128 template< typename TInputPointSet, typename TOutputImage >
130  public PointSetToImageFilter< TInputPointSet, TOutputImage >
131 {
132 public:
137 
139  itkNewMacro( Self );
140 
142  itkStaticConstMacro( ImageDimension, unsigned int,
143  TOutputImage::ImageDimension );
144 
145  typedef TOutputImage ImageType;
146  typedef TInputPointSet PointSetType;
147 
149  typedef typename ImageType::PixelType PixelType;
150  typedef typename ImageType::RegionType RegionType;
151  typedef typename ImageType::SizeType SizeType;
152  typedef typename ImageType::IndexType IndexType;
153 
155  typedef typename PointSetType::PointType PointType;
156  typedef typename PointSetType::Pointer PointSetPointer;
157  typedef typename PointSetType::PixelType PointDataType;
158  typedef typename PointSetType::PointDataContainer PointDataContainerType;
159 
161  typedef float RealType;
163 
165  typedef Image<PointDataType,
166  itkGetStaticConstMacro( ImageDimension )> PointDataImageType;
167  typedef Image<RealType,
168  itkGetStaticConstMacro( ImageDimension )> RealImageType;
171  typedef FixedArray<unsigned,
172  itkGetStaticConstMacro( ImageDimension )> ArrayType;
173 
182 
183  // Helper functions
184 
191  void SetSplineOrder( unsigned int );
192 
198  void SetSplineOrder( const ArrayType & );
199 
205  itkGetConstReferenceMacro( SplineOrder, ArrayType );
206 
212  itkSetMacro( NumberOfControlPoints, ArrayType );
213 
219  itkGetConstReferenceMacro( NumberOfControlPoints, ArrayType );
220 
226  itkGetConstReferenceMacro( CurrentNumberOfControlPoints, ArrayType );
227 
234  void SetNumberOfLevels( unsigned int );
235 
242  void SetNumberOfLevels( const ArrayType & );
243 
250  itkGetConstReferenceMacro( NumberOfLevels, ArrayType );
251 
268  itkSetMacro( CloseDimension, ArrayType );
269 
286  itkGetConstReferenceMacro( CloseDimension, ArrayType );
287 
292  void SetPointWeights( WeightsContainerType *weights );
293 
299  itkSetMacro( GenerateOutputImage, bool );
300 
306  itkGetConstReferenceMacro( GenerateOutputImage, bool );
307 
313  itkBooleanMacro( GenerateOutputImage );
314 
318  itkGetConstMacro( PhiLattice, PointDataImagePointer );
319 
320 protected:
323 
324  void PrintSelf(std::ostream & os, Indent indent) const;
325 
327 
329 
331 
332  unsigned int SplitRequestedRegion( unsigned int, unsigned int, RegionType & );
333 
334  void GenerateData();
335 
336 private:
337 
338  //purposely not implemented
340  void operator=( const Self & );
341 
347 
351  void UpdatePointSet();
352 
357  void GenerateOutputImage();
358 
363 
368 
374  const RealType, const unsigned int );
375 
381 
386  IndexType NumberToIndex( const unsigned int, const SizeType );
387 
392  unsigned int m_CurrentLevel;
398 
400 
403 
405 
406  typename PointDataContainerType::Pointer m_InputPointData;
407  typename PointDataContainerType::Pointer m_OutputPointData;
408 
410 
415 
416  std::vector<RealImagePointer> m_OmegaLatticePerThread;
417  std::vector<PointDataImagePointer> m_DeltaLatticePerThread;
418 
421 };
422 } // end namespace itk
423 
424 #ifndef ITK_MANUAL_INSTANTIATION
426 #endif
427 
428 #endif

Generated at Sat Jul 26 2014 14:25:27 for Orfeo Toolbox with doxygen 1.8.3.1