OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimImageCombiner.h
Go to the documentation of this file.
1 //*******************************************************************
2 //
3 // License: See LICENSE.txt file in the top level directory for more details.
4 //
5 // Author: Garrett Potts
6 //
7 //*************************************************************************
8 // $Id: ossimImageCombiner.h 23108 2015-01-27 17:00:20Z okramer $
9 #ifndef ossimImageCombiner_HEADER
10 #define ossimImageCombiner_HEADER
11 #include <vector>
12 
16 
23 {
24 public:
27  int numberOfInputs,
28  int numberOfOutputs,
29  bool inputListIsFixedFlag,
30  bool outputListIsFixedFlag);
31 
33 
34  virtual ossimIrect getBoundingRect(ossim_uint32 resLevel=0) const;
35 
36  virtual void initialize();
37  virtual bool loadState(const ossimKeywordlist& kwl, const char* prefix=NULL);
38  virtual bool saveState(ossimKeywordlist& kwl, const char* prefix=NULL)const;
39 
44  virtual void updateRects();
45 
49  virtual ossim_uint32 getNumberOfInputBands()const;
50  virtual ossimScalarType getOutputScalarType() const;
51  virtual ossim_uint32 getTileWidth()const;
52  virtual ossim_uint32 getTileHeight()const;
53 
54  virtual double getNullPixelValue(ossim_uint32 band=0)const;
55  virtual double getMinPixelValue(ossim_uint32 band=0)const;
56  virtual double getMaxPixelValue(ossim_uint32 band=0)const;
57 
62  virtual ossim_uint32 getNumberOfOverlappingImages(const ossimIrect& rect,
63  ossim_uint32 resLevel=0)const;
64 
68  virtual void getOverlappingImages(std::vector<ossim_uint32>& result,
69  const ossimIrect& rect,
70  ossim_uint32 resLevel=0)const;
71 
72 
73 /* virtual ossimRefPtr<ossimImageData> getNextTile(ossim_uint32& returnedIdx, */
74 /* ossim_uint32 startIdx, */
75 /* const ossimIpt& origin, */
76 /* ossim_uint32 resLevel=0); */
77 
78 /* virtual ossimRefPtr<ossimImageData> getNextTile(ossim_uint32& returnedIdx, */
79 /* const ossimIpt& origin, */
80 /* ossim_uint32 resLevel=0); */
81 
82  virtual ossimRefPtr<ossimImageData> getNextTile(ossim_uint32& returnedIdx,
83  const ossim_uint32 startIdx,
84  const ossimIrect& tileRect,
85  ossim_uint32 resLevel=0);
86 
87  virtual ossimRefPtr<ossimImageData> getNextTile(ossim_uint32& returnedIdx,
88  const ossimIrect& tileRect,
89  ossim_uint32 resLevel=0);
90 
91 
92  virtual bool getNextTile(ossim_uint32& returnedIdx,
93  const ossim_uint32 startIdx,
94  ossimImageData* tile,
95  ossim_uint32 resLevel=0);
96 
97  virtual ossimRefPtr<ossimImageData> getNextNormTile(ossim_uint32& returnedIdx,
98  const ossim_uint32 index,
99  const ossimIrect& tileRect,
100  ossim_uint32 resLevel=0);
101 
102  virtual ossimRefPtr<ossimImageData> getNextNormTile(ossim_uint32& returnedIdx,
103  const ossimIrect& tileRect,
104  ossim_uint32 resLevel=0);
105 
106 /* virtual ossimRefPtr<ossimImageData> getNextNormTile(ossim_uint32& returnedIdx, */
107 /* ossim_uint32 index, */
108 /* const ossimIpt& origin, */
109 /* ossim_uint32 resLevel=0); */
110 /* virtual ossimRefPtr<ossimImageData> getNextNormTile(ossim_uint32& returnedIdx, */
111 /* const ossimIpt& origin, */
112 /* ossim_uint32 resLevel=0); */
113 
114 
115  virtual bool canConnectMyInputTo(ossim_int32 inputIndex,
116  const ossimConnectableObject* object)const;
117 
118  virtual void connectInputEvent(ossimConnectionEvent& event);
119  virtual void disconnectInputEvent(ossimConnectionEvent& event);
120  virtual void propertyEvent(ossimPropertyEvent& event);
121  virtual void refreshEvent(ossimRefreshEvent& event);
122  virtual bool hasDifferentInputs()const;
123 
124 
125 protected:
126  virtual ~ossimImageCombiner();
127  void precomputeBounds()const;
128 
133  mutable std::vector<ossimIrect> theFullResBounds;
136 
137 TYPE_DATA
138 };
139 
140 #endif /* #ifndef ossimImageCombiner_HEADER */
virtual ossimIrect getBoundingRect(ossim_uint32 resLevel=0) const
This will return the bounding rect of the source.
ossim_uint32 theInputToPassThrough
#define OSSIMDLLEXPORT
This will be a base for all combiners.
Represents serializable keyword/value map.
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
Method to the load (recreate) the state of an object from a keyword list.
virtual ossim_uint32 getTileHeight() const
Returns the default processing tile height.
ossim_uint32 theCurrentIndex
virtual ossim_uint32 getTileWidth() const
Returns the default processing tile width.
virtual void refreshEvent(ossimRefreshEvent &)
virtual void propertyEvent(ossimPropertyEvent &)
virtual double getMinPixelValue(ossim_uint32 band=0) const
Returns the min pixel of the band.
std::vector< ossimRefPtr< ossimConnectableObject > > ConnectableObjectList
ossim_uint32 theLargestNumberOfInputBands
#define TYPE_DATA
Definition: ossimRtti.h:339
std::vector< ossimIrect > theFullResBounds
unsigned int ossim_uint32
ossimRefPtr< ossimImageData > theNormTile
ossimScalarType
virtual void disconnectInputEvent(ossimConnectionEvent &)
virtual ossimScalarType getOutputScalarType() const
This will be used to query the output pixel type of the tile source.
virtual double getMaxPixelValue(ossim_uint32 band=0) const
Returns the max pixel of the band.
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
Method to save the state of an object to a keyword list.
virtual void initialize()=0
virtual bool canConnectMyInputTo(ossim_int32 myInputIndex, const ossimConnectableObject *object) const =0
required to be overriden by derived classes
virtual ossim_uint32 getNumberOfInputBands() const =0
virtual double getNullPixelValue(ossim_uint32 band=0) const
Each band has a null pixel associated with it.
virtual void connectInputEvent(ossimConnectionEvent &)
int ossim_int32