10 #ifndef __TERRALIB_MNT_INTERNAL_SPLINEGRASS_H
11 #define __TERRALIB_MNT_INTERNAL_SPLINEGRASS_H
25 m_nPartsX(nPartsX), m_nPartsY(nPartsY), m_minpoints(minPoints), m_overlapping(overlappin) {}
52 void node_x(
double x,
int &i_x,
double &csi_x,
double xMin,
double deltaX)
54 i_x = (int)((x - xMin) / deltaX);
55 csi_x = (double)((x - xMin) - (i_x * deltaX));
61 void node_y(
double y,
int &i_y,
double &csi_y,
double yMin,
double deltaY)
63 i_y = (int)((y - yMin) / deltaY);
64 csi_y = (double)((y - yMin) - (i_y * deltaY));
70 int order(
int i_x,
int i_y,
unsigned int yNum){
return (i_y + i_x * (
int)yNum); }
75 double phi_3(
double csi) {
return ((pow(2 - csi, 3.) - pow(1 - csi, 3.) * 4) / 6.); }
79 double phi_4(
double csi){
return (pow(2 - csi, 3.) / 6.); }
83 double phi_33(
double csi_x,
double csi_y){
return (phi_3(csi_x) * phi_3(csi_y)); }
87 double phi_34(
double csi_x,
double csi_y){
return (phi_3(csi_x) * phi_4(csi_y)); }
91 double phi_43(
double csi_x,
double csi_y){
return (phi_4(csi_x) * phi_3(csi_y)); }
95 double phi_44(
double csi_x,
double csi_y){
return (phi_4(csi_x) * phi_4(csi_y)); }
99 double phi(
double csi_x,
double csi_y){
return ((1 - csi_x)*(1 - csi_y)); }
103 bool tcholDec(std::vector< std::vector<double> > &);
134 std::vector< std::vector<double> >
m_N;
This file contains a class to calculate retangular grid from Samples. Adapted from SPRING.
LineString is a curve with linear interpolation between points.
double phi_43(double csi_x, double csi_y)
Design matrix coefficients computation.
void node_y(double y, int &i_y, double &csi_y, double yMin, double deltaY)
Ordinate node index computation.
std::vector< std::vector< double > > m_N
Interpolation and least-square matrix.
static bool AdjustLinear(te::gm::LineString *ptol, double maxDist)
METHOD TO ADJUST A LINEAR CURVE TO A SET OF LINE POINTS.
static te::gm::LineString * pointListSimplify(te::gm::LineString *ls, double snap, double Zvalue)
void setControlPoints(double xMin, double yMin)
double m_mean
Media da area local.
void normalDefBicubic(double xMin, double yMin)
unsigned int m_nsply
Numero de linhas do spline.
double phi_44(double csi_x, double csi_y)
Design matrix coefficients computation.
double dataInterpolateBicubic(double x, double y, double xMin, double yMin, bool &interp)
SplineInterpolationGrass(unsigned int nPartsX, unsigned int nPartsY, unsigned int minPoints, double overlappin)
Contructors.
bool tcholDec(std::vector< std::vector< double > > &)
std::vector< double > m_parVect
Interpolating and least-square vectors.
bool calculateGrid(double xMin, double yMin)
double phi_3(double csi)
Design matrix coefficients computation.
double phi_33(double csi_x, double csi_y)
Design matrix coefficients computation.
int order(int i_x, int i_y, unsigned int yNum)
Node order computation.
void initInterpolation(int beginLine, int endLine, int beginCol, int endCol)
~SplineInterpolationGrass()
Destructor.
unsigned int nPointInterest()
double phi_34(double csi_x, double csi_y)
Design matrix coefficients computation.
void normalDefBilin(double xMin, double yMin)
unsigned int m_minpoints
minimum of points considered
void node_x(double x, int &i_x, double &csi_x, double xMin, double deltaX)
Ordinate node index computation.
double m_overlapping
overlap value considered
double phi_4(double csi)
Design matrix coefficients computation.
unsigned int m_npoints
Numero de pontos de interesse.
double pointsControlMean()
unsigned int m_nparameters
double dataInterpolateBilin(double x, double y, double xMin, double yMin, bool &interp)
double phi(double csi_x, double csi_y)
Design matrix coefficients computation.
std::vector< te::gm::Point > m_obsVect
Interpolation and least-square vectors.
unsigned int m_nsplx
Numero de colunas do spline.
#define TEMNTEXPORT
You can use this macro in order to export/import classes and functions from this module.