OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimImageViewAffineTransform.h
Go to the documentation of this file.
1 //*******************************************************************
2 // Copyright (C) 2000 ImageLinks Inc.
3 //
4 // License: MIT
5 //
6 // See LICENSE.txt file in the top level directory for more details.
7 //
8 // Author: Garrett Potts
9 //
10 //*******************************************************************
11 // $Id: ossimImageViewAffineTransform.h 23477 2015-08-26 14:39:12Z gpotts $
12 #ifndef ossimImageViewAffineTransform_HEADER
13 #define ossimImageViewAffineTransform_HEADER
15 #include <ossim/matrix/newmat.h>
16 
18 {
19 public:
20  ossimImageViewAffineTransform(double rotateDegrees = 0.0,
21  double imageScaleX = 1.0,
22  double imageScaleY = 1.0,
23  double scaleXValue = 1.0,
24  double scaleYValue = 1.0,
25  double translateXValue = 0.0,
26  double translateYValue = 0.0,
27  double pivotXValue = 0.0,
28  double pivotYValue = 0.0 );
30 
33  m_transform(src.m_transform),
34  m_inverseTransform(src.m_inverseTransform),
35  m_rotation(src.m_rotation),
36  m_imageSpaceScale(src.m_imageSpaceScale),
37  m_scale(src.m_scale),
38  m_translate(src.m_translate),
39  m_pivot(src.m_pivot)
40  {
41  }
42  virtual ossimObject* dup()const
43  {
44  return new ossimImageViewAffineTransform(*this);
45  }
46 // virtual void inverse(const ossimDpt& input,
47 // ossimDpt& output) const
48 // {
49 // viewToImage(input, output);
50  // }
51 
52  virtual void imageToView(const ossimDpt& imagePoint,
53  ossimDpt& viewPoint)const;
54  virtual void viewToImage(const ossimDpt& viewPoint,
55  ossimDpt& imagePoint)const;
56  void setMatrix(NEWMAT::Matrix& matrix);
57  const NEWMAT::Matrix& getMatrix()const;
58 
59  virtual bool isIdentity()const
60  {
61  return ((m_transform[0][0] == 1.0)&&
62  (m_transform[0][1] == 0.0)&&
63  (m_transform[0][2] == 0.0)&&
64  (m_transform[1][0] == 0.0)&&
65  (m_transform[1][1] == 1.0)&&
66  (m_transform[1][2] == 0.0)&&
67  (m_transform[2][0] == 0.0)&&
68  (m_transform[2][1] == 0.0)&&
69  (m_transform[2][2] == 1.0));
70  }
71 
72  virtual bool isValid()const;
73  virtual bool setView(ossimObject* obj);
74  virtual ossimObject* getView();
75  virtual const ossimObject* getView()const;
76 
78  virtual ossimDpt getInputMetersPerPixel()const;
79 
81  virtual ossimDpt getOutputMetersPerPixel()const;
82 
86  virtual void translate(double deltaX, double deltaY);
87 
91  virtual void translateX(double deltaX);
92 
96  virtual void translateY(double deltaY);
97 
101  virtual void pivot(double originX, double originY);
102 
106  virtual void pivotX(double originX);
107 
111  virtual void pivotY(double originY);
112 
117  virtual void imageSpaceScale(double x, double y);
118 
122  virtual void imageSpaceScaleX(double x);
123 
127  virtual void imageSpaceScaleY(double y);
128 
133  virtual void scale(double x, double y);
134 
139  virtual void scaleX(double x);
140 
145  virtual void scaleY(double y);
146 
150  virtual void rotate(double degrees);
151 
152  ossim_float64 getRotation()const{return m_rotation;}
153  const ossimDpt& getScale()const{return m_scale;}
154  const ossimDpt& getTranslate()const{return m_translate;}
155  const ossimDpt& getPivot()const{return m_pivot;}
156 
157 
158  virtual bool isEqualTo(const ossimObject& obj, ossimCompareType compareType = OSSIM_COMPARE_FULL)const;
159 
160  virtual bool loadState(const ossimKeywordlist& kwl,
161  const char* prefix =0);
162 
163  virtual bool saveState(ossimKeywordlist& kwl,
164  const char* prefix =0)const;
165 
166 
167 protected:
168  void buildCompositeTransform();
169 
176  NEWMAT::Matrix m_transform;
177  NEWMAT::Matrix m_inverseTransform;
183 
184 TYPE_DATA
185 };
186 
187 #endif
ossim_uint32 x
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
virtual bool isEqualTo(const ossimObject &obj, ossimCompareType compareType=OSSIM_COMPARE_FULL) const
#define OSSIMDLLEXPORT
Represents serializable keyword/value map.
ossim_uint32 y
virtual ossimDpt getInputMetersPerPixel() const =0
ossimCompareType
double ossim_float64
#define TYPE_DATA
Definition: ossimRtti.h:339
virtual bool setView(ossimObject *baseObject)=0
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
virtual void imageToView(const ossimDpt &imagePoint, ossimDpt &viewPoint) const
virtual ossimObject * getView()=0
virtual bool isValid() const =0
virtual ossimDpt getOutputMetersPerPixel() const =0
ossimImageViewAffineTransform(const ossimImageViewAffineTransform &src)
virtual void viewToImage(const ossimDpt &viewPoint, ossimDpt &imagePoint) const