UNIVERS
15.3
UNIVERS base processing software API
|
#include <parspline.hpp>
Public Member Functions | |
ParSpline (double *xx, double *zz, double *ddx, double *ddz, double *ccurv, bool *flag, int nn) | |
void | Interpolate (double *xx, double *zz, int nn, bool *flag, double rc, double sp, double *xx1=NULL, double *zz1=NULL, int nn1=0, bool noInter=false) |
void | GetXZ (double *xx, double *zz) |
void | GetSPXZ (double_ar *sx, double_ar *sz) |
bool | GetKnot (int kn, double &x, double &z) |
void | GetDXDZ (double *ddx, double *ddz) |
void | GetCurv (double *ccurv) |
void | GetSPFlags (bool *flag) |
int | GetN () |
bool | GetPFlag (int index) |
bool | GetPSpX (double z, double &x) |
bool | GetPSpXs (double z, double *&xs, int &nx) |
bool | GetPSpXs (double z, double *&xs, int &nx, double_ar *xx1, double_ar *zz1) |
bool | GetPSpZ (double x, double &z) |
bool | GetPSpZs (double x, double *&zs, int &nz) |
bool | GetPSpZs (double x, double *&zs, int &nz, double_ar *xx1, double_ar *zz1) |
bool | PSpInt (double x1, double z1, double x2, double z2, double &ix, double &iz, int *nn=NULL) |
bool | PSpInt1 (double x1, double z1, double x2, double z2, double &ix, double &iz, int *nn=NULL) |
bool | PSpInts (double x1, double z1, double x2, double z2, double *ixs, double *izs, int &in, int *inns=NULL) |
bool | PSpI (double x1, double z1, double x2, double z2, int nn, double &ix, double &iz, double &angle, double &curvity) |
bool | PSpI1 (double x1, double z1, double x2, double z2, int nn, double &ix, double &iz, double &angle) |
bool | PSpIs (double x1, double z1, double x2, double z2, int nn, double *ixs, double *izs, int &in, double &angle) |
bool | PSpCutMiddle (double x1, double z1, double x2, double z2, double &ix, double &iz) |
bool | isPSpClean () |
void | SetXZMinMax (double xmn, double xmx, double zmn, double zmx) |
void | GetXZMinMax (double &xmn, double &xmx, double &zmn, double &zmx) |
bool | CheckSplineStatus () |
Protected Member Functions | |
virtual int | IntervalSmoothParSpline (int N1, double *x1, double *z1, bool *flag, int N2, double *xf, double *zf, double rc, double sp, double_ar *xx1, double_ar *zz1, double_ar *dx, double_ar *dz, double_ar *curvity, int_ar *NumNodeBreak) |
Class "Parametric spline" for comlicated curves (with break-points) description. Class is based on functiones, described in parspline_service.hpp
ParSpline::ParSpline | ( | double * | xx, |
double * | zz, | ||
double * | ddx, | ||
double * | ddz, | ||
double * | ccurv, | ||
bool * | flag, | ||
int | nn | ||
) |
Constructor for object initialization with previously interpolated points
void ParSpline::GetCurv | ( | double * | ccurv | ) |
Returns curv values
void ParSpline::GetDXDZ | ( | double * | ddx, |
double * | ddz | ||
) |
Returns dx and dz values
bool ParSpline::GetKnot | ( | int | kn, |
double & | x, | ||
double & | z | ||
) |
Returns coordinates of spline knot #kn
int ParSpline::GetN | ( | ) |
Nodes number
bool ParSpline::GetPSpX | ( | double | z, |
double & | x | ||
) |
Intersection of spline and horizontal line, returns the nearest point
bool ParSpline::GetPSpXs | ( | double | z, |
double *& | xs, | ||
int & | nx | ||
) |
Intersection of spline and horizontal line, returns points array
new version
bool ParSpline::GetPSpZ | ( | double | x, |
double & | z | ||
) |
Intersection of spline and vertical line, returns the nearest point
bool ParSpline::GetPSpZs | ( | double | x, |
double *& | zs, | ||
int & | nz | ||
) |
Intersection of spline and vertical line, returns points array
new version
void ParSpline::GetSPFlags | ( | bool * | flag | ) |
Returns special points information
void ParSpline::GetXZ | ( | double * | xx, |
double * | zz | ||
) |
Returns spline interpolated nodes
void ParSpline::Interpolate | ( | double * | xx, |
double * | zz, | ||
int | nn, | ||
bool * | flag, | ||
double | rc, | ||
double | sp, | ||
double * | xx1 = NULL , |
||
double * | zz1 = NULL , |
||
int | nn1 = 0 , |
||
bool | noInter = false |
||
) |
Provides spline approximation for provided knots
|
protectedvirtual |
Main interpolation method. Might be reimplemented.
Reimplemented in BaseSpline2D.
bool ParSpline::isPSpClean | ( | ) |
Determines, is there special points on the well
bool ParSpline::PSpCutMiddle | ( | double | x1, |
double | z1, | ||
double | x2, | ||
double | z2, | ||
double & | ix, | ||
double & | iz | ||
) |
Returns point on spline, in the middle between given points
bool ParSpline::PSpI | ( | double | x1, |
double | z1, | ||
double | x2, | ||
double | z2, | ||
int | nn, | ||
double & | ix, | ||
double & | iz, | ||
double & | angle, | ||
double & | curvity | ||
) |
Intersection of the spline with arbitrary segment (the spline sector is set), returns the nearest point
bool ParSpline::PSpI1 | ( | double | x1, |
double | z1, | ||
double | x2, | ||
double | z2, | ||
int | nn, | ||
double & | ix, | ||
double & | iz, | ||
double & | angle | ||
) |
Intersection of the spline with arbitrary straight line (the spline sector is set), returns the nearest point
bool ParSpline::PSpInt | ( | double | x1, |
double | z1, | ||
double | x2, | ||
double | z2, | ||
double & | ix, | ||
double & | iz, | ||
int * | nn = NULL |
||
) |
Intersection of the spline with arbitrary segment
bool ParSpline::PSpInt1 | ( | double | x1, |
double | z1, | ||
double | x2, | ||
double | z2, | ||
double & | ix, | ||
double & | iz, | ||
int * | nn = NULL |
||
) |
Intersection of the spline with arbitrary segment, returns the nearest point
bool ParSpline::PSpInts | ( | double | x1, |
double | z1, | ||
double | x2, | ||
double | z2, | ||
double * | ixs, | ||
double * | izs, | ||
int & | in, | ||
int * | inns = NULL |
||
) |
Intersection of the spline with arbitrary segment, returns points array
bool ParSpline::PSpIs | ( | double | x1, |
double | z1, | ||
double | x2, | ||
double | z2, | ||
int | nn, | ||
double * | ixs, | ||
double * | izs, | ||
int & | in, | ||
double & | angle | ||
) |
Intersection of the spline with arbitrary straight line (the spline sector is set), returns points array
void ParSpline::SetXZMinMax | ( | double | xmn, |
double | xmx, | ||
double | zmn, | ||
double | zmx | ||
) |
Manual determinition of the spline limiting rectangle