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

#include <u3d_svrg_math_abstract_surface.hpp>

Inheritance diagram for U3dSVRGMathAbstractSurface:
U3dMathAbstractSurface U3dSVRGMathBspl3Surface U3dSVRGMathBSSurface U3dSVRGMathBeta3Surface U3dSVRGMathBezier3Surface U3dSVRGMathBS3Surface U3dSVRGMathCRom3Surface

Classes

struct  GridCell
 

Public Member Functions

 U3dSVRGMathAbstractSurface (U3dPointsAr &points, double g_step)
 
 U3dSVRGMathAbstractSurface (U3dSVRGMathAbstractSurface *ps)
 
virtual ~U3dSVRGMathAbstractSurface ()
 
virtual void addPoint (U3dPoint *point)
 
virtual bool removePoint (int ind)
 
virtual void movePoint (int ind, double x, double y, double z)
 
int getGridPoint (int i, int j, U3dPoint &p)
 
int getGridXSize ()
 
int getGridYSize ()
 
void setMinGridStep (double eps)
 
double getMinGridStep ()
 
- Public Member Functions inherited from U3dMathAbstractSurface
 U3dMathAbstractSurface ()
 
 U3dMathAbstractSurface (const U3dMathAbstractSurface &obj)
 
virtual ~U3dMathAbstractSurface ()
 
virtual bool getPoint (double p, double q, U3dPoint &point)=0
 
virtual bool getXYZ (double p, double q, double &x, double &y, double &z)
 
virtual bool getXYZp (double p, double q, U3dPoint &drp)
 
virtual bool getXYZq (double p, double q, U3dPoint &drq)
 
virtual bool getXYZpp (double p, double q, U3dPoint &ddrpp)
 
virtual bool getXYZqq (double p, double q, U3dPoint &ddrqq)
 
virtual bool getXYZpq (double p, double q, U3dPoint &ddrpq)
 
virtual bool getCurvature (double p, double q, double &c)
 
virtual bool getMaxCurvature (double p1, double q1, double p2, double q2, double &c)
 
virtual void getAreaSize (U3dPoint &min, U3dPoint &max)
 
bool isInterpolated ()
 
virtual int getInitialPointsNum ()=0
 
virtual U3dPointgetInitialPoint (unsigned int ind)=0
 
virtual void getInitialPoints (U3dPointsAr &ps)=0
 
virtual const U3dPointsAr & getInitialPoints () const =0
 
 U3dMathAbstractSurface (U3dPointsAr &points)
 
 U3dMathAbstractSurface (U3dMathAbstractSurface *ps)
 
virtual bool getPoint (double p, double q, U3dPoint &point)=0
 
virtual bool getXYZ (double p, double q, double &x, double &y, double &z)
 
virtual bool getXYZp (double p, double q, U3dPoint &drp)
 
virtual bool getXYZq (double p, double q, U3dPoint &drq)
 
virtual bool getXYZpp (double p, double q, U3dPoint &ddrpp)
 
virtual bool getXYZqq (double p, double q, U3dPoint &ddrqq)
 
virtual bool getXYZpq (double p, double q, U3dPoint &ddrpq)
 
virtual bool getCurvature (double p, double q, double &c)
 
virtual bool getMaxCurvature (double p1, double q1, double p2, double q2, double &c)
 
virtual void getAreaSize (U3dPoint &min, U3dPoint &max)
 
bool isInterpolated ()
 
int getInitialPointsNum ()
 
U3dPointgetInitialPoint (int ind)
 
void GetInitialPoints (U3dPointsAr &ps)
 
U3dMathAbstractSurfaceoperator<< (U3dPoint *p)
 

Protected Types

typedef std::vector< GridCellGridLine
 
typedef std::vector< GridLineGridMatrix
 

Protected Member Functions

void construct_grid (U3dPointsAr &points)
 
void push_ip (U3dPoint *point)
 
- Protected Member Functions inherited from U3dMathAbstractSurface
virtual bool approximate ()=0
 

