31 #include "boost/numeric/ublas/symmetric.hpp"    32 #include "boost/numeric/ublas/io.hpp"   175                    const Distance &radius);
   177           const Distance &radius, 
const Angle &latSigma, 
const Angle &lonSigma,
   178           const Distance &radiusSigma);
   180                    const Distance &radius,
   181                    const boost::numeric::ublas::symmetric_matrix
   182                      <
double,boost::numeric::ublas::upper>& covar);
   183       SurfacePoint(
const Displacement &x, 
const Displacement &y,
   184                    const Displacement &z);
   185       SurfacePoint(
const Displacement &x, 
const Displacement &y,
   186           const Displacement &z, 
const Distance &xSigma, 
const Distance &ySigma,
   187           const Distance &zSigma);
   188       SurfacePoint(
const Displacement &x, 
const Displacement &y,
   189                    const Displacement &z,
   190                    const boost::numeric::ublas::symmetric_matrix
   191                      <
double,boost::numeric::ublas::upper>& covar);
   196           const Displacement &z, 
const Distance &xSigma=Distance(),
   197           const Distance &ySigma=Distance(), 
const Distance &zSigma=Distance());
   199       void SetRectangular(
const Displacement x, 
const Displacement y, 
const Displacement z,
   200         const boost::numeric::ublas::symmetric_matrix<double,boost::numeric::ublas::upper>& covar);
   203                                    const Displacement &z);
   207                                 const Distance &zSigma);
   210                                 const boost::numeric::ublas::symmetric_matrix<double,boost::numeric::ublas::upper>& covar,
   211                                 SurfacePoint::CoordUnits units = SurfacePoint::Meters);
   217       void SetSpherical (
const Latitude &lat, 
const Longitude &lon,
   218           const Distance &radius, 
const Angle &latSigma=Angle(),
   219           const Angle &lonSigma=Angle(),
   220           const Distance &radiusSigma=Distance());
   222       void SetSpherical (
const Latitude &lat, 
const Longitude &lon,
   223           const Distance &radius,
   224           const boost::numeric::ublas::symmetric_matrix
   225             <
double,boost::numeric::ublas::upper>& covar);
   228                                    const Distance &radius);
   231                               const boost::numeric::ublas::symmetric_matrix<double,boost::numeric::ublas::upper>& covar,
   232                               SurfacePoint::CoordUnits units = SurfacePoint::Meters);
   235                               const Distance &radiusSigma);
   238                                       const Distance &lonSigma,
   239                                       const Distance &radiusSigma);
   248          const boost::numeric::ublas::symmetric_matrix<double,boost::numeric::ublas::upper>& covar);        
   261       Displacement GetX() 
const;
   262       Displacement GetY() 
const;
   263       Displacement GetZ() 
const;
   264       Distance GetXSigma() 
const;
   265       Distance GetYSigma() 
const;
   266       Distance GetZSigma() 
const;
   270       boost::numeric::ublas::symmetric_matrix<double,boost::numeric::ublas::upper> 
   271         GetRectangularMatrix(SurfacePoint::CoordUnits units = SurfacePoint::Meters) 
const;
   275       Angle GetLatSigma() 
const;
   278       Angle GetLonSigma() 
const;
   281       Distance GetLocalRadiusSigma() 
const;
   283       boost::numeric::ublas::symmetric_matrix
   284           <double,boost::numeric::ublas::upper> GetSphericalMatrix
   285             (SurfacePoint::CoordUnits units = SurfacePoint::Meters) 
const;
   294       double LatToDouble(Latitude lat, CoordUnits units);
   295       double LonToDouble(Longitude lon, CoordUnits units);
   302           const Distance &sphereRadius) 
