OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
Public Member Functions | Private Attributes | List of all members
ossimSevenParamDatum Class Reference

#include <ossimSevenParamDatum.h>

Inheritance diagram for ossimSevenParamDatum:
ossimDatum ossimObject ossimReferenced

Public Member Functions

 ossimSevenParamDatum (const ossimString &code, const ossimString &name, const ossimEllipsoid *anEllipsoid, ossim_float64 sigmaX, ossim_float64 sigmaY, ossim_float64 sigmaZ, ossim_float64 westLongitude, ossim_float64 eastLongitude, ossim_float64 southLatitude, ossim_float64 northLatitude, ossim_float64 aParam1, ossim_float64 aParam2, ossim_float64 aParam3, ossim_float64 aParam4, ossim_float64 aParam5, ossim_float64 aParam6, ossim_float64 aParam7)
 
ossimGpt shift (const ossimGpt &aPt) const
 
virtual ossimGpt shiftToWgs84 (const ossimGpt &aPt) const
 
virtual ossimGpt shiftFromWgs84 (const ossimGpt &aPt) const
 
virtual ossim_float64 param1 () const
 
virtual ossim_float64 param2 () const
 
virtual ossim_float64 param3 () const
 
virtual ossim_float64 param4 () const
 
virtual ossim_float64 param5 () const
 
virtual ossim_float64 param6 () const
 
virtual ossim_float64 param7 () const
 
virtual bool isEqualTo (const ossimObject &obj, ossimCompareType compareType=OSSIM_COMPARE_FULL) const
 
- Public Member Functions inherited from ossimDatum
 ossimDatum (const ossimString &alpha_code, const ossimString &name, const ossimEllipsoid *anEllipsoid, ossim_float64 sigmaX, ossim_float64 sigmaY, ossim_float64 sigmaZ, ossim_float64 westLongitude, ossim_float64 eastLongitude, ossim_float64 southLatitude, ossim_float64 northLatitude)
 
virtual bool isTheSameAs (const ossimDatum *aDatum) const
 
virtual const ossimStringcode () const
 
virtual const ossimStringname () const
 
virtual ossim_uint32 epsgCode () const
 
virtual const ossimEllipsoidellipsoid () const
 
virtual ossim_float64 sigmaX () const
 
virtual ossim_float64 sigmaY () const
 
virtual ossim_float64 sigmaZ () const
 
virtual ossim_float64 westLongitude () const
 
virtual ossim_float64 eastLongitude () const
 
virtual ossim_float64 southLatitude () const
 
virtual ossim_float64 northLatitude () const
 
virtual bool isInside (ossim_float64 latitude, ossim_float64 longitude) const
 
bool operator== (const ossimDatum &rhs) const
 
bool operator!= (const ossimDatum &rhs) const
 
- Public Member Functions inherited from ossimObject
 ossimObject ()
 
virtual ~ossimObject ()
 
virtual ossimObjectdup () const
 
virtual ossimString getShortName () const
 
virtual ossimString getLongName () const
 
virtual ossimString getDescription () const
 
virtual ossimString getClassName () const
 
virtual RTTItypeid getType () const
 
virtual bool canCastTo (ossimObject *obj) const
 
virtual bool canCastTo (const RTTItypeid &id) const
 
virtual bool canCastTo (const ossimString &parentClassName) const
 
virtual bool saveState (ossimKeywordlist &kwl, const char *prefix=0) const
 
virtual bool loadState (const ossimKeywordlist &kwl, const char *prefix=0)
 
virtual std::ostream & print (std::ostream &out) const
 Generic print method. More...
 
virtual void accept (ossimVisitor &visitor)
 
- Public Member Functions inherited from ossimReferenced
 ossimReferenced ()
 
 ossimReferenced (const ossimReferenced &)
 
ossimReferencedoperator= (const ossimReferenced &)
 
void ref () const
 increment the reference count by one, indicating that this object has another pointer which is referencing it. More...
 
void unref () const
 decrement the reference count by one, indicating that a pointer to this object is referencing it. More...
 