Static Protected Member Functions

static int get_ip_id (double x, std::vector< double > &grd_x, double dx, double &xmn, double &xmx)
 
static void correct_id (int &id, int size)
 

Protected Attributes

double minGridEps
 
std::vector< double > grd_x
 
std::vector< double > grd_y
 
GridMatrix grid
 
- Protected Attributes inherited from U3dMathAbstractSurface
bool m_is_ip_done
 
struct
U3dMathAbstractSurface::Area3d 
area3d
 
U3dPointsAr m_ips
 

Friends

class U3dSVRGMathAbstractSurf4d
 

Additional Inherited Members

- Static Protected Attributes inherited from U3dMathAbstractSurface
static double m_min_dpq
 

Detailed Description

3D surface abstract object provides pseudoregular grid generation

Member Typedef Documentation

typedef std::vector<GridCell> U3dSVRGMathAbstractSurface::GridLine
protected

Grid cell line

typedef std::vector<GridLine> U3dSVRGMathAbstractSurface::GridMatrix
protected

Grid cell matrix

Constructor & Destructor Documentation

U3dSVRGMathAbstractSurface::U3dSVRGMathAbstractSurface ( U3dPointsAr &  points,
double  g_step 
)

Construct surface with points coordinates and minimal grid step provided

U3dSVRGMathAbstractSurface::U3dSVRGMathAbstractSurface ( U3dSVRGMathAbstractSurface ps)

Copy constructor JUST DO IT !!!

virtual U3dSVRGMathAbstractSurface::~U3dSVRGMathAbstractSurface ( )
virtual

Destruct object

Member Function Documentation

virtual void U3dSVRGMathAbstractSurface::addPoint ( U3dPoint point)
virtual

Add one initial point

Implements U3dMathAbstractSurface.

Reimplemented in U3dSVRGMathBSSurface.

void U3dSVRGMathAbstractSurface::construct_grid ( U3dPointsAr &  points)
protected

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

static void U3dSVRGMathAbstractSurface::correct_id ( int &  id,
int  size 
)
inlinestaticprotected

Correct index value in case of its array size.

static int U3dSVRGMathAbstractSurface::get_ip_id ( double  x,
std::vector< double > &  grd_x,
double  dx,
double &  xmn,
double &  xmx 
)
staticprotected

Return proper index of provided x-coordinate for "regular" addition to pseudoregular grid. Also correct xmn and xmx values. The parameters are: x - coordinate of additional point, grd_x - array of points in grid direction, xmn, xmx - sizes of grid direction, dx - precission

int U3dSVRGMathAbstractSurface::getGridPoint ( int  i,
int  j,
U3dPoint 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 U3dSVRGMathAbstractSurface::getGridXSize ( )
inline

Return number of x-coordinate grid elements

int U3dSVRGMathAbstractSurface::getGridYSize ( )
inline

Return number of y-coordinate grid elements

double U3dSVRGMathAbstractSurface::getMinGridStep ( )
inline

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

virtual void U3dSVRGMathAbstractSurface::movePoint ( int  ind,
double  x,
double  y,
double  z 
)
virtual

Move initial point with index ind to provided coordinates place JUST DO IT !!!

Implements U3dMathAbstractSurface.

Reimplemented in U3dSVRGMathBSSurface.

void U3dSVRGMathAbstractSurface::push_ip ( U3dPoint point)
protected

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

virtual bool U3dSVRGMathAbstractSurface::removePoint ( int  ind)
virtual

Remove initial points with index ind. If no such point return false, otherwise return true JUST DO IT !!!

Implements U3dMathAbstractSurface.

void U3dSVRGMathAbstractSurface::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> U3dSVRGMathAbstractSurface::grd_x
protected

Grid x and y coordinates vectors

GridMatrix U3dSVRGMathAbstractSurface::grid
protected

Pseudoregular grid matrix

double U3dSVRGMathAbstractSurface::minGridEps
protected

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


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