const;
   318       void SetRectangularPoint(
const Displacement &x, 
const Displacement &y, 
const Displacement &z);
   319       void SetSphericalPoint(
const Latitude &lat, 
const Longitude &lon, 
const Distance &radius);
   320       void FreeAllocatedMemory();
   322       Distance p_localRadius;
   327       boost::numeric::ublas::symmetric_matrix
   330       boost::numeric::ublas::symmetric_matrix
 This class defines a body-fixed surface point. 
 
double LonToDouble(Longitude lon, CoordUnits units)
This method returns a double version of a Longitude in the specified units. 
 
boost::numeric::ublas::symmetric_matrix< double, boost::numeric::ublas::upper > * p_sphereCovar
3x3 upper triangular covariance matrix ocentric coordinates 
 
void SetSpherical(const Latitude &lat, const Longitude &lon, const Distance &radius, const Angle &latSigma=Angle(), const Angle &lonSigma=Angle(), const Distance &radiusSigma=Distance())
Set surface point and covariance matrix in planetocentric coordinates and convert to rectangular (Lat...
 
double GetYWeight() const
Return Y weight for bundle adjustment Units are 1/(kilometers)^2. 
 
boost::numeric::ublas::symmetric_matrix< double, boost::numeric::ublas::upper > * p_rectCovar
3x3 upper triangular covariance matrix rectangular coordinates 
 
void SetRectangularPoint(const Displacement &x, const Displacement &y, const Displacement &z)
This is a private method to set a surface point in rectangular, body-fixed coordinates. 
 
Distance GetDistanceToPoint(const SurfacePoint &other) const
Computes and returns the distance between two surface points. 
 
void ComputeLocalRadius()
Compute the local radius of the surface point. 
 
double MetersToLatitude(double latLength)
This method returns an angular measure of a distance in the direction of and relative to the latitude...
 
~SurfacePoint()
Destroys a SurfacePoint object/. 
 
void SetRectangularCoordinates(const Displacement &x, const Displacement &y, const Displacement &z)
Set surface point in rectangular coordinates. 
 
Distance GetLatSigmaDistance() const
Return the latitude sigma as a Distance. 
 
double GetSigma(CoordinateType type, CoordIndex index, CoordUnits units)
This method returns a sigma of a SurfacePoint coordinate. 
 
void ResetLocalRadius(const Distance &radius)
This method resets the local radius of a SurfacePoint. 
 
Distance GetLonSigmaDistance() const
Return the longitude sigma in meters. 
 
Unless noted otherwise, the portions of Isis written by the USGS are public domain. 
 
Unless noted otherwise, the portions of Isis written by the USGS are public domain. 
 
std::vector< double > LatitudinalDerivative(CoordIndex index)
Compute partial derivative of the conversion of the latitudinal coordinates to body-fixed rectangular...
 
Latitude GetLatitude() const
Return the body-fixed latitude for the surface point. 
 
double GetCoord(CoordinateType type, CoordIndex index, CoordUnits units)
This method returns a coordinate of a SurfacePoint. 
 
void SetRectangularSigmas(const Distance &xSigma, const Distance &ySigma, const Distance &zSigma)
Set surface point and sigmas in rectangular coordinates and convert to planetocentric. 
 
std::vector< double > RectangularDerivative(CoordIndex index)
Compute partial derivative of the body-fixed rectangular coordinates with respect to the indicated co...
 
double GetZWeight() const
Return Z weight for bundle adjustment Units are 1/(kilometers)^2. 
 
void InitPoint()
Initialize a surface point. 
 
Planetocentric latitudinal (lat/lon/rad) coordinates. 
 
void SetRectangularMatrix(const boost::numeric::ublas::symmetric_matrix< double, boost::numeric::ublas::upper > &covar, SurfacePoint::CoordUnits units=SurfacePoint::Meters)
Set rectangular covariance matrix and store in units of km**2. 
 
void SetSphericalMatrix(const boost::numeric::ublas::symmetric_matrix< double, boost::numeric::ublas::upper > &covar, SurfacePoint::CoordUnits units=SurfacePoint::Meters)
Set spherical covariance matrix. 
 
void InitCovariance()
Initialize the variance/covariance matrices. 
 
double LongitudeToMeters(double longitude) const
This method returns a length in meters version of a delta longitude angle in radians relative to the ...
 
std::vector< double > Partial(CoordinateType type, CoordIndex index)
Compute partial derivative of conversion from body-fixed coordinates to the specified. 
 
double DisplacementToDouble(Displacement disp, CoordUnits units)
This method returns a double version of a Displacement in the specified units. 
 
static QString coordinateTypeToString(CoordinateType type)
Converts the given SurfacePoint::CoordinateType enumeration to a string. 
 
double MetersToLongitude(double lonLength)
This method returns an angular measure in radians of a distance in the direction of and relative to t...
 
void SetSphericalPoint(const Latitude &lat, const Longitude &lon, const Distance &radius)
This is a private method to set a surface point in spherical (lat/lon/radius), body-fixed coordinates...
 
double GetLocalRadiusWeight() const
Return radius weight for bundle adjustment Units are 1/(kilometers)^2. 
 
double LatToDouble(Latitude lat, CoordUnits units)
This method returns a double version of a Latitude in the specified units. 
 
void SetMatrix(CoordinateType type, const boost::numeric::ublas::symmetric_matrix< double, boost::numeric::ublas::upper > &covar)
Set the covariance matrix. 
 
Body-fixed rectangular x/y/z coordinates. 
 
CoordinateType
Defines the coordinate typ, units, and coordinate index for some of the output methods. 
 
Distance GetSigmaDistance(CoordinateType type, CoordIndex index)
This method returns a sigma of a SurfacePoint coordinate as a Distance. 
 
double GetLonWeight() const
Return longitude weight for bundle adjustment Units are 1/(radians)^2. 
 
static CoordinateType stringToCoordinateType(QString type)
 This method converts the given string value to a SurfacePoint::CoordinateType enumeration. 
 
double LatitudeToMeters(double latitude) const
This method returns a Displacement of an Angle relative to the current SurfacePoint latitude...
 
void SetSphericalSigmas(const Angle &latSigma, const Angle &lonSigma, const Distance &radiusSigma)
Set the spherical sigmas into the spherical variance/covariance matrix in diagonal units of radians^2...
 
Longitude GetLongitude() const
Return the body-fixed longitude for the surface point. 
 
double GetXWeight() const
Return X weight for bundle adjustment Units are 1/(kilometers)^2. 
 
void ToNaifArray(double naifOutput[3]) const
A naif array is a c-style array of size 3. 
 
void FromNaifArray(const double naifValues[3])
A naif array is a c-style array of size 3. 
 
double DistanceToDouble(Distance dist, CoordUnits units)
This method returns a double version of a Distance in the specified units. 
 
Namespace for ISIS/Bullet specific routines. 
 
void SetSphericalSigmasDistance(const Distance &latSigma, const Distance &lonSigma, const Distance &radiusSigma)
Set the spherical sigmas (in Distance units) into the spherical variance/covariance matrix...
 
SurfacePoint()
Constructs an empty SurfacePoint object. 
 
double GetWeight(CoordinateType type, CoordIndex index)
This method returns the weight of a SurfacePoint coordinate Note: At this time a units argument is no...
 
void SetSphericalCoordinates(const Latitude &lat, const Longitude &lon, const Distance &radius)
Update spherical coordinates (lat/lon/radius) 
 
Distance GetLocalRadius() const
Return the radius of the surface point. 
 
double GetLatWeight() const
Return latitude weight for bundle adjustment Units are 1/(radians)^2. 
 
void SetRectangular(const Displacement &x, const Displacement &y, const Displacement &z, const Distance &xSigma=Distance(), const Distance &ySigma=Distance(), const Distance &zSigma=Distance())
Set surface point in rectangular body-fixed coordinates wtih optional sigmas.