Class corresponding to a meshed composite face of a box. More...
Public Types | |
typedef SMDS_SetIterator < const _QuadFaceGrid &, TChildren::const_iterator, SMDS::SimpleAccessor< const _QuadFaceGrid &, TChildren::const_iterator > , SMDS::PassAllValueFilter < _QuadFaceGrid > > | TChildIterator |
Public Member Functions | |
_QuadFaceGrid () | |
constructor of non-initialized _QuadFaceGrid More... | |
bool | Init (const TopoDS_Face &f, SMESH_Mesh &mesh) |
< initialization More... | |
bool | AddContinuousFace (const _QuadFaceGrid &f, const TopTools_MapOfShape &internalEdges) |
Try to set the side as bottom hirizontal side. More... | |
bool | SetBottomSide (const _FaceSide &side, int *sideIndex=0) |
Return face adjacent to zero-based i-th side of this face. More... | |
_QuadFaceGrid * | FindAdjacentForSide (int i, list< _QuadFaceGrid > &faces, EBoxSides id) const |
Reverse edges in order to have the bottom edge going along axes of the unit box. More... | |
void | ReverseEdges () |
Reverse edges in order to have them oriented along axes of the unit box. More... | |
bool | IsComplex () const |
int | NbChildren () const |
TChildIterator | GetChildren () const |
bool | LoadGrid (SMESH_Mesh &mesh) |
< Load nodes of a mesh More... | |
void | ComputeIJK (int i1, int i2, double v3) |
Return number of segments on the hirizontal sides. More... | |
int | GetNbHoriSegments (SMESH_Mesh &mesh, bool withBrothers=false) const |
Return number of segments on the vertical sides. More... | |
int | GetNbVertSegments (SMESH_Mesh &mesh, bool withBrothers=false) const |
Return edge on the hirizontal bottom sides. More... | |
int | GetHoriEdges (vector< TopoDS_Edge > &edges) const |
Return a node by its position. More... | |
const SMDS_MeshNode * | GetNode (int iHori, int iVert) const |
Return node coordinates by its position. More... | |
gp_XYZ | GetXYZ (int iHori, int iVert) const |
Return normalized parameters of nodes within the unitary cube. More... | |
gp_XYZ & | GetIJK (int iCol, int iRow) |
const _FaceSide & | GetSide (int i) const |
< Return i-th face side (0<i<4) More... | |
TopoDS_Face | GetFace () const |
Return normal to the face at vertex v. More... | |
bool | GetNormal (const TopoDS_Vertex &v, gp_Vec &n) const |
Return normal to the face at vertex v. More... | |
SMESH_ComputeErrorPtr | GetError () const |
void | SetID (EBoxSides id) |
void | DumpGrid () const |
Dumps coordinates of grid nodes. More... | |
void | DumpVertices () const |
Dump vertices. More... | |
Private Types | |
typedef list< _QuadFaceGrid > | TChildren |
Private Member Functions | |
bool | error (const std::string &text, int code=COMPERR_ALGO_FAILED) |
bool | error (const SMESH_ComputeErrorPtr &err) |
bool | loadCompositeGrid (SMESH_Mesh &mesh) |
Fill myGrid with nodes of patches. More... | |
bool | fillGrid (SMESH_Mesh &theMesh, vector< const SMDS_MeshNode * > &theGrid, const _Indexer &theIndexer, int theX, int theY) |
Store nodes of a simple face into grid starting from (x,y) position. More... | |
bool | locateChildren () |
Find out mutual location of children: find their right and up brothers. More... | |
void | setBrothers (set< _QuadFaceGrid * > ¬LocatedBrothers) |
Find right an upper brothers among notLocatedBrothers. More... | |
Private Attributes | |
TopoDS_Face | myFace |
_FaceSide | mySides |
bool | myReverse |
TChildren | myChildren |
_QuadFaceGrid * | myLeftBottomChild |
_QuadFaceGrid * | myRightBrother |
_QuadFaceGrid * | myUpBrother |
_Indexer | myIndexer |
vector< const SMDS_MeshNode * > | myGrid |
vector< gp_XYZ > | myIJK |
SMESH_ComputeErrorPtr | myError |
EBoxSides | myID |
Class corresponding to a meshed composite face of a box.
Provides simplified access to it's sub-mesh data.
typedef SMDS_SetIterator< const _QuadFaceGrid&, TChildren::const_iterator, SMDS::SimpleAccessor<const _QuadFaceGrid&,TChildren::const_iterator>, SMDS::PassAllValueFilter<_QuadFaceGrid> > _QuadFaceGrid::TChildIterator |
|
private |
_QuadFaceGrid::_QuadFaceGrid | ( | ) |
constructor of non-initialized _QuadFaceGrid
bool _QuadFaceGrid::AddContinuousFace | ( | const _QuadFaceGrid & | f, |
const TopTools_MapOfShape & | internalEdges | ||
) |
Try to set the side as bottom hirizontal side.
Try to unite self with other ordinary face.
References _FaceSide::AppendSide(), _FaceSide::Contain(), DUMP_VERT, _FaceSide::Edge(), _FaceSide::FirstVertex(), GetChildren(), _FaceSide::GetSide(), GetSide(), IsComplex(), _FaceSide::LastVertex(), SMDS_SetIterator< VALUE, VALUE_SET_ITERATOR, ACCESOR, VALUE_FILTER >::more(), myChildren, myFace, myLeftBottomChild, mySides, and SMESH_MesherHelper::WrapIndex().
Referenced by StdMeshers_CompositeHexa_3D::findBoxFaces().
Return number of segments on the hirizontal sides.
Fill myIJK with normalized parameters of nodes in myGrid.
[in] | i1 | - coordinate index along rows of myGrid |
[in] | i2 | - coordinate index along columns of myGrid |
[in] | v3 | - value of the constant parameter |
References GetIJK(), GetXYZ(), myIJK, and myIndexer.
Referenced by StdMeshers_CompositeHexa_3D::Compute().
void _QuadFaceGrid::DumpGrid | ( | ) | const |
Dumps coordinates of grid nodes.
References myChildren, myGrid, myID, myIndexer, SetID(), SMDS_MeshNode::X(), SMDS_MeshNode::Y(), and SMDS_MeshNode::Z().
Referenced by loadCompositeGrid(), and LoadGrid().
void _QuadFaceGrid::DumpVertices | ( | ) | const |
Dump vertices.
References B_BACK, B_BOTTOM, _FaceSide::Dump(), _FaceSide::GetSide(), myChildren, myID, mySides, and SetID().
Referenced by ReverseEdges().
|
private |
References SMESH_ComputeError::New().
Referenced by fillGrid(), loadCompositeGrid(), LoadGrid(), and locateChildren().
|
private |
|
private |
Store nodes of a simple face into grid starting from (x,y) position.
References error(), fillGrid(), GetError(), LoadGrid(), myGrid, myIndexer, myReverse, myRightBrother, and myUpBrother.
Referenced by fillGrid(), and loadCompositeGrid().
_QuadFaceGrid * _QuadFaceGrid::FindAdjacentForSide | ( | int | i, |
list< _QuadFaceGrid > & | faces, | ||
EBoxSides | id | ||
) | const |
Reverse edges in order to have the bottom edge going along axes of the unit box.
Return face adjacent to i-th side of this face, (0<i<4)
References GetSide(), SetBottomSide(), and SetID().
Referenced by StdMeshers_CompositeHexa_3D::Evaluate(), and StdMeshers_CompositeHexa_3D::findBoxFaces().
TChildIterator _QuadFaceGrid::GetChildren | ( | ) | const |
SMESH_ComputeErrorPtr _QuadFaceGrid::GetError | ( | ) | const |
Referenced by StdMeshers_CompositeHexa_3D::Compute(), fillGrid(), and loadCompositeGrid().
TopoDS_Face _QuadFaceGrid::GetFace | ( | ) | const |
Return normal to the face at vertex v.
Referenced by StdMeshers_CompositeHexa_3D::Evaluate().
int _QuadFaceGrid::GetHoriEdges | ( | vector< TopoDS_Edge > & | edges | ) | const |
Return a node by its position.
Return edge on the hirizontal bottom sides.
References _FaceSide::Edge(), GetHoriEdges(), _FaceSide::GetSide(), myLeftBottomChild, myRightBrother, mySides, and Q_BOTTOM.
Referenced by StdMeshers_CompositeHexa_3D::Evaluate(), and GetHoriEdges().
Referenced by StdMeshers_CompositeHexa_3D::Compute(), and ComputeIJK().
int _QuadFaceGrid::GetNbHoriSegments | ( | SMESH_Mesh & | mesh, |
bool | withBrothers = false |
||
) | const |
Return number of segments on the vertical sides.
Return number of segments on the hirizontal sides.
References GetNbHoriSegments(), _FaceSide::GetNbSegments(), _FaceSide::GetSide(), myLeftBottomChild, myRightBrother, mySides, and Q_BOTTOM.
Referenced by StdMeshers_CompositeHexa_3D::Compute(), GetNbHoriSegments(), and loadCompositeGrid().
int _QuadFaceGrid::GetNbVertSegments | ( | SMESH_Mesh & | mesh, |
bool | withBrothers = false |
||
) | const |
Return edge on the hirizontal bottom sides.
Return number of segments on the vertical sides.
References _FaceSide::GetNbSegments(), GetNbVertSegments(), _FaceSide::GetSide(), myLeftBottomChild, mySides, myUpBrother, and Q_LEFT.
Referenced by StdMeshers_CompositeHexa_3D::Compute(), GetNbVertSegments(), and loadCompositeGrid().
const SMDS_MeshNode * _QuadFaceGrid::GetNode | ( | int | iHori, |
int | iVert | ||
) | const |
Return node coordinates by its position.
Return a node by its position.
References myGrid, and myIndexer.
Referenced by StdMeshers_CompositeHexa_3D::Compute().
bool _QuadFaceGrid::GetNormal | ( | const TopoDS_Vertex & | v, |
gp_Vec & | n | ||
) | const |
Return normal to the face at vertex v.
References _FaceSide::Contain(), myChildren, myFace, and mySides.
< Return i-th face side (0<i<4)
Return i-th side.
Return it's face, NULL if it is composite
References _FaceSide::GetSide(), GetSide(), locateChildren(), me, myChildren, myLeftBottomChild, myRightBrother, mySides, myUpBrother, Q_BOTTOM, Q_LEFT, Q_RIGHT, and Q_TOP.
Referenced by AddContinuousFace(), FindAdjacentForSide(), StdMeshers_CompositeHexa_3D::findBoxFaces(), GetSide(), locateChildren(), and setBrothers().
Return normalized parameters of nodes within the unitary cube.
Return node coordinates by its position.
References myGrid, and myIndexer.
Referenced by StdMeshers_CompositeHexa_3D::Compute(), and ComputeIJK().
bool _QuadFaceGrid::Init | ( | const TopoDS_Face & | f, |
SMESH_Mesh & | mesh | ||
) |
< initialization
Initialization.
try to unite self with other face
References _FaceSide::AppendSide(), SMESH_Block::GetOrderedEdges(), _FaceSide::GetSide(), SMESH_Algo::IsContinuous(), myChildren, myFace, myGrid, myLeftBottomChild, myReverse, myRightBrother, mySides, myUpBrother, Q_BOTTOM, Q_LEFT, Q_RIGHT, Q_TOP, _FaceSide::SetID(), and _FaceSide::size().
Referenced by StdMeshers_CompositeHexa_3D::findBoxFaces().
bool _QuadFaceGrid::IsComplex | ( | ) | const |
|
private |
Fill myGrid with nodes of patches.
References DumpGrid(), error(), fillGrid(), GetError(), GetNbHoriSegments(), GetNbVertSegments(), locateChildren(), myGrid, myIndexer, myLeftBottomChild, and myReverse.
Referenced by LoadGrid().
bool _QuadFaceGrid::LoadGrid | ( | SMESH_Mesh & | mesh | ) |
< Load nodes of a mesh
Load nodes of a mesh.
Computes normalized parameters of nodes of myGrid
References SMESHDS_SubMesh::Contains(), DumpGrid(), ERR_LI, error(), SMESH_MeshAlgos::FindFaceInSet(), SMESHDS_SubMesh::GetElements(), _FaceSide::GetNbSegments(), SMDS_MeshElement::GetNode(), SMDS_MeshElement::GetNodeIndex(), _FaceSide::GetSide(), loadCompositeGrid(), myChildren, myFace, myGrid, myID, myIndexer, myReverse, mySides, SMDS_MeshElement::NbNodes(), Q_BOTTOM, Q_LEFT, and _FaceSide::StoreNodes().
Referenced by StdMeshers_CompositeHexa_3D::Compute(), and fillGrid().
|
private |
Find out mutual location of children: find their right and up brothers.
References DUMP_VERT, ERR_LI, error(), _FaceSide::FirstVertex(), GetSide(), myChildren, myLeftBottomChild, Q_BOTTOM, and setBrothers().
Referenced by GetSide(), and loadCompositeGrid().
int _QuadFaceGrid::NbChildren | ( | ) | const |
Referenced by StdMeshers_CompositeHexa_3D::Evaluate().
void _QuadFaceGrid::ReverseEdges | ( | ) |
Reverse edges in order to have them oriented along axes of the unit box.
References DumpVertices(), myChildren, and myReverse.
Referenced by StdMeshers_CompositeHexa_3D::findBoxFaces().
Return face adjacent to zero-based i-th side of this face.
Try to set the side as bottom hirizontal side.
References _FaceSide::Contain(), myChildren, myLeftBottomChild, myRightBrother, mySides, myUpBrother, and _FaceSide::SetBottomSide().
Referenced by FindAdjacentForSide(), and StdMeshers_CompositeHexa_3D::findBoxFaces().
|
private |
Find right an upper brothers among notLocatedBrothers.
References DUMP_VERT, _FaceSide::FirstVertex(), GetSide(), _FaceSide::LastVertex(), myRightBrother, myUpBrother, Q_BOTTOM, Q_LEFT, and setBrothers().
Referenced by locateChildren(), and setBrothers().
void _QuadFaceGrid::SetID | ( | EBoxSides | id | ) |
Referenced by DumpGrid(), DumpVertices(), FindAdjacentForSide(), and StdMeshers_CompositeHexa_3D::findBoxFaces().
|
private |
Referenced by AddContinuousFace(), DumpGrid(), DumpVertices(), GetNormal(), GetSide(), Init(), LoadGrid(), locateChildren(), ReverseEdges(), and SetBottomSide().
|
private |
|
private |
Referenced by AddContinuousFace(), GetNormal(), Init(), and LoadGrid().
|
private |
Referenced by DumpGrid(), fillGrid(), GetNode(), GetXYZ(), Init(), loadCompositeGrid(), and LoadGrid().
|
private |
Referenced by DumpGrid(), DumpVertices(), and LoadGrid().
|
private |
Referenced by ComputeIJK().
|
private |
Referenced by ComputeIJK(), DumpGrid(), fillGrid(), GetNode(), GetXYZ(), loadCompositeGrid(), and LoadGrid().
|
private |
Referenced by AddContinuousFace(), GetHoriEdges(), GetNbHoriSegments(), GetNbVertSegments(), GetSide(), Init(), loadCompositeGrid(), locateChildren(), and SetBottomSide().
|
private |
Referenced by fillGrid(), Init(), loadCompositeGrid(), LoadGrid(), and ReverseEdges().
|
private |
Referenced by fillGrid(), GetHoriEdges(), GetNbHoriSegments(), GetSide(), Init(), SetBottomSide(), and setBrothers().
|
private |
Referenced by AddContinuousFace(), DumpVertices(), GetHoriEdges(), GetNbHoriSegments(), GetNbVertSegments(), GetNormal(), GetSide(), Init(), LoadGrid(), and SetBottomSide().
|
private |
Referenced by fillGrid(), GetNbVertSegments(), GetSide(), Init(), SetBottomSide(), and setBrothers().