Isis Developer Reference
SurfaceModel.h
Go to the documentation of this file.
1#ifndef SurfaceModel_h
2#define SurfaceModel_h
8/* SPDX-License-Identifier: CC0-1.0 */
9
10#include <vector>
11#include "PolynomialBivariate.h"
12#include "LeastSquares.h"
13
14namespace Isis {
35 public:
38
39 void AddTriplet(const double x, const double y, const double z);
40 void AddTriplets(const double *x, const double *y, const double *z,
41 const int n);
42 void AddTriplets(const std::vector<double> &x,
43 const std::vector<double> &y,
44 const std::vector<double> &z);
45
46 void Solve();
47 double Evaluate(const double x, const double y);
48
49 int MinMax(double &x, double &y);
50
51 private:
52 LeastSquares *p_lsq;
53 PolynomialBivariate *p_poly2d;
54 };
55};
56
57#endif
Generic least square fitting class.
Definition LeastSquares.h:99
Nth degree Polynomial with two variables.
Definition PolynomialBivariate.h:37
Model a 3-D surface.
Definition SurfaceModel.h:34
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 metho...
Definition SurfaceModel.cpp:24
~SurfaceModel()
Destructor.
Definition SurfaceModel.cpp:17
SurfaceModel()
Constructor.
Definition SurfaceModel.cpp:11
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 ...
Definition SurfaceModel.cpp:70
void Solve()
Fit a surface to the input triplets.
Definition SurfaceModel.cpp:51
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 met...
Definition SurfaceModel.cpp:33
double Evaluate(const double x, const double y)
Evaluate at x,y to compute z. This is available after the Solve method is invoked.
Definition SurfaceModel.cpp:57
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16