UNIVERS  15.3
UNIVERS base processing software API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Classes | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
U3dSVRGMathAbstractSurf4d Class Referenceabstract

#include <u3d_svrg_math_abstract_surf4d.hpp>

Inheritance diagram for U3dSVRGMathAbstractSurf4d:
U3dSVRGMathBspl3Surf4d

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
 

Detailed Description

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]}.

Constructor & Destructor Documentation

U3dSVRGMathAbstractSurf4d::U3dSVRGMathAbstractSurf4d ( U3dPoints4dAr &  points,
double  g_step 
)

Default constructor with points and minimal grid step value provided

U3dSVRGMathAbstractSurf4d::U3dSVRGMathAbstractSurf4d ( const U3dSVRGMathAbstractSurf4d surf)
inline

Copy constructor, JUST DO IT !!!

virtual U3dSVRGMathAbstractSurf4d::~U3dSVRGMathAbstractSurf4d ( )
virtual

Destruct object

Member Function Documentation

void U3dSVRGMathAbstractSurf4d::add_grid_cell ( int  ix1,
int  jx2,
int  kx3,
U3dSVRGMathAbstractSurface::GridCell cell 
)
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).

double U3dSVRGMathAbstractSurf4d::calc_nip_x4 ( double  x1,
double  x2,
double  x3 
)
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.

void U3dSVRGMathAbstractSurf4d::construct_grid ( U3dPoints4dAr &  points)
protected

Construct grid for provided initial points and minimal grid step value provided

virtual void U3dSVRGMathAbstractSurf4d::getAreaSize ( U3dPoint4d min,
U3dPoint4d max 
)
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)

int U3dSVRGMathAbstractSurf4d::getGridX1Size ( )
inline

Return number of X1-coordinate grid elements

int U3dSVRGMathAbstractSurf4d::getGridX2Size ( )
inline

Return number of X2-coordinate grid elements

int U3dSVRGMathAbstractSurf4d::getGridX3Size ( )
inline

Return number of X3-coordinate grid elements

double U3dSVRGMathAbstractSurf4d::getMinGridStep ( )
inline

Return minimal distance between points lines when they will be in different grid rows or cols

virtual bool U3dSVRGMathAbstractSurf4d::getPoint ( double  p,
double  q,
double  r,
U3dPoint4d pnt 
)
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.

void U3dSVRGMathAbstractSurf4d::push_ip ( U3dPoint4d point)
protected

Push initial point to array of initial points and to proper grid cell

void U3dSVRGMathAbstractSurf4d::setMinGridStep ( double  eps)
inline

Set minimal distance between points lines when they will be in different grid rows or cols

Member Data Documentation

std::vector<double> U3dSVRGMathAbstractSurf4d::grd_x1
protected

Grid x1, x2 and x3 coordinates vectors

std::vector<U3dSVRGMathAbstractSurface::GridMatrix> U3dSVRGMathAbstractSurf4d::grid
protected

Pseudoregular 3D grid

U3dIntEq4dLeftPart U3dSVRGMathAbstractSurf4d::m_grd_eq_lp
protected

Left part of nonlinear equation for non-initial points x4-coordinates calculation while regular grid construction

U3dEqDiv2Solve U3dSVRGMathAbstractSurf4d::m_grd_eq_solver
protected

Regular grid non-linear equation solver

int U3dSVRGMathAbstractSurf4d::m_grd_ip_num
protected

Number of initial points placed on current grid

U3dPoints4dAr U3dSVRGMathAbstractSurf4d::m_grd_ips
protected

Array of initial points placed on current grid

U3dPoints4dAr U3dSVRGMathAbstractSurf4d::m_ips
protected

Array of initial points

double U3dSVRGMathAbstractSurf4d::m_prev_x4mn
protected

Previous maximal and minimal x4-coordinate range

double U3dSVRGMathAbstractSurf4d::minGridEps
protected

Minimal distance between points lines when they will be in different grid positions


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