USGS

Isis 3.0 Object Programmers' Reference

Home

Isis::SurfaceModel Class Reference
[Math]

#include <SurfaceModel.h>

Collaboration diagram for Isis::SurfaceModel:

Collaboration graph
[legend]
List of all members.

Detailed Description

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 \]

Author:
2005-05-09 Jeff Anderson

For internal use only.

History:
2008-06-18 Steven Lambright Fixed ifndef command
Todo:
Add plot and/or visualize method

Definition at line 50 of file SurfaceModel.h.

Public Member Functions

 SurfaceModel ()
 Constructor.
 ~SurfaceModel ()
 Destructor.
void AddTriplet (const double x, const double y, const double z)
 After all knowns are added invoke the Solve method.
void AddTriplets (const double *x, const double *y, const double *z, const int n)
 After all knowns are added invoke the Solve method.
void AddTriplets (const std::vector< double > &x, const std::vector< double > &y, const std::vector< double > &z)
 After all knowns are added invoke the Solve method.
void Solve ()
 Fit a surface to the input triplets.
double Evaluate (const double x, const double y)
 Solve method is invoked.
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.

Private Attributes

LeastSquaresp_lsq
PolynomialBivariatep_poly2d


Constructor & Destructor Documentation

Isis::SurfaceModel::SurfaceModel (  ) 

Constructor.

Definition at line 5 of file SurfaceModel.cpp.

References p_lsq, and p_poly2d.

Isis::SurfaceModel::~SurfaceModel (  ) 

Destructor.

Definition at line 11 of file SurfaceModel.cpp.

References p_lsq, and p_poly2d.


Member Function Documentation

void Isis::SurfaceModel::AddTriplet ( const double  x,
const double  y,
const double  z 
)

After all knowns are added invoke the Solve method.

Definition at line 18 of file SurfaceModel.cpp.

References Isis::LeastSquares::AddKnown(), and p_lsq.

Referenced by AddTriplets().

void Isis::SurfaceModel::AddTriplets ( const std::vector< double > &  x,
const std::vector< double > &  y,
const std::vector< double > &  z 
)

After all knowns are added invoke the Solve method.

Definition at line 36 of file SurfaceModel.cpp.

References AddTriplet().

void Isis::SurfaceModel::AddTriplets ( const double *  x,
const double *  y,
const double *  z,
const int  n 
)

After all knowns are added invoke the Solve method.

Definition at line 27 of file SurfaceModel.cpp.

References AddTriplet().

double Isis::SurfaceModel::Evaluate ( const double  x,
const double  y 
)

Solve method is invoked.

Definition at line 51 of file SurfaceModel.cpp.

References Isis::LeastSquares::Evaluate(), and p_lsq.

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.

Returns:
A zero if successful, otherwise, the surface is a plane and has no min/max

Definition at line 64 of file SurfaceModel.cpp.

References b, c, Isis::BasisFunction::Coefficient(), d, e, and p_poly2d.

void Isis::SurfaceModel::Solve (  ) 

Fit a surface to the input triplets.

Definition at line 45 of file SurfaceModel.cpp.

References p_lsq, and Isis::LeastSquares::Solve().


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