Tool building internal nodes in a prism. More...
#include <StdMeshers_Prism_3D.hxx>
Data Structures | |
struct | TopBotTriangles |
Public Member Functions | |
bool | ComputeNodesByTrsf (const double tol, const bool allowHighBndError) |
Create internal nodes of the prism by computing an affine transformation from layer to layer. More... | |
bool | CheckSameZ () |
Check if all nodes of each layers have same logical Z. More... | |
bool | ComputeNodesOnStraightSameZ () |
Create internal nodes of the prism all located on straight lines with the same distribution along the lines. More... | |
bool | ComputeNodesOnStraight () |
Create internal nodes of the prism all located on straight lines with different distributions along the lines. More... | |
Data Fields | |
SMESH_MesherHelper * | myHelper |
TopoDS_Face | myBotFace |
TopoDS_Face | myTopFace |
std::vector< TNodeColumn * > | myBndColumns |
std::vector< TNodeColumn * > | myIntColumns |
Private Types | |
typedef std::vector< double > | TZColumn |
Private Member Functions | |
gp_XYZ | bndPoint (int iP, int z) const |
gp_XYZ | intPoint (int iP, int z) const |
bool | projectIntPoints (const std::vector< gp_XYZ > &fromBndPoints, const std::vector< gp_XYZ > &toBndPoints, const std::vector< gp_XYZ > &fromIntPoints, std::vector< gp_XYZ > &toIntPoints, const double r, StdMeshers_ProjectionUtils::TrsfFinder3D &trsf, std::vector< gp_XYZ > *bndError) |
Projects internal nodes using transformation found by boundary nodes. More... | |
void | prepareTopBotDelaunay () |
Initialize *Delaunay members. More... | |
bool | findDelaunayTriangles () |
For each internal node column, find Delaunay triangles including it and Barycentric Coordinates within the triangles. More... | |
Static Private Member Functions | |
static void | fillZColumn (TZColumn &zColumn, TNodeColumn &nodes) |
Compute Z of nodes of a straight column. More... | |
Private Attributes | |
std::vector< TZColumn > | myZColumns |
StdMeshers_ProjectionUtils::DelaunayPtr | myTopDelaunay |
StdMeshers_ProjectionUtils::DelaunayPtr | myBotDelaunay |
TColStd_DataMapOfIntegerInteger | myNodeID2ColID |
std::vector< TopBotTriangles > | myTopBotTriangles |
Tool building internal nodes in a prism.
|
private |
|
private |
References myBndColumns.
bool StdMeshers_Sweeper::CheckSameZ | ( | ) |
Check if all nodes of each layers have same logical Z.
Referenced by StdMeshers_Prism_3D::compute().
bool StdMeshers_Sweeper::ComputeNodesByTrsf | ( | const double | tol, |
const bool | allowHighBndError | ||
) |
Create internal nodes of the prism by computing an affine transformation from layer to layer.
References SMESH_MesherHelper::AddNode(), and StdMeshers_PrismAsBlock::myHelper.
Referenced by StdMeshers_Prism_3D::compute().
bool StdMeshers_Sweeper::ComputeNodesOnStraight | ( | ) |
Create internal nodes of the prism all located on straight lines with different distributions along the lines.
References SMESH_MesherHelper::AddNode(), SMDS_MeshElement::GetID(), SMESH_MesherHelper::GetNodeUV(), and StdMeshers_PrismAsBlock::myHelper.
Referenced by StdMeshers_Prism_3D::compute().
bool StdMeshers_Sweeper::ComputeNodesOnStraightSameZ | ( | ) |
Create internal nodes of the prism all located on straight lines with the same distribution along the lines.
References SMESH_MesherHelper::AddNode(), and StdMeshers_PrismAsBlock::myHelper.
Referenced by StdMeshers_Prism_3D::compute().
|
staticprivate |
Compute Z of nodes of a straight column.
|
private |
For each internal node column, find Delaunay triangles including it and Barycentric Coordinates within the triangles.
Fill in myTopBotTriangles
References SMDS_MeshElement::GetID(), SMESH_MesherHelper::GetNodeUV(), StdMeshers_Sweeper::TopBotTriangles::myBotBC, StdMeshers_Sweeper::TopBotTriangles::myBotTriaNodes, StdMeshers_PrismAsBlock::myHelper, StdMeshers_Sweeper::TopBotTriangles::myTopBC, StdMeshers_Sweeper::TopBotTriangles::myTopTriaNodes, and StdMeshers_Sweeper::TopBotTriangles::SetTopByBottom().
|
private |
References myIntColumns.
|
private |
Initialize *Delaunay members.
References SMESHDS_SubMesh::GetElements(), SMDS_MeshElement::GetID(), SMESH_MesherHelper::GetIsQuadratic(), SMESH_MesherHelper::GetMesh(), SMESH_MesherHelper::GetMeshDS(), SMDS_MeshElement::GetNode(), SMESH_MesherHelper::HasDegeneratedEdges(), SMESH_MesherHelper::HasSeam(), SMESHDS_Mesh::MeshElements(), StdMeshers_PrismAsBlock::myHelper, SMDS_MeshElement::NbCornerNodes(), SMDS_MeshElement::NbNodes(), StdMeshers_FaceSide::New(), SMDS_MeshElement::setIsMarked(), and SMESH_MesherHelper::SetSubShape().
|
private |
Projects internal nodes using transformation found by boundary nodes.
References StdMeshers_ProjectionUtils::TrsfFinder3D::IsIdentity(), StdMeshers_Sweeper::TopBotTriangles::myBotBC, StdMeshers_Sweeper::TopBotTriangles::myBotTriaNodes, StdMeshers_Sweeper::TopBotTriangles::myTopBC, StdMeshers_Sweeper::TopBotTriangles::myTopTriaNodes, StdMeshers_ProjectionUtils::TrsfFinder3D::Solve(), and StdMeshers_ProjectionUtils::TrsfFinder3D::Transform().
std::vector< TNodeColumn* > StdMeshers_Sweeper::myBndColumns |
Referenced by bndPoint(), and StdMeshers_Prism_3D::compute().
|
private |
TopoDS_Face StdMeshers_Sweeper::myBotFace |
Referenced by StdMeshers_Prism_3D::compute().
SMESH_MesherHelper* StdMeshers_Sweeper::myHelper |
Referenced by StdMeshers_Prism_3D::compute().
std::vector< TNodeColumn* > StdMeshers_Sweeper::myIntColumns |
Referenced by StdMeshers_Prism_3D::compute(), and intPoint().
|
private |
|
private |
|
private |
TopoDS_Face StdMeshers_Sweeper::myTopFace |
Referenced by StdMeshers_Prism_3D::compute().
|
private |