Orfeo Toolbox  3.16
otbImageLayerRenderingModel.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: ORFEO Toolbox
4  Language: C++
5  Date: $Date$
6  Version: $Revision$
7 
8 
9  Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
10  See OTBCopyright.txt for details.
11 
12 
13  This software is distributed WITHOUT ANY WARRANTY; without even
14  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15  PURPOSE. See the above copyright notices for more information.
16 
17 =========================================================================*/
18 #ifndef __otbImageLayerRenderingModel_h
19 #define __otbImageLayerRenderingModel_h
20 
21 #include "otbMVCModel.h"
22 #include "otbLayerBasedModel.h"
23 #include "otbImageLayerBase.h"
24 #include "otbObjectList.h"
26 #include "otbBlendingImageFilter.h"
27 #include "otbListenerBase.h"
28 
29 namespace otb
30 {
44 template <class TOutputImage,
45  class TLayer = otb::ImageLayerBase<TOutputImage> >
47  : public MVCModel<ListenerBase>, public LayerBasedModel<TLayer>
48 {
49 public:
55 
58 
60  itkNewMacro(Self);
61 
63  typedef TOutputImage OutputImageType;
64  typedef typename OutputImageType::Pointer OutputImagePointerType;
65 
67  typedef typename Superclass::LayerType LayerType;
68  typedef typename LayerType::RegionType RegionType;
69  typedef typename RegionType::IndexType IndexType;
70  typedef typename RegionType::SizeType SizeType;
71 
76 
79 
82 
87 
89  itkGetStringMacro(Name);
90  itkSetStringMacro(Name);
91 
93  itkGetObjectMacro(RasterizedQuicklook, OutputImageType);
94  itkGetObjectMacro(RasterizedExtract, OutputImageType);
95  itkGetObjectMacro(RasterizedScaledExtract, OutputImageType);
96 
98  itkSetMacro(ExtractRegion, RegionType);
99  itkGetConstReferenceMacro(ExtractRegion, RegionType);
100 
102  itkSetMacro(ScaledExtractRegion, RegionType);
103  itkGetConstReferenceMacro(ScaledExtractRegion, RegionType);
104 
106  itkGetMacro(HasQuicklook, bool);
107  itkGetMacro(HasExtract, bool);
108  itkGetMacro(HasScaledExtract, bool);
109 
112  virtual void Update(void);
113 
116  virtual void SetScaledExtractRegionCenter(const IndexType& index);
117 
120  virtual void SetExtractRegionCenter(const IndexType& index);
121 
124  virtual void SetExtractRegionByIndex(const IndexType& startIndex, const IndexType& stopIndex);
125 
127  virtual unsigned int GetSubsamplingRate();
128 
130  virtual void Init();
131 
132 protected:
136  virtual ~ImageLayerRenderingModel();
137 
139  virtual void PrintSelf(std::ostream& os, itk::Indent indent) const;
140 
142  virtual void RenderVisibleLayers(void);
143 
145  virtual void RasterizeVisibleLayers(void);
146 
148  virtual void NotifyListener(ListenerType * listener);
149 
151  virtual RegionType ConstrainRegion(const RegionType& region, const RegionType& largest);
152 
153 private:
154  ImageLayerRenderingModel(const Self&); // purposely not implemented
155  void operator =(const Self&); // purposely not implemented
156 
158  std::string m_Name;
159 
163 
168 
173 
176 
181 
182 }; // end class
183 } // end namespace otb
184 
185 #ifndef OTB_MANUAL_INSTANTIATION
187 #endif
188 
189 #endif

Generated at Sun May 19 2013 00:27:34 for Orfeo Toolbox with doxygen 1.8.3.1