void unref_nodelete () const
 decrement the reference count by one, indicating that a pointer to this object is referencing it. More...
 
int referenceCount () const
 

Private Attributes

ossim_float64 theParam1
 
ossim_float64 theParam2
 
ossim_float64 theParam3
 
ossim_float64 theParam4
 
ossim_float64 theParam5
 
ossim_float64 theParam6
 
ossim_float64 theParam7
 
 TYPE_DATA
 

Additional Inherited Members

- Protected Member Functions inherited from ossimDatum
virtual ~ossimDatum ()
 Only friend ossimDatumFactory is permitted to delete. More...
 
virtual void molodenskyShift (double a, double da, double f, double df, double dx, double dy, double dz, double Lat_in, double Lon_in, double Hgt_in, double &Lat_out, double &Lon_out, double &Hgt_out) const
 
bool withinMolodenskyRange (const ossimGpt &pt) const
 
- Protected Member Functions inherited from ossimReferenced
virtual ~ossimReferenced ()
 
- Protected Attributes inherited from ossimDatum
ossimString theCode
 
ossim_uint32 theEpsgCode
 
ossimString theName
 
const ossimEllipsoidtheEllipsoid
 
ossim_float64 theSigmaX
 
ossim_float64 theSigmaY
 
ossim_float64 theSigmaZ
 
ossim_float64 theWestLongitude
 
ossim_float64 theEastLongitude
 
ossim_float64 theSouthLatitude
 
ossim_float64 theNorthLatitude
 
 TYPE_DATA
 

Detailed Description

Definition at line 20 of file ossimSevenParamDatum.h.

Constructor & Destructor Documentation

◆ ossimSevenParamDatum()

ossimSevenParamDatum::ossimSevenParamDatum ( const ossimString code,
const ossimString name,
const ossimEllipsoid anEllipsoid,
ossim_float64  sigmaX,
ossim_float64  sigmaY,
ossim_float64  sigmaZ,
ossim_float64  westLongitude,
ossim_float64  eastLongitude,
ossim_float64  southLatitude,
ossim_float64  northLatitude,
ossim_float64  aParam1,
ossim_float64  aParam2,
ossim_float64  aParam3,
ossim_float64  aParam4,
ossim_float64  aParam5,
ossim_float64  aParam6,
ossim_float64  aParam7 
)
inline
Parameters
codenew datum code. (input)
nameName of the new datum (input)
SigmaXStandard error in X in meters (input)
SigmaYStandard error in Y in meters (input)
SigmaZStandard error in Z in meters (input)
southLatitudeSouthern edge of validity rectangle in radians(input)
northLatitudeNorthern edge of validity rectangle in radians(input)
westLongitudeWestern edge of validity rectangle in radians (input)
eastLongitudeEastern edge of validity rectangle in radians (input)
param1X translation
param2Y translation
param3Z translation
param4X Rotation
param5Y Rotation
param6Z Rotation
param7x,y,z Scale

Definition at line 41 of file ossimSevenParamDatum.h.

