OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimImageViewProjectionTransform.h
Go to the documentation of this file.
1 //*******************************************************************
2 //
3 // License: See top level LICENSE.txt file.
4 //
5 // AUTHOR: Garrett Potts (gpotts@imagelinks.com)
6 // Oscar Kramer (oscar@krameranalytic.com)
7 //
8 // DESCRIPTION: Contains declaration of ossimImageViewProjectionTransform.
9 // This class provides an image to view transform that utilizes two
10 // independent 2D-to-3D projections. Intended for transforming view to
11 // geographic "world" space to input image space.
12 //
13 // LIMITATIONS: None.
14 //
15 //*****************************************************************************
16 // $Id: ossimImageViewProjectionTransform.h 20352 2011-12-12 17:24:52Z dburken $
17 
18 #ifndef ossimImageViewProjectionTransform_HEADER
19 #define ossimImageViewProjectionTransform_HEADER 1
20 
24 
26 {
27 public:
29  ossimImageGeometry* viewGeometry=0);
30 
33 
34  virtual ossimObject* dup() const { return new ossimImageViewProjectionTransform(*this); }
36 
38  virtual bool isValid() const { return (m_imageGeometry.valid() && m_viewGeometry.valid()); }
39 
42  virtual bool isIdentity() const { return (m_imageGeometry == m_viewGeometry); }
43 
45  void setViewGeometry(ossimImageGeometry* g);
46 
48  void setImageGeometry(ossimImageGeometry* g);
49 
51  virtual void imageToView(const ossimDpt& imagePoint, ossimDpt& viewPoint) const;
52 
54  virtual void viewToImage(const ossimDpt& viewPoint, ossimDpt& imagePoint) const;
55 
57  virtual std::ostream& print(std::ostream& out) const;
58 
59  ossimImageGeometry* getImageGeometry() { return m_imageGeometry.get(); }
60  ossimImageGeometry* getViewGeometry() { return m_viewGeometry.get(); }
61  const ossimImageGeometry* getImageGeometry()const { return m_imageGeometry.get(); }
62  const ossimImageGeometry* getViewGeometry()const { return m_viewGeometry.get(); }
63 
77  virtual void getViewSegments(std::vector<ossimDrect>& viewBounds,
78  ossimPolyArea2d& polyArea,
79  ossim_uint32 numberOfEdgePoints=25)const;
80 
81 
88  virtual bool setView(ossimObject* baseObject);
89 
90  virtual ossimObject* getView() { return m_viewGeometry.get(); }
91  virtual const ossimObject* getView() const { return m_viewGeometry.get(); }
92 
94  virtual ossimDpt getInputMetersPerPixel()const;
95 
97  virtual ossimDpt getOutputMetersPerPixel() const;
98 
100  virtual ossimDrect getImageToViewBounds(const ossimDrect& imageRect)const;
101 
103  virtual bool loadState(const ossimKeywordlist& kwl, const char* prefix =0);
104 
106  virtual bool saveState(ossimKeywordlist& kwl, const char* prefix = 0)const;
107 
108 protected:
109 
120  bool initializeViewSize();
121  void initializeDatelineCrossing();
122 
125 
127 TYPE_DATA
128 };
129 
130 #endif
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
#define OSSIMDLLEXPORT
Represents serializable keyword/value map.
virtual ossimDpt getInputMetersPerPixel() const =0
virtual const ossimObject * getView() const
virtual ossimDrect getImageToViewBounds(const ossimDrect &imageRect) const
Computes the bounding rect in view space of the quad formed by the transformed image points of the in...
#define TYPE_DATA
Definition: ossimRtti.h:339
unsigned int ossim_uint32
ossimRefPtr< ossimImageGeometry > m_imageGeometry
ossimRefPtr< ossimImageGeometry > m_viewGeometry
Container class that holds both 2D transform and 3D projection information for an image Only one inst...
virtual std::ostream & print(std::ostream &out) const
Generic print method.
virtual bool setView(ossimObject *baseObject)=0
virtual bool isIdentity() const
Returns TRUE if both input and output geometries are identical.
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
virtual void imageToView(const ossimDpt &imagePoint, ossimDpt &viewPoint) const
virtual ossimDpt getOutputMetersPerPixel() const =0
const ossimImageGeometry * getViewGeometry() const
const ossimImageGeometry * getImageGeometry() const
virtual bool isValid() const
Satisfies base class pure virtual. Returns TRUE if both input and output geoms exist.
virtual void viewToImage(const ossimDpt &viewPoint, ossimDpt &imagePoint) const
std::basic_ostream< char > ostream
Base class for char output streams.
Definition: ossimIosFwd.h:23