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
U3dPRGrid3d Class Reference

#include <u3d_prgrid3d.hpp>

Classes

struct  Area4d
 
class  U3dIntEq4dLeftPart
 

Public Member Functions

 U3dPRGrid3d (const U3dPoints4dAr &points, double g_step)
 
 U3dPRGrid3d (const U3dPRGrid3d &obj)
 
virtual ~U3dPRGrid3d ()
 
void construct (const U3dPoints4dAr &points, double g_step)
 
int getGridPoint (int i, int j, int k, U3dPoint4d &p) const
 
int getGridX1Size () const
 
int getGridX2Size () const
 
int getGridX3Size () const
 
void setMinGridStep (double eps)
 
double getMinGridStep ()
 
virtual void getAreaSize (U3dPoint4d &min, U3dPoint4d &max)
 

Protected Member Functions

void push_ip (U3dPoint4d *point)
 
void add_grid_cell (int ix1, int jx2, int kx3, U3dPRGrid2d::GridCell &cell)
 
double calc_nip_x4 (double x1, double x2, double x3)
 
void clear ()
 

Protected Attributes

struct U3dPRGrid3d::Area4d area4d
 
std::vector
< U3dPRGrid2d::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
 
UEqDiv2Solve m_grd_eq_solver
 

Detailed Description

3D 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

U3dPRGrid3d::U3dPRGrid3d ( const U3dPoints4dAr &  points,
double  g_step 
)

Default constructor with points and minimal grid step value provided

U3dPRGrid3d::U3dPRGrid3d ( const U3dPRGrid3d obj)

Copy constructor

virtual U3dPRGrid3d::~U3dPRGrid3d ( )
virtual

Destruct object

Member Function Documentation

void U3dPRGrid3d::add_grid_cell ( int  ix1,
int  jx2,
int  kx3,
U3dPRGrid2d::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 U3dPRGrid3d::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 U3dPRGrid3d::clear ( )
protected

Remove internal data

void U3dPRGrid3d::construct ( const U3dPoints4dAr &  points,
double  g_step 
)

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

virtual void U3dPRGrid3d::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 U3dPRGrid3d::getGridPoint ( int  i,
int  j,
int  k,
U3dPoint4d p 
) const

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 U3dPRGrid3d::getGridX1Size ( ) const
inline

Return number of X1-coordinate grid elements

int U3dPRGrid3d::getGridX2Size ( ) const
inline

Return number of X2-coordinate grid elements

int U3dPRGrid3d::getGridX3Size ( ) const
inline

Return number of X3-coordinate grid elements

double U3dPRGrid3d::getMinGridStep ( )
inline

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

void U3dPRGrid3d::push_ip ( U3dPoint4d point)
protected

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

void U3dPRGrid3d::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> U3dPRGrid3d::grd_x1
protected

Grid x1, x2 and x3 coordinates vectors

std::vector<U3dPRGrid2d::GridMatrix> U3dPRGrid3d::grid
protected

Pseudoregular 3D grid

U3dIntEq4dLeftPart U3dPRGrid3d::m_grd_eq_lp
protected

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

UEqDiv2Solve U3dPRGrid3d::m_grd_eq_solver
protected

Regular grid non-linear equation solver

int U3dPRGrid3d::m_grd_ip_num
protected

Number of initial points placed on current grid

U3dPoints4dAr U3dPRGrid3d::m_grd_ips
protected

Array of initial points placed on current grid

U3dPoints4dAr U3dPRGrid3d::m_ips
protected

Array of initial points

double U3dPRGrid3d::m_prev_x4mn
protected

Previous maximal and minimal x4-coordinate range

double U3dPRGrid3d::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: