OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimLsrSpace.h
Go to the documentation of this file.
1 //*******************************************************************
2 //
3 // License: See top level LICENSE.txt file.
4 //
5 // DESCRIPTION:
6 // This class maintains the relationship between a local space rectangular
7 // (LSR) coordinate system and the earth-centered, earth-fixed (ECEF) system.
8 //
9 // SOFTWARE HISTORY:
10 //>
11 // 08Aug2001 Oscar Kramer (okramer@imagelinks.com)
12 // Initial coding.
13 //<
14 //*****************************************************************************
15 // $Id: ossimLsrSpace.h 12790 2008-05-05 13:41:33Z dburken $
16 
17 #ifndef ossimLsrSpace_HEADER
18 #define ossimLsrSpace_HEADER
19 
21  // #include <ossim/base/ossimEcefVector.h>
24 
25 class ossimGpt;
26 class ossimEcefVector;
27 
28 
29 //*****************************************************************************
30 // CLASS: ossimLsrSpace
31 //
32 // This class maintains the relationship between a local space rectangular
33 // (LSR) coordinate system and the earth-centered, earth-fixed (ECEF) system.
34 //
35 //*****************************************************************************
37 {
38 public:
43 
44  ossimLsrSpace(const ossimLsrSpace& copy_this)
45  :
46  theLsrToEcefRotMatrix(copy_this.theLsrToEcefRotMatrix),
47  theOrigin(copy_this.theOrigin) {}
48 
54  ossimLsrSpace(const ossimEcefPoint& origin,
55  const ossimEcefVector& x_dir_ecf_vec,
56  const ossimEcefVector& y_dir_ecf_vec,
57  const int z_not_provided_space_holder);
58 
59  ossimLsrSpace(const ossimEcefPoint& origin,
60  const ossimEcefVector& x_dir_ecf_vec,
61  const int y_not_provided_space_holder,
62  const ossimEcefVector& z_dir_ecf_vec);
63 
64  ossimLsrSpace(const ossimEcefPoint& origin,
65  const int x_not_provided_space_holder,
66  const ossimEcefVector& y_dir_ecf_vec,
67  const ossimEcefVector& z_dir_ecf_vec);
68 
76  ossimLsrSpace(const ossimGpt& origin,
77  const double& y_azimuth=0);
78 
85  const NEWMAT::Matrix& lsrToEcfRot)
86  : theLsrToEcefRotMatrix (lsrToEcfRot), theOrigin (origin) {}
87 
89 
93  bool operator == (const ossimLsrSpace&) const;
94 
95  bool operator != (const ossimLsrSpace& that) const
96  { return !(*this == that); }
97 
98  const ossimLsrSpace& operator = (const ossimLsrSpace& space);
99 
103  const ossimEcefPoint& origin() const { return theOrigin; }
104  const NEWMAT::Matrix& lsrToEcefRotMatrix() const
105  { return theLsrToEcefRotMatrix; }
106  NEWMAT::Matrix ecefToLsrRotMatrix() const
107  { return theLsrToEcefRotMatrix.t(); }
108 
115  static ostream& lsrSpaceErrorMessage(ostream& os=ossimNotify(ossimNotifyLevel_INFO));
116 
120  void print(ostream& stream = ossimNotify(ossimNotifyLevel_INFO)) const;
121 
122  friend ostream& operator<< (ostream& os , const ossimLsrSpace& instance)
123  { instance.print(os); return os; }
124 
125 private:
126  NEWMAT::Matrix theLsrToEcefRotMatrix;
128 };
129 
130 #endif
131 
132 
#define OSSIMDLLEXPORT
bool operator!=(const ossimRefPtr< _Tp1 > &__a, const ossimRefPtr< _Tp2 > &__b) noexcept
Definition: ossimRefPtr.h:111
std::ostream & print(H5::H5File *file, std::ostream &out)
Print method.
Definition: ossimH5Util.cpp:41
const NEWMAT::Matrix & lsrToEcefRotMatrix() const
ostream & operator<<(ostream &out, const ossimAxes &axes)
Definition: ossimAxes.h:88
ossimLsrSpace(const ossimLsrSpace &copy_this)
Definition: ossimLsrSpace.h:44
bool operator==(const ossimRefPtr< _Tp1 > &__a, const ossimRefPtr< _Tp2 > &__b) noexcept
Definition: ossimRefPtr.h:101
NEWMAT::Matrix ecefToLsrRotMatrix() const
const ossimEcefPoint & origin() const
ossimEcefPoint theOrigin
NEWMAT::Matrix theLsrToEcefRotMatrix
void print(ostream &stream=ossimNotify(ossimNotifyLevel_INFO)) const
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)
std::basic_ostream< char > ostream
Base class for char output streams.
Definition: ossimIosFwd.h:23
ossimLsrSpace(const ossimEcefPoint &origin, const NEWMAT::Matrix &lsrToEcfRot)
Definition: ossimLsrSpace.h:84