OSSIM - Open Source Software Image Map
Version 1.9.0 (20180803)
|
#include <ossimEllipsoid.h>
Public Member Functions | |
ossimEllipsoid (const ossimEllipsoid &ellipsoid) | |
ossimEllipsoid (const ossimString &name, const ossimString &code, const double &major_axis, const double &minor_axis, ossim_uint32 epsg_code=0) | |
ossimEllipsoid (const double &major_axis, const double &minor_axis) | |
ossimEllipsoid () | |
virtual | ~ossimEllipsoid () |
const ossimString & | name () const |
const ossimString & | code () const |
const double & | a () const |
const double & | b () const |
const double & | getA () const |
const double & | getB () const |
const double & | getFlattening () const |
void | setA (double a) |
void | setB (double b) |
void | setAB (double a, double b) |
void | setEpsgCode (ossim_uint32 code) |
double | eccentricitySquared () const |
double | flattening () const |
double | eccentricity () const |
ossim_uint32 | getEpsgCode () const |
bool | nearestIntersection (const ossimEcefRay &ray, ossimEcefPoint &rtnPt) const |
bool | nearestIntersection (const ossimEcefRay &ray, const double &offset, ossimEcefPoint &rtnPt) const |
double | evaluate (const ossimEcefPoint &) const |
void | gradient (const ossimEcefPoint &location, ossimEcefVector &result) const |
ossimEcefVector | gradient (const ossimEcefPoint &loc) const |
void | prinRadiiOfCurv (const ossimEcefPoint &location, double &merRadius, double &primeVert) const |
void | jacobianWrtEcef (const ossimEcefPoint &location, NEWMAT::Matrix &jMat) const |
void | jacobianWrtGeo (const ossimEcefPoint &location, NEWMAT::Matrix &jMat) const |
double | geodeticRadius (const double &latitude) const |
void | geodeticRadii (const double &latitude, ossimDpt &radii) const |
void | latLonHeightToXYZ (double lat, double lon, double height, double &x, double &y, double &z) const |
void | XYZToLatLonHeight (double x, double y, double z, double &lat, double &lon, double &height) const |
void | computeLocalToWorldTransformFromXYZ (double x, double y, double z, ossimMatrix4x4 &localToWorld) const |
bool | operator== (const ossimEllipsoid &rhs) const |
bool | operator!= (const ossimEllipsoid &rhs) const |
bool | loadState (const ossimKeywordlist &kwl, const char *prefix=0) |
bool | saveState (ossimKeywordlist &kwl, const char *prefix=0) const |
const ossimEllipsoid & | operator= (const ossimEllipsoid ©_me) |
virtual bool | isEqualTo (const ossimEllipsoid &rhs, ossimCompareType compareType=OSSIM_COMPARE_FULL) const |
Protected Member Functions | |
void | computeFlattening () |
Protected Attributes | |
ossimString | theName |
ossimString | theCode |
ossim_uint32 | theEpsgCode |
double | theA |
double | theB |
double | theFlattening |
double | theA_squared |
double | theB_squared |
double | theEccentricitySquared |
ossimEllipsoid::ossimEllipsoid | ( | const ossimEllipsoid & | ellipsoid | ) |
CONSTRUCTORS...
Definition at line 42 of file ossimEllipsoid.cpp.
References ossimEllipsoidFactory::findEpsgCode(), ossimEllipsoidFactory::instance(), theCode, and theEpsgCode.
ossimEllipsoid::ossimEllipsoid | ( | const ossimString & | name, |
const ossimString & | code, | ||
const double & | major_axis, | ||
const double & | minor_axis, | ||
ossim_uint32 | epsg_code = 0 |
||
) |
Definition at line 64 of file ossimEllipsoid.cpp.
References computeFlattening(), ossimEllipsoidFactory::findEpsgCode(), ossimEllipsoidFactory::instance(), theCode, theEccentricitySquared, theEpsgCode, and theFlattening.
ossimEllipsoid::ossimEllipsoid | ( | const double & | major_axis, |
const double & | minor_axis | ||
) |
Definition at line 98 of file ossimEllipsoid.cpp.
References computeFlattening(), ossimEllipsoidFactory::instance(), theA, theB, theEccentricitySquared, theFlattening, and ossimEllipsoidFactory::wgs84().
ossimEllipsoid::ossimEllipsoid | ( | ) |
Definition at line 87 of file ossimEllipsoid.cpp.
References ossimEllipsoidFactory::instance(), and ossimEllipsoidFactory::wgs84().
|
inlinevirtual |
Definition at line 55 of file ossimEllipsoid.h.
|
inline |
Definition at line 63 of file ossimEllipsoid.h.
Referenced by ossimUpspt::convertFromGeodetic(), ossimUtmpt::convertFromGround(), ossimUtmpt::convertToGround(), ossimSpaceObliqueMercatorProjection::setParameters(), ossimWgs72Datum::shiftFromWgs84(), ossimWgs72Datum::shiftToWgs84(), and ossimWriter::writeTiffTags().
|
inline |
Definition at line 64 of file ossimEllipsoid.h.
Referenced by ossimUpspt::convertFromGeodetic(), and ossimWriter::writeTiffTags().
|
inline |
|
inlineprotected |
void ossimEllipsoid::computeLocalToWorldTransformFromXYZ | ( | double | x, |
double | y, | ||
double | z, | ||
ossimMatrix4x4 & | localToWorld | ||
) | const |
Definition at line 670 of file ossimEllipsoid.cpp.
References ossimMatrix4x4::createIdentity(), ossimMatrix4x4::getData(), x, and y.
|
inline |
Definition at line 78 of file ossimEllipsoid.h.
Referenced by ossimSpaceObliqueMercatorProjection::setParameters().
|
inline |
double ossimEllipsoid::evaluate | ( | const ossimEcefPoint & | location | ) | const |
METHOD: evaluate() evaluate will evalate the function at location x, y, z (ECEF).
Definition at line 312 of file ossimEllipsoid.cpp.
References theA_squared, theB_squared, ossimEcefPoint::x(), ossimEcefPoint::y(), and ossimEcefPoint::z().
|
inline |
Definition at line 76 of file ossimEllipsoid.h.
Referenced by ossimUtmpt::convertFromGround(), ossimUtmpt::convertToGround(), ossimWgs72Datum::shiftFromWgs84(), and ossimWgs72Datum::shiftToWgs84().
void ossimEllipsoid::geodeticRadii | ( | const double & | latitude, |
ossimDpt & | radii | ||
) | const |
Computes the "geodetic" radius of curvature of the ellipsoid in the east-west (x) and north-south (y) directions for a given latitude in DEGREES:
Definition at line 559 of file ossimEllipsoid.cpp.
References ossim::cosd(), ossim::sind(), theA_squared, theB_squared, ossimDpt::x, and ossimDpt::y.
Referenced by ossimGpt::metersPerDegree().
double ossimEllipsoid::geodeticRadius | ( | const double & | latitude | ) | const |
Computes the "geodetic" radius for a given latitude in DEGREES:
Definition at line 542 of file ossimEllipsoid.cpp.
References ossim::cosd(), ossim::sind(), theA_squared, and theB_squared.
Referenced by ossimGpt::metersPerDegree(), and ossimInfo::mtrsPerDeg().
|
inline |
Definition at line 66 of file ossimEllipsoid.h.
Referenced by ossimMapProjection::getA(), ossimMapProjection::print(), ossimWgs72Datum::shift(), ossimSevenParamDatum::shift(), ossimThreeParamDatum::shiftFromWgs84(), ossimThreeParamDatum::shiftToWgs84(), ossimNewZealandMapGridProjection::update(), ossimUpsProjection::update(), ossimBonneProjection::update(), ossimCassiniProjection::update(), ossimStereographicProjection::update(), ossimEckert6Projection::update(), ossimGnomonicProjection::update(), ossimPolarStereoProjection::update(), ossimTransMercatorProjection::update(), ossimUtmProjection::update(), ossimEckert4Projection::update(), ossimMillerProjection::update(), ossimVanDerGrintenProjection::update(), ossimMollweidProjection::update(), ossimTransCylEquAreaProjection::update(), ossimPolyconicProjection::update(), ossimCylEquAreaProjection::update(), ossimMercatorProjection::update(), ossimSinusoidalProjection::update(), ossimOrthoGraphicProjection::update(), ossimAzimEquDistProjection::update(), ossimObliqueMercatorProjection::update(), ossimEquDistCylProjection::update(), ossimLambertConformalConicProjection::update(), and ossimAlbersProjection::update().
|
inline |
Definition at line 67 of file ossimEllipsoid.h.
Referenced by ossimMapProjection::getB(), ossimMapProjection::print(), ossimWgs72Datum::shift(), and ossimSevenParamDatum::shift().
ossim_uint32 ossimEllipsoid::getEpsgCode | ( | ) | const |
Definition at line 714 of file ossimEllipsoid.cpp.
References ossimString::empty(), ossimEllipsoidFactory::findEpsgCode(), ossimEllipsoidFactory::instance(), theCode, and theEpsgCode.
Referenced by ossimGeoTiff::writeTags(), and ossimWriter::writeTiffTags().
|
inline |
Definition at line 68 of file ossimEllipsoid.h.
Referenced by ossimMapProjection::getF(), ossimThreeParamDatum::shiftFromWgs84(), ossimThreeParamDatum::shiftToWgs84(), ossimUpsProjection::update(), ossimCassiniProjection::update(), ossimStereographicProjection::update(), ossimBonneProjection::update(), ossimEckert6Projection::update(), ossimGnomonicProjection::update(), ossimPolarStereoProjection::update(), ossimTransMercatorProjection::update(), ossimUtmProjection::update(), ossimVanDerGrintenProjection::update(), ossimMillerProjection::update(), ossimEckert4Projection::update(), ossimMollweidProjection::update(), ossimPolyconicProjection::update(), ossimTransCylEquAreaProjection::update(), ossimCylEquAreaProjection::update(), ossimMercatorProjection::update(), ossimSinusoidalProjection::update(), ossimOrthoGraphicProjection::update(), ossimAzimEquDistProjection::update(), ossimObliqueMercatorProjection::update(), ossimEquDistCylProjection::update(), ossimLambertConformalConicProjection::update(), and ossimAlbersProjection::update().
void ossimEllipsoid::gradient | ( | const ossimEcefPoint & | location, |
ossimEcefVector & | result | ||
) | const |
METHOD: gradient() Compute the partials along location x, y, and z and place the result in the result vector.
Definition at line 328 of file ossimEllipsoid.cpp.
References theA_squared, theB_squared, ossimEcefPoint::x(), ossimEcefVector::x(), ossimEcefPoint::y(), ossimEcefVector::y(), ossimEcefPoint::z(), and ossimEcefVector::z().
Referenced by gradient(), and ossimRpcModel::imagingRay().
ossimEcefVector ossimEllipsoid::gradient | ( | const ossimEcefPoint & | loc | ) | const |
Definition at line 343 of file ossimEllipsoid.cpp.
References gradient().
|
inlinevirtual |
Definition at line 203 of file ossimEllipsoid.h.
References ossim::almostEqual(), theA, theB, theCode, theEccentricitySquared, theEpsgCode, theFlattening, and theName.
Referenced by ossimDatum::isEqualTo(), and ossimMapProjection::isEqualTo().
void ossimEllipsoid::jacobianWrtEcef | ( | const ossimEcefPoint & | location, |
NEWMAT::Matrix & | jMat | ||
) | const |
METHOD: jacobianWrtEcef() Forms Jacobian of partials of geodetic WRT ECF.
Definition at line 467 of file ossimEllipsoid.cpp.
References prinRadiiOfCurv(), RAD_PER_DEG, ossimEcefPoint::x(), XYZToLatLonHeight(), ossimEcefPoint::y(), and ossimEcefPoint::z().
Referenced by ossimPositionQualityEvaluator::computeElevAzim(), and ossimRpcModel::getForwardDeriv().
void ossimEllipsoid::jacobianWrtGeo | ( | const ossimEcefPoint & | location, |
NEWMAT::Matrix & | jMat | ||
) | const |
METHOD: jacobianWrtGeo() Forms Jacobian of partials of ECF WRT geodetic.
Definition at line 507 of file ossimEllipsoid.cpp.
References prinRadiiOfCurv(), RAD_PER_DEG, ossimEcefPoint::x(), XYZToLatLonHeight(), ossimEcefPoint::y(), and ossimEcefPoint::z().
void ossimEllipsoid::latLonHeightToXYZ | ( | double | lat, |
double | lon, | ||
double | height, | ||
double & | x, | ||
double & | y, | ||
double & | z | ||
) | const |
Definition at line 572 of file ossimEllipsoid.cpp.
References ossim::cosd(), ossim::sind(), theA, theEccentricitySquared, x, and y.
Referenced by ossimEcefPoint::ossimEcefPoint().
bool ossimEllipsoid::loadState | ( | const ossimKeywordlist & | kwl, |
const char * | prefix = 0 |
||
) |
Definition at line 351 of file ossimEllipsoid.cpp.
References computeFlattening(), ossimEllipsoidFactory::create(), ossimKeywordNames::ELLIPSE_CODE_KW, ossimKeywordNames::ELLIPSE_EPSG_CODE_KW, ossimKeywordlist::find(), ossimEllipsoidFactory::instance(), ossimKeywordNames::MAJOR_AXIS_KW, theA, theA_squared, theB, theB_squared, theCode, theEpsgCode, theName, ossimString::toDouble(), ossimString::toUInt32(), and ossimEllipsoidFactory::wgs84().
Referenced by ossimMapProjection::loadState().
|
inline |
ACCESS METHOD...
Definition at line 60 of file ossimEllipsoid.h.
Referenced by ossimInfo::printDatums().
bool ossimEllipsoid::nearestIntersection | ( | const ossimEcefRay & | ray, |
ossimEcefPoint & | rtnPt | ||
) | const |
METHOD: nearestIntersection() Returns the point of nearest intersection of the ray with the ellipsoid. The first version performs the intersection at the ellipsoid surface. The second version computes the ray's intersection with a surface at some offset outside (for positive offset) of the ellipsoid (think elevation).
Definition at line 126 of file ossimEllipsoid.cpp.
Referenced by ossimEcefRay::intersectAboveEarthEllipsoid().
bool ossimEllipsoid::nearestIntersection | ( | const ossimEcefRay & | ray, |
const double & | offset, | ||
ossimEcefPoint & | rtnPt | ||
) | const |
Definition at line 178 of file ossimEllipsoid.cpp.
|
inline |
Definition at line 166 of file ossimEllipsoid.h.
References theA, theB, theCode, theFlattening, and theName.
const ossimEllipsoid & ossimEllipsoid::operator= | ( | const ossimEllipsoid & | copy_me | ) |
Definition at line 721 of file ossimEllipsoid.cpp.
References theA, theA_squared, theB, theB_squared, theCode, theEccentricitySquared, theEpsgCode, theFlattening, and theName.
|
inline |
Definition at line 157 of file ossimEllipsoid.h.
References theA, theB, theCode, theFlattening, and theName.
void ossimEllipsoid::prinRadiiOfCurv | ( | const ossimEcefPoint & | location, |
double & | merRadius, | ||
double & | primeVert | ||
) | const |
METHOD: prinRadiiOfCurv() Computes the meridional radius and prime vertical at given point.
Definition at line 442 of file ossimEllipsoid.cpp.
References RAD_PER_DEG, theA, theEccentricitySquared, ossimEcefPoint::x(), XYZToLatLonHeight(), ossimEcefPoint::y(), and ossimEcefPoint::z().
Referenced by jacobianWrtEcef(), and jacobianWrtGeo().
bool ossimEllipsoid::saveState | ( | ossimKeywordlist & | kwl, |
const char * | prefix = 0 |
||
) | const |
Definition at line 402 of file ossimEllipsoid.cpp.
References ossimKeywordlist::add(), ossimString::c_str(), ossimKeywordNames::ELLIPSE_CODE_KW, ossimKeywordNames::ELLIPSE_EPSG_CODE_KW, ossimKeywordNames::ELLIPSE_NAME_KW, ossimKeywordNames::MAJOR_AXIS_KW, ossimKeywordNames::MINOR_AXIS_KW, theA, theB, theCode, theEpsgCode, and theName.
Referenced by ossimMapProjection::saveState().
|
inline |
|
inline |
Definition at line 72 of file ossimEllipsoid.h.
|
inline |
|
inline |
Definition at line 73 of file ossimEllipsoid.h.
void ossimEllipsoid::XYZToLatLonHeight | ( | double | x, |
double | y, | ||
double | z, | ||
double & | lat, | ||
double & | lon, | ||
double & | height | ||
) | const |
Definition at line 583 of file ossimEllipsoid.cpp.
References DEG_PER_RAD, eccentricitySquared(), theA, theB, theEccentricitySquared, x, and y.
Referenced by jacobianWrtEcef(), jacobianWrtGeo(), ossimGpt::ossimGpt(), and prinRadiiOfCurv().
|
protected |
Definition at line 194 of file ossimEllipsoid.h.
Referenced by isEqualTo(), latLonHeightToXYZ(), loadState(), operator!=(), operator=(), operator==(), ossimEllipsoid(), prinRadiiOfCurv(), saveState(), and XYZToLatLonHeight().
|
protected |
Definition at line 197 of file ossimEllipsoid.h.
Referenced by evaluate(), geodeticRadii(), geodeticRadius(), gradient(), loadState(), and operator=().
|
protected |
Definition at line 195 of file ossimEllipsoid.h.
Referenced by isEqualTo(), loadState(), operator!=(), operator=(), operator==(), ossimEllipsoid(), saveState(), and XYZToLatLonHeight().
|
protected |
Definition at line 198 of file ossimEllipsoid.h.
Referenced by evaluate(), geodeticRadii(), geodeticRadius(), gradient(), loadState(), and operator=().
|
protected |
Definition at line 192 of file ossimEllipsoid.h.
Referenced by getEpsgCode(), isEqualTo(), loadState(), operator!=(), operator=(), operator==(), ossimEllipsoid(), and saveState().
|
protected |
Definition at line 199 of file ossimEllipsoid.h.
Referenced by isEqualTo(), latLonHeightToXYZ(), operator=(), ossimEllipsoid(), prinRadiiOfCurv(), and XYZToLatLonHeight().
|
mutableprotected |
Definition at line 193 of file ossimEllipsoid.h.
Referenced by getEpsgCode(), isEqualTo(), loadState(), operator=(), ossimEllipsoid(), and saveState().
|
protected |
Definition at line 196 of file ossimEllipsoid.h.
Referenced by isEqualTo(), operator!=(), operator=(), operator==(), and ossimEllipsoid().
|
protected |
Definition at line 191 of file ossimEllipsoid.h.
Referenced by isEqualTo(), loadState(), operator!=(), operator=(), operator==(), and saveState().