57  : ossimDatum(code, name, anEllipsoid,
61  theParam1(aParam1),
62  theParam2(aParam2),
63  theParam3(aParam3),
64  theParam4(aParam4),
65  theParam5(aParam5),
66  theParam6(aParam6),
67  theParam7(aParam7)
68  {}
virtual ossim_float64 sigmaY() const
Definition: ossimDatum.h:62
virtual const ossimString & code() const
Definition: ossimDatum.h:57
virtual const ossimString & name() const
Definition: ossimDatum.h:58
virtual ossim_float64 southLatitude() const
Definition: ossimDatum.h:67
virtual ossim_float64 northLatitude() const
Definition: ossimDatum.h:68
virtual ossim_float64 sigmaX() const
Definition: ossimDatum.h:61
virtual ossim_float64 westLongitude() const
Definition: ossimDatum.h:65
ossimDatum(const ossimString &alpha_code, const ossimString &name, const ossimEllipsoid *anEllipsoid, ossim_float64 sigmaX, ossim_float64 sigmaY, ossim_float64 sigmaZ, ossim_float64 westLongitude, ossim_float64 eastLongitude, ossim_float64 southLatitude, ossim_float64 northLatitude)
Definition: ossimDatum.cpp:18
virtual ossim_float64 sigmaZ() const
Definition: ossimDatum.h:63
virtual ossim_float64 eastLongitude() const
Definition: ossimDatum.h:66

Member Function Documentation

◆ isEqualTo()

bool ossimSevenParamDatum::isEqualTo ( const ossimObject obj,
ossimCompareType  compareType = OSSIM_COMPARE_FULL 
) const
virtual

Reimplemented from ossimDatum.

Definition at line 160 of file ossimSevenParamDatum.cpp.

References ossim::almostEqual(), ossimDatum::isEqualTo(), theParam1, theParam2, theParam3, theParam4, theParam5, theParam6, and theParam7.

161 {
162  const ossimSevenParamDatum* datum = dynamic_cast<const ossimSevenParamDatum*> (&obj);
163 
164  bool result = datum&&ossimDatum::isEqualTo(obj, compareType);
165 
166  if(result)
167  {
168  result = (ossim::almostEqual(theParam1, datum->theParam1)&&
175  );
176  }
177 
178  return result;
179 }
bool almostEqual(T x, T y, T tolerance=FLT_EPSILON)
Definition: ossimCommon.h:53
virtual bool isEqualTo(const ossimObject &obj, ossimCompareType compareType=OSSIM_COMPARE_FULL) const
Definition: ossimDatum.cpp:179

◆ param1()

virtual ossim_float64 ossimSevenParamDatum::param1 ( ) const
inlinevirtual

Implements ossimDatum.

Definition at line 78 of file ossimSevenParamDatum.h.

78 {return theParam1;}

◆ param2()

virtual ossim_float64 ossimSevenParamDatum::param2 ( ) const
inlinevirtual

Implements ossimDatum.

Definition at line 79 of file ossimSevenParamDatum.h.

79 {return theParam2;}

◆ param3()

virtual ossim_float64 ossimSevenParamDatum::param3 ( ) const
inlinevirtual

Implements ossimDatum.

Definition at line 80 of file ossimSevenParamDatum.h.

80 {return theParam3;}

◆ param4()

virtual ossim_float64 ossimSevenParamDatum::param4 ( ) const
inlinevirtual

Implements ossimDatum.

Definition at line 81 of file ossimSevenParamDatum.h.

81 {return theParam4;}

◆ param5()

virtual ossim_float64 ossimSevenParamDatum::param5 ( ) const
inlinevirtual

Implements ossimDatum.

Definition at line 82 of file ossimSevenParamDatum.h.

82 {return theParam5;}

◆ param6()

virtual ossim_float64 ossimSevenParamDatum::param6 ( ) const
inlinevirtual

Implements ossimDatum.

Definition at line 83 of file ossimSevenParamDatum.h.

83 {return theParam6;}

◆ param7()

virtual ossim_float64 ossimSevenParamDatum::param7 ( ) const
inlinevirtual

Implements ossimDatum.

Definition at line 84 of file ossimSevenParamDatum.h.

84 {return theParam7;}

◆ shift()

ossimGpt ossimSevenParamDatum::shift ( const ossimGpt aPt) const
virtual

Will shift the ground point relative to this datum.

Implements ossimDatum.

Definition at line 21 of file ossimSevenParamDatum.cpp.

References ossimGpt::datum(), ossimDatum::ellipsoid(), ossimEllipsoid::getA(), ossimEllipsoid::getB(), ossimGpt::height(), ossimGpt::latd(), ossimGpt::lond(), shiftFromWgs84(), and ossimDatum::shiftToWgs84().

22 {
23  const ossimDatum* aDatum = aPt.datum();
24 
25  if( (ellipsoid()->getA()== aPt.datum()->ellipsoid()->getA())&&
26  (ellipsoid()->getB()== aPt.datum()->ellipsoid()->getB()))
27  {
28  return ossimGpt(aPt.latd(), aPt.lond(), aPt.height(), this);
29  }
30 
31  if(aDatum)
32  {
33  return shiftFromWgs84( aDatum->shiftToWgs84(aPt) );
34  }
35 
36  return aPt;
37 }
virtual ossimGpt shiftToWgs84(const ossimGpt &aPt) const =0
double lond() const
Will convert the radian measure to degrees.
Definition: ossimGpt.h:97
double latd() const
Will convert the radian measure to degrees.
Definition: ossimGpt.h:87
const ossimDatum * datum() const
datum().
Definition: ossimGpt.h:196
const double & getA() const
virtual const ossimEllipsoid * ellipsoid() const
Definition: ossimDatum.h:60
double height() const
Definition: ossimGpt.h:107
virtual ossimGpt shiftFromWgs84(const ossimGpt &aPt) const
const double & getB() const

◆ shiftFromWgs84()

ossimGpt ossimSevenParamDatum::shiftFromWgs84 ( const ossimGpt aPt) const
virtual

Implements ossimDatum.

Definition at line 100 of file ossimSevenParamDatum.cpp.

References ossimGpt::datum(), ossimGpt::isHgtNan(), ossimGpt::latd(), ossimGpt::lond(), theParam1, theParam2, theParam3, theParam4, theParam5, theParam6, theParam7, ossimEcefPoint::x(), ossimEcefPoint::y(), and ossimEcefPoint::z().

Referenced by shift().

101 {
102  ossimEcefPoint p1;
103  ossimEcefPoint p2;
104 
105  if(aPt.isHgtNan())
106  {
107  p1 = ossimEcefPoint(ossimGpt(aPt.latd(),
108  aPt.lond(),
109  0,
110  aPt.datum()));
111  }
112  else
113  {
114  p1 = ossimEcefPoint(aPt);
115  }
116 // if(withinMolodenskyRange(aPt.latd()))
117 // {
118 // ossimWgs84Datum wgs84;
119 // double latin, lonin, hgtin;
120 // double latout, lonout, hgtout;
121 
122 // double a = wgs84.ellipsoid()->getA();
123 // double f = wgs84.ellipsoid()->getFlattening();
124 // double da = ellipsoid()->getA() - a;
125 // double df = ellipsoid()->getFlattening() - f;
126 
127 // latin = aPt.latr();
128 // lonin = aPt.lonr();
129 // hgtin = aPt.height();
130 
131 // if(aPt.isHgtNan())
132 // {
133 // hgtin = 0.0;
134 // }
135 // molodenskyShift(a, da, f, df, -param1(), -param2(), -param3(),
136 // latin, lonin, hgtin,
137 // latout, lonout, hgtout);
138 // ossimGpt g;
139 
140 // g.latr(latout);
141 // g.lonr(lonout);
142 // g.height(hgtout);
143 // g.datum(this);
144 // return g;
145 // }
146 // else
147 // {
148  p2.x() = p1.x() - theParam1 - theParam6 * p1.y()
149  + theParam5 * p1.z() - theParam7 * p1.x();
150  p2.y() = p1.y() - theParam2 + theParam6 * p1.x()
151  - theParam4 *p1.z() - theParam7 * p1.y();
152 
153  p2.z() = p1.z() - theParam3 - theParam5 * p1.x()
154  + theParam4 * p1.y() - theParam7 * p1.z();
155 // }
156 
157  return ossimGpt(p2, this);
158 }
double lond() const
Will convert the radian measure to degrees.
Definition: ossimGpt.h:97
double x() const
double latd() const
Will convert the radian measure to degrees.
Definition: ossimGpt.h:87
bool isHgtNan() const
Definition: ossimGpt.h:143
const ossimDatum * datum() const
datum().
Definition: ossimGpt.h:196
double y() const
double z() const

◆ shiftToWgs84()

ossimGpt ossimSevenParamDatum::shiftToWgs84 ( const ossimGpt aPt) const
virtual

Implements ossimDatum.

Definition at line 39 of file ossimSevenParamDatum.cpp.

References theParam1, theParam2, theParam3, theParam4, theParam5, theParam6, theParam7, ossimEcefPoint::x(), ossimEcefPoint::y(), and ossimEcefPoint::z().

40 {
41  ossimEcefPoint p1 = aPt;
42  ossimEcefPoint p2;
43 
44 // if(aPt.isHgtNan())
45 // {
46 // p1 = ossimEcefPoint(ossimGpt(aPt.latd(),
47 // aPt.lond(),
48 // 0,
49 // aPt.datum()));
50 // }
51 
52 // if(withinMolodenskyRange(aPt.latd()))
53 // {
54 // ossimWgs84Datum wgs84;
55 // double latin, lonin, hgtin;
56 // double latout, lonout, hgtout;
57 
58 // double a = wgs84.ellipsoid()->getA();
59 // double f = wgs84.ellipsoid()->getFlattening();
60 // double da = a - ellipsoid()->getA();
61 // double df = f - ellipsoid()->getFlattening();
62 
63 // latin = aPt.latr();
64 // lonin = aPt.lonr();
65 // hgtin = aPt.height();
66 
67 // if(aPt.isHgtNan())
68 // {
69 // hgtin = 0.0;
70 // }
71 // molodenskyShift(a, da, f, df, param1(), param2(), param3(),
72 // latin, lonin, hgtin,
73 // latout, lonout, hgtout);
74 
75 // ossimGpt g;
76 
77 // g.latr(latout);
78 // g.lonr(lonout);
79 // g.height(hgtout);
80 // if(aPt.isHgtNan())
81 // {
82 // g.height(OSSIM_DBL_NAN);
83 // }
84 // return g;
85 // }
86 // else
87  {
88  //this is straight from Geotrans
89  p2.x() = p1.x() + theParam1 + theParam6*p1.y() -
90  theParam5*p1.z() + theParam7*p1.x();
91  p2.y() = p1.y() + theParam2 - theParam6*p1.x()+
92  theParam4*p1.z() + theParam7*p1.y();
93  p2.z() = p1.z() + theParam3 + theParam5*p1.x() -
94  theParam4*p1.y() + theParam7*p1.z();
95  }
96 
97  return ossimGpt(p2); // defaults to WGS84
98 }
double x() const
double y() const
double z() const

Member Data Documentation

◆ theParam1

ossim_float64 ossimSevenParamDatum::theParam1
private

Definition at line 88 of file ossimSevenParamDatum.h.

Referenced by isEqualTo(), shiftFromWgs84(), and shiftToWgs84().

◆ theParam2

ossim_float64 ossimSevenParamDatum::theParam2
private

Definition at line 89 of file ossimSevenParamDatum.h.

Referenced by isEqualTo(), shiftFromWgs84(), and shiftToWgs84().

◆ theParam3

ossim_float64 ossimSevenParamDatum::theParam3
private

Definition at line 90 of file ossimSevenParamDatum.h.

Referenced by isEqualTo(), shiftFromWgs84(), and shiftToWgs84().

◆ theParam4

ossim_float64 ossimSevenParamDatum::theParam4
private

Definition at line 91 of file ossimSevenParamDatum.h.

Referenced by isEqualTo(), shiftFromWgs84(), and shiftToWgs84().

◆ theParam5

ossim_float64 ossimSevenParamDatum::theParam5
private

Definition at line 92 of file ossimSevenParamDatum.h.

Referenced by isEqualTo(), shiftFromWgs84(), and shiftToWgs84().

◆ theParam6

ossim_float64 ossimSevenParamDatum::theParam6
private

Definition at line 93 of file ossimSevenParamDatum.h.

Referenced by isEqualTo(), shiftFromWgs84(), and shiftToWgs84().

◆ theParam7

ossim_float64 ossimSevenParamDatum::theParam7
private

Definition at line 94 of file ossimSevenParamDatum.h.

Referenced by isEqualTo(), shiftFromWgs84(), and shiftToWgs84().

◆ TYPE_DATA

ossimSevenParamDatum::TYPE_DATA
private

Definition at line 96 of file ossimSevenParamDatum.h.


The documentation for this class was generated from the following files: