UNIVERS
15.3
UNIVERS base processing software API
|
#include <u3d_svrg_math_abstract_surf4d.hpp>
Classes | |
struct | Area4d |
Public Member Functions | |
U3dSVRGMathAbstractSurf4d (U3dPoints4dAr &points, double g_step) | |
U3dSVRGMathAbstractSurf4d (const U3dSVRGMathAbstractSurf4d &surf) | |
virtual | ~U3dSVRGMathAbstractSurf4d () |
virtual bool | getPoint (double p, double q, double r, U3dPoint4d &pnt)=0 |
int | getGridPoint (int i, int j, int k, U3dPoint4d &p) |
int | getGridX1Size () |
int | getGridX2Size () |
int | getGridX3Size () |
void | setMinGridStep (double eps) |
double | getMinGridStep () |
virtual void | getAreaSize (U3dPoint4d &min, U3dPoint4d &max) |
Protected Member Functions | |
void | construct_grid (U3dPoints4dAr &points) |
void | push_ip (U3dPoint4d *point) |
void | add_grid_cell (int ix1, int jx2, int kx3, U3dSVRGMathAbstractSurface::GridCell &cell) |
double | calc_nip_x4 (double x1, double x2, double x3) |
Protected Attributes | |
struct U3dSVRGMathAbstractSurf4d::Area4d | area4d |
std::vector < U3dSVRGMathAbstractSurface::GridMatrix > | grid |
std::vector< double > | grd_x1 |
std::vector< double > | grd_x2 |
std::vector< double > | grd_x3 |
double | minGridEps |
int | m_grd_ip_num |
double | m_prev_x4mn |
double | m_prev_x4mx |
U3dPoints4dAr | m_ips |
U3dPoints4dAr | m_grd_ips |
U3dIntEq4dLeftPart | m_grd_eq_lp |
U3dEqDiv2Solve | m_grd_eq_solver |
4D surface abstract object that provides pseudoregular hypergrid generation. Source data is array of 4D points U3dPoint4d(x1, x2, x3, x4). Grid is to be in the form of x4[i,j,k]={x1[i], x2[j], x3[k]}.
U3dSVRGMathAbstractSurf4d::U3dSVRGMathAbstractSurf4d | ( | U3dPoints4dAr & | points, |
double | g_step | ||
) |
Default constructor with points and minimal grid step value provided
|
inline |
Copy constructor, JUST DO IT !!!
|
virtual |
Destruct object
|
protected |
Add provided grid cell to current grid with indexies (ix1, jx2, kx3). If any index is < 0 it means that in this direction new point or line is too close (look minGridEps) to other and indexies convet from negative direction as ind_new = -(old_ind+1).
|
protected |
Calculate z-coordinate value of not initial grid point. Current array of initial points is used for calculations. x1, x2 and x3 is 3d coordinates of not initial point.
|
protected |
Construct grid for provided initial points and minimal grid step value provided
|
virtual |
Return current 4D area size. Return 0 0 0 0 and 0 0 0 0 if no points were added
int U3dSVRGMathAbstractSurf4d::getGridPoint | ( | int | i, |
int | j, | ||
int | k, | ||
U3dPoint4d & | p | ||
) |
Return point associated with grid. This function returns type of point: initial is 1, otherwise 0. If indexies are out of range this method will return boundary values. Nothing for point if object is empty (return -1)
|
inline |
Return number of X1-coordinate grid elements
|
inline |
Return number of X2-coordinate grid elements
|
inline |
Return number of X3-coordinate grid elements
|
inline |
Return minimal distance between points lines when they will be in different grid rows or cols
|
pure virtual |
Get 4d point from interpolated surface based on current pseudoregular grid. Return true if interpolation was made. Should be reimplemented.
Implemented in U3dSVRGMathBspl3Surf4d.
|
protected |
Push initial point to array of initial points and to proper grid cell
|
inline |
Set minimal distance between points lines when they will be in different grid rows or cols
|
protected |
Grid x1, x2 and x3 coordinates vectors
|
protected |
Pseudoregular 3D grid
|
protected |
Left part of nonlinear equation for non-initial points x4-coordinates calculation while regular grid construction
|
protected |
Regular grid non-linear equation solver
|
protected |
Number of initial points placed on current grid
|
protected |
Array of initial points placed on current grid
|
protected |
Array of initial points
|
protected |
Previous maximal and minimal x4-coordinate range
|
protected |
Minimal distance between points lines when they will be in different grid positions