File: otbPointSetToDensityImageFilter.h

package info (click to toggle)
otb 5.8.0%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 38,496 kB
  • ctags: 40,282
  • sloc: cpp: 306,573; ansic: 3,575; python: 450; sh: 214; perl: 74; java: 72; makefile: 70
file content (118 lines) | stat: -rw-r--r-- 3,550 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
/*=========================================================================

  Program:   ORFEO Toolbox
  Language:  C++
  Date:      $Date$
  Version:   $Revision$


  Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
  See OTBCopyright.txt for details.

  Copyright (c) CS Systemes d'information. All rights reserved.
  See CSCopyright.txt for details.

     This software is distributed WITHOUT ANY WARRANTY; without even
     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
     PURPOSE.  See the above copyright notices for more information.

=========================================================================*/
#ifndef otbPointSetToDensityImageFilter_h
#define otbPointSetToDensityImageFilter_h

#include "itkProcessObject.h"
#include "itkPointSet.h"
#include "itkPointSetToImageFilter.h"
#include "otbPointSetDensityFunction.h"
#include "itkPoint.h"

namespace otb
{

/** \class PointSetToDensityImageFilter
 *  \brief Draw the density of a point set on an image
 *
 * \ingroup OTBDensity
 */

template <class TInputPointSet, class TOutputImage,
    class TDensityFunction = PointSetDensityFunction<TInputPointSet, typename TOutputImage::PixelType> >
class ITK_EXPORT PointSetToDensityImageFilter
  : public itk::PointSetToImageFilter<TInputPointSet, TOutputImage>
{

public:

  /** Standard class typedefs. */
  typedef PointSetToDensityImageFilter                             Self;
  typedef itk::PointSetToImageFilter<TInputPointSet, TOutputImage> Superclass;
  typedef itk::SmartPointer<Self>                                  Pointer;
  typedef itk::SmartPointer<const Self>                            ConstPointer;

  /** Method for creation through the object factory. */
  itkNewMacro(Self);

  /** Run-time type information (and related methods). */
  itkTypeMacro(PointSetToDensityImageFilter, itk::PointSetToImageFilter);

  /**   typedefs parameters support */
  typedef TInputPointSet PointSetType;

  typedef TOutputImage                          OutputImageType;
  typedef typename  OutputImageType::PixelType  PixelType;
  typedef typename  OutputImageType::IndexType  IndexType;
  typedef typename  OutputImageType::RegionType OutputImageRegionType;

  /**   typedef filter support*/
  typedef TDensityFunction                                PointSetDensityFunctionType;
  typedef typename PointSetDensityFunctionType::InputType InputType;
  typedef typename PointSetDensityFunctionType::Pointer   PointSetDensityFunctionPointerType;

  /** Set/Get Radius*/
  itkGetMacro(Radius, unsigned int);
  itkSetMacro(Radius, unsigned int);

protected:

  /**
   * Constructor.
   */
  PointSetToDensityImageFilter();
  /**
   * Destructor.
   */
  ~PointSetToDensityImageFilter() ITK_OVERRIDE {}
  /**
   * Standard PrintSelf method.
   */
  void PrintSelf(std::ostream& os, itk::Indent indent) const ITK_OVERRIDE;

  /**
   * Call the ImageSource::GenerateData which handle multithreading
   */
  void GenerateData() ITK_OVERRIDE;

  /**
   * Main computation method.
   */
  void ThreadedGenerateData(const OutputImageRegionType& outputRegionForThread,
                            itk::ThreadIdType threadId) ITK_OVERRIDE;

  /**
  * Main computation method.
  */
  void  GenerateOutputInformation() ITK_OVERRIDE;

private:

  PointSetToDensityImageFilter(const Self &); //purposely not implemented
  void operator =(const Self&); //purposely not implemented

  unsigned int m_Radius;
};
}
#ifndef OTB_MANUAL_INSTANTIATION
#include "otbPointSetToDensityImageFilter.txx"
#endif

#endif