Version: 8.3.0
FaceQuadStruct Struct Reference

#include <StdMeshers_Quadrangle_2D.hxx>

Data Structures

struct  Side
 
struct  SideIterator
 

Public Types

typedef boost::shared_ptr
< FaceQuadStruct
Ptr
 

Public Member Functions

 FaceQuadStruct (const TopoDS_Face &F=TopoDS_Face(), const std::string &nm="main")
 Constructor of a quad. More...
 
UVPtStructUVPt (int i, int j)
 
double & U (int i, int j)
 
double & V (int i, int j)
 
void shift (size_t nb, bool keepUnitOri, bool keepGrid=false)
 Rotate sides of a quad CCW by given nb of quartes. More...
 
intnbNodeOut (int iSide)
 
bool findCell (const gp_XY &uv, int &i, int &j)
 Finds indices of a grid quad enclosing the given enforced UV. More...
 
bool isNear (const gp_XY &uv, int &i, int &j, int nbLoops=1)
 Looks for UV in quads around a given (I,J) and precise (I,J) More...
 
bool isEqual (const gp_XY &uv, int i, int j)
 Checks if a given UV is equal to a given grid point. More...
 
void normPa2IJ (double x, double y, int &i, int &j)
 Find indices (i,j) of a point in uv_grid by normalized parameters (x,y) More...
 
void updateUV (const gp_XY &uv, int i, int j, bool isVertical)
 Recompute UV of grid points around a moved point in one direction. More...
 

Data Fields

std::vector< Sideside
 
std::vector< UVPtStructuv_grid
 
int iSize
 
int jSize
 
TopoDS_Face face
 
Bnd_B2d uv_box
 
std::string name
 

Member Typedef Documentation

typedef boost::shared_ptr<FaceQuadStruct> FaceQuadStruct::Ptr

Constructor & Destructor Documentation

FaceQuadStruct::FaceQuadStruct ( const TopoDS_Face &  F = TopoDS_Face(),
const std::string &  nm = "main" 
)

Constructor of a quad.

References side.

Member Function Documentation

bool FaceQuadStruct::findCell ( const gp_XY &  uv,
int i,
int j 
)

Finds indices of a grid quad enclosing the given enforced UV.

References SMESH_MeshAlgos::GetBarycentricCoords(), iSize, isNear(), jSize, Max(), Min(), normPa2IJ(), uvPtStruct::UV(), uv_box, and UVPt().

bool FaceQuadStruct::isEqual ( const gp_XY &  uv,
int  i,
int  j 
)

Checks if a given UV is equal to a given grid point.

References face, Handle(), iSize, jSize, Min(), and UVPt().

bool FaceQuadStruct::isNear ( const gp_XY &  uv,
int i,
int j,
int  nbLoops = 1 
)

Looks for UV in quads around a given (I,J) and precise (I,J)

References SMESH_MeshAlgos::GetBarycentricCoords(), iSize, jSize, uvPtStruct::UV(), and UVPt().

Referenced by findCell().

int& FaceQuadStruct::nbNodeOut ( int  iSide)

References side.

void FaceQuadStruct::normPa2IJ ( double  x,
double  y,
int i,
int j 
)

Find indices (i,j) of a point in uv_grid by normalized parameters (x,y)

References iSize, jSize, Min(), and UVPt().

Referenced by findCell().

void FaceQuadStruct::shift ( size_t  nb,
bool  ori,
bool  keepGrid = false 
)

Rotate sides of a quad CCW by given nb of quartes.

Parameters
nb- number of rotation quartes
ori- to keep orientation of sides as in an unit quad or not
keepGrid- if true Side::grid is not changed, Side::from and Side::to are altered instead

References FaceQuadStruct::Side::contacts, iSize, jSize, NB_QUAD_SIDES, QUAD_BOTTOM_SIDE, QUAD_TOP_SIDE, reverse(), side, uv_grid, and UVPt().

double& FaceQuadStruct::U ( int  i,
int  j 
)

References uvPtStruct::u, and UVPt().

void FaceQuadStruct::updateUV ( const gp_XY &  uv,
int  i,
int  j,
bool  isVertical 
)

Recompute UV of grid points around a moved point in one direction.

References calcUV(), iSize, jSize, uvPtStruct::u, uvPtStruct::UV(), UVPt(), uvPtStruct::v, uvPtStruct::x, and uvPtStruct::y.

UVPtStruct& FaceQuadStruct::UVPt ( int  i,
int  j 
)

References iSize, and uv_grid.

Referenced by findCell(), isEqual(), isNear(), normPa2IJ(), shift(), U(), updateUV(), and V().

double& FaceQuadStruct::V ( int  i,
int  j 
)

References UVPt(), and uvPtStruct::v.

Field Documentation

TopoDS_Face FaceQuadStruct::face

Referenced by isEqual().

int FaceQuadStruct::iSize
int FaceQuadStruct::jSize
std::string FaceQuadStruct::name
Bnd_B2d FaceQuadStruct::uv_box

Referenced by findCell().

std::vector< UVPtStruct> FaceQuadStruct::uv_grid

Referenced by shift(), and UVPt().