Isis 3 Programmer Reference
|
Model a 3-D surface. More...
#include <SurfaceModel.h>
Public Member Functions | |
SurfaceModel () | |
Constructor. More... | |
~SurfaceModel () | |
Destructor. More... | |
void | AddTriplet (const double x, const double y, const double z) |
Add a single (x,y,z) triplet to the list of knowns. After all knowns are added invoke the Solve method. More... | |
void | AddTriplets (const double *x, const double *y, const double *z, const int n) |
Add an array of (x,y,z) triplet to the list of knowns After all knowns are added invoke the Solve method. More... | |
void | AddTriplets (const std::vector< double > &x, const std::vector< double > &y, const std::vector< double > &z) |
Add an array of (x,y,z) triplet to the list of knowns After all knowns are added invoke the Solve method. More... | |
void | Solve () |
Fit a surface to the input triplets. More... | |
double | Evaluate (const double x, const double y) |
Evaluate at x,y to compute z. This is available after the Solve method is invoked. More... | |
int | MinMax (double &x, double &y) |
After invoking Solve, a coordinate (x,y) at a local minimum (or maximum) of the surface model can be computed using this method. More... | |
Private Attributes | |
LeastSquares * | p_lsq |
PolynomialBivariate * | p_poly2d |
Model a 3-D surface.
Given a set of (x,y,z) triplets, this class will model the surface that best fits the points. The equation to be modelled is:
\[ z = a + b*x + c*y + d*x^2 + e*x*y + f*y^2 \]
Definition at line 50 of file SurfaceModel.h.
Isis::SurfaceModel::SurfaceModel | ( | ) |
Constructor.
Definition at line 5 of file SurfaceModel.cpp.
Isis::SurfaceModel::~SurfaceModel | ( | ) |
Destructor.
Definition at line 11 of file SurfaceModel.cpp.
void Isis::SurfaceModel::AddTriplet | ( | const double | x, |
const double | y, | ||
const double | z | ||
) |
Add a single (x,y,z) triplet to the list of knowns. After all knowns are added invoke the Solve method.
Definition at line 18 of file SurfaceModel.cpp.
References Isis::LeastSquares::AddKnown().
Referenced by AddTriplets().
void Isis::SurfaceModel::AddTriplets | ( | const double * | x, |
const double * | y, | ||
const double * | z, | ||
const int | n | ||
) |
Add an array of (x,y,z) triplet to the list of knowns After all knowns are added invoke the Solve method.
Definition at line 27 of file SurfaceModel.cpp.
References AddTriplet().
void Isis::SurfaceModel::AddTriplets | ( | const std::vector< double > & | x, |
const std::vector< double > & | y, | ||
const std::vector< double > & | z | ||
) |
Add an array of (x,y,z) triplet to the list of knowns After all knowns are added invoke the Solve method.
Definition at line 36 of file SurfaceModel.cpp.
References AddTriplet().
double Isis::SurfaceModel::Evaluate | ( | const double | x, |
const double | y | ||
) |
Evaluate at x,y to compute z. This is available after the Solve method is invoked.
Definition at line 51 of file SurfaceModel.cpp.
References Isis::LeastSquares::Evaluate().
int Isis::SurfaceModel::MinMax | ( | double & | x, |
double & | y | ||
) |
After invoking Solve, a coordinate (x,y) at a local minimum (or maximum) of the surface model can be computed using this method.
Definition at line 64 of file SurfaceModel.cpp.
References Isis::BasisFunction::Coefficient().
void Isis::SurfaceModel::Solve | ( | ) |
Fit a surface to the input triplets.
Definition at line 45 of file SurfaceModel.cpp.
References Isis::LeastSquares::Solve().