OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimResampler.h
Go to the documentation of this file.
1 //*******************************************************************
2 //
3 // License: See top level LICENSE.txt file.
4 //
5 // Author: Garrett Potts
6 //*******************************************************************
7 // $Id: ossimResampler.h 17195 2010-04-23 17:32:18Z dburken $
8 
9 #ifndef ossimResampler_HEADER
10 #define ossimResampler_HEADER
11 
13 #include <ossim/base/ossimIpt.h>
14 #include <ossim/base/ossimDrect.h>
16 
17 class ossimImageData;
18 
33 {
34 public:
36  {
41  };
43 
44 
51  virtual void resample(ossimImageData* input, // input buffer
52  ossimImageData* output);
53 
54 
55  virtual void resample(ossimImageData* input,
56  ossimImageData* output,
57  const ossimDpt& ul,
58  const ossimDpt& ur,
59  const ossimDpt& deltaUl,
60  const ossimDpt& deltaUr,
61  const ossimDpt& length);
62 
63  virtual void resample(ossimImageData* input,
64  ossimImageData* output,
65  const ossimIrect& outputSubRect,
66  const ossimDpt& ul,
67  const ossimDpt& ur,
68  const ossimDpt& deltaUl,
69  const ossimDpt& deltaUr,
70  const ossimDpt& length);
71 
72  virtual void resampleNearestNeighbor(ossimImageData* input,
73  ossimImageData* output,
74  const ossimIrect& outputSubRect,
75  const ossimDpt& ul,
76  const ossimDpt& ur,
77  const ossimDpt& deltaUl,
78  const ossimDpt& deltaUr,
79  const ossimDpt& length);
80 
81  virtual void resampleNearestNeighbor(ossimImageData* input,
82  ossimImageData* output,
83  const ossimDpt& ul,
84  const ossimDpt& ur,
85  const ossimDpt& deltaUl,
86  const ossimDpt& deltaUr,
87  const ossimDpt& length);
92 
94  {
95  return theResamplerType;
96  }
97 
98  virtual double getCubicParameter()const
99  {
101  }
102  virtual void setCubicParameter(double parameter)
103  {
104  theCubicAdjustableParameter = parameter;
108  {
110  }
111  }
115  void setRatio(double outputToInputRatio);
116  void setRatio(const ossimDpt& outputToInputRatio);
118  {
119  return theOutputToInputRatio;
120  }
121  virtual ossim_int32 getKernelWidth()const;
122  virtual ossim_int32 getKernelHeight()const;
123 
128  virtual bool saveState(ossimKeywordlist& kwl,
129  const char* prefix=0)const;
130 
135  virtual bool loadState(const ossimKeywordlist& kwl,
136  const char* prefix=0);
137 
138  bool canConnectMyInputTo(ossim_int32 /* inputIndex */,
139  const ossimConnectableObject* /* object */)const
140  {
141  return false;
142  }
143 protected:
144  virtual ~ossimResampler();
145 
148 
156  double **theWeightTableX;
157  double **theWeightTableY;
158 
166 
167  template <class T>
168  void resampleTile(T, // dummy tmeplate variable
169  ossimImageData* input,
170  ossimImageData* output);
171 
172  template <class T>
173  void resampleFullTile(T, // dummy tmeplate variable
174  ossimImageData* input,
175  ossimImageData* output);
176  template <class T>
177  void resamplePartialTile(T, // dummy tmeplate variable
178  ossimImageData* input,
179  ossimImageData* output);
180 
181  template <class T>
182  void resampleTile(T, // dummy template variable
183  ossimImageData* input,
184  ossimImageData* output,
185  const ossimIrect& outputSubRect,
186  const ossimDpt& ul,
187  const ossimDpt& ur,
188  const ossimDpt& deltaUl,
189  const ossimDpt& deltaUr,
190  const ossimDpt& length);
191 
192  template <class T>
193  void resampleTileNearestNeighbor(T, // dummy template variable
194  ossimImageData* input,
195  ossimImageData* output,
196  const ossimDpt& ul,
197  const ossimDpt& ur,
198  const ossimDpt& deltaUl,
199  const ossimDpt& deltaUr,
200  const ossimDpt& length);
201 
202  template <class T>
203  void resampleTileNearestNeighbor(T, // dummy template variable
204  ossimImageData* input,
205  ossimImageData* output,
206  const ossimIrect& subRect,
207  const ossimDpt& ul,
208  const ossimDpt& ur,
209  const ossimDpt& deltaUl,
210  const ossimDpt& deltaUr,
211  const ossimDpt& length);
212 
213  virtual void deleteWeightTable();
214  virtual void allocateWeightTable();
215  virtual void generateWeightTable();
216 
217  double getCubicC0(double t)const;
218  double getCubicC1(double t)const;
219  double getCubicC2(double t)const;
220  double getCubicC3(double t)const;
221 
222 TYPE_DATA
223 };
224 
225 #endif
virtual void resampleNearestNeighbor(ossimImageData *input, ossimImageData *output, const ossimIrect &outputSubRect, const ossimDpt &ul, const ossimDpt &ur, const ossimDpt &deltaUl, const ossimDpt &deltaUr, const ossimDpt &length)
ossim_int32 theTableWidthY
ossimDpt getRatio() const
ossim_int32 theTableWidthX
void resampleTile(T, ossimImageData *input, ossimImageData *output)
Represents serializable keyword/value map.
ossim_int32 theTableHeight
virtual void setResamplerType(ossimResLevelResamplerType type)
double theCubicAdjustableParameter
virtual void generateWeightTable()
void resampleFullTile(T, ossimImageData *input, ossimImageData *output)
virtual ossimResLevelResamplerType getResamplerType() const
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
virtual ~ossimResampler()
ossim_int32 theKernelWidth
double getCubicC2(double t) const
double ** theWeightTableX
virtual void setCubicParameter(double parameter)
virtual void resample(ossimImageData *input, ossimImageData *output)
#define TYPE_DATA
Definition: ossimRtti.h:339
bool canConnectMyInputTo(ossim_int32, const ossimConnectableObject *) const
required to be overriden by derived classes
double getCubicC0(double t) const
virtual ossim_int32 getKernelWidth() const
ossimDpt theOutputToInputRatio
void setRatio(double outputToInputRatio)
double ** theWeightTableY
double getCubicC1(double t) const
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
double getCubicC3(double t) const
void resampleTileNearestNeighbor(T, ossimImageData *input, ossimImageData *output, const ossimDpt &ul, const ossimDpt &ur, const ossimDpt &deltaUl, const ossimDpt &deltaUr, const ossimDpt &length)
virtual void deleteWeightTable()
virtual double getCubicParameter() const
void resamplePartialTile(T, ossimImageData *input, ossimImageData *output)
ossimResLevelResamplerType theResamplerType
virtual ossim_int32 getKernelHeight() const
int ossim_int32
virtual void allocateWeightTable()
ossim_int32 theKernelHeight