28 #include "boost/numeric/ublas/symmetric.hpp"
29 #include "boost/numeric/ublas/io.hpp"
99 const boost::numeric::ublas::symmetric_matrix
100 <
double,boost::numeric::ublas::upper>& covar);
108 const boost::numeric::ublas::symmetric_matrix
109 <
double,boost::numeric::ublas::upper>& covar);
118 const boost::numeric::ublas::symmetric_matrix<double,boost::numeric::ublas::upper>& covar);
126 const boost::numeric::ublas::symmetric_matrix<double,boost::numeric::ublas::upper>& covar);
139 const boost::numeric::ublas::symmetric_matrix
140 <
double,boost::numeric::ublas::upper>& covar);
146 const boost::numeric::ublas::symmetric_matrix<double,boost::numeric::ublas::upper>& covar);
168 boost::numeric::ublas::symmetric_matrix<double,boost::numeric::ublas::upper>
169 GetRectangularMatrix()
const;
173 Angle GetLatSigma()
const;
176 Angle GetLonSigma()
const;
179 Distance GetLocalRadiusSigma()
const;
181 boost::numeric::ublas::symmetric_matrix
182 <double,boost::numeric::ublas::upper> GetSphericalMatrix()
const;
187 const Distance &sphereRadius)
const;
203 void FreeAllocatedMemory();
212 boost::numeric::ublas::symmetric_matrix
215 boost::numeric::ublas::symmetric_matrix
This class defines a body-fixed surface point.
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...
boost::numeric::ublas::symmetric_matrix< double, boost::numeric::ublas::upper > * p_rectCovar
3x3 upper triangular covariance matrix rectangular coordinates
Distance GetLocalRadius() const
Return the radius of the surface point.
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.
double GetLatWeight() const
Return latitude weight for bundle adjustment Units are 1/(radians)^2.
~SurfacePoint()
Destroys a SurfacePoint object/.
This class is designed to encapsulate the concept of a Latitude.
void ResetLocalRadius(const Distance &radius)
This method resets the local radius of a SurfacePoint.
Unless noted otherwise, the portions of Isis written by the USGS are public domain.
void ToNaifArray(double naifOutput[3]) const
A naif array is a c-style array of size 3.
Unless noted otherwise, the portions of Isis written by the USGS are public domain.
void SetRectangularMatrix(const boost::numeric::ublas::symmetric_matrix< double, boost::numeric::ublas::upper > &covar)
Set rectangular covariance matrix.
Distance measurement, usually in meters.
void SetRectangularSigmas(const Distance &xSigma, const Distance &ySigma, const Distance &zSigma)
Set surface point and sigmas in rectangular coordinates and convert to planetocentric.
Longitude GetLongitude() const
Return the body-fixed longitude for the surface point.
void SetRadii(const Distance &majorRadius, const Distance &minorRadius, const Distance &polarRadius)
Reset the radii of the surface body of the surface point.
Distance GetLonSigmaDistance() const
Return the longiitude sigma in meters.
void InitPoint()
Initialize a surface point.
This class is designed to encapsulate the concept of a Longitude.
void InitCovariance()
Initialize the variance/covariance matrices.
double GetLonWeight() const
Return longitude weight for bundle adjustment Units are 1/(radians)^2.
Latitude GetLatitude() const
Return the body-fixed latitude for the surface point.
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...
Distance GetDistanceToPoint(const SurfacePoint &other) const
Computes and returns the distance between two surface points.
void InitRadii()
Initialize the target surface radii.
Defines an angle and provides unit conversions.
void SetSphericalSigmas(const Angle &latSigma, const Angle &lonSigma, const Distance &radiusSigma)
Set the spherical sigmas into the spherical variance/covariance matrix.
void SetSphericalMatrix(const boost::numeric::ublas::symmetric_matrix< double, boost::numeric::ublas::upper > &covar)
Set spherical covariance matrix.
Displacement is a signed length, usually in meters.
void FromNaifArray(const double naifValues[3])
A naif array is a c-style array of size 3.
Distance GetLatSigmaDistance() const
Return the latitude sigma in meters.
void SetSphericalSigmasDistance(const Distance &latSigma, const Distance &lonSigma, const Distance &radiusSigma)
Set the spherical sigmas (in meters) into the spherical variance/covariance matrix.
SurfacePoint()
Constructs an empty SurfacePoint object.
void SetSphericalCoordinates(const Latitude &lat, const Longitude &lon, const Distance &radius)
Update spherical coordinates (lat/lon/radius)
double GetLocalRadiusWeight() const
Return radius weight for bundle adjustment Units are 1/(meters)^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.