#include <StdMeshers_Cartesian_3D_Grid.hxx>
Public Member Functions | |
| size_t | CellIndex (size_t i, size_t j, size_t k) const |
| size_t | NodeIndex (size_t i, size_t j, size_t k) const |
| size_t | NodeIndex (const TIJK &ijk) const |
| size_t | NodeIndexDX () const |
| size_t | NodeIndexDY () const |
| size_t | NodeIndexDZ () const |
| LineIndexer | GetLineIndexer (size_t iDir) const |
| size_t | GetLineDir (const GridLine *line, size_t &index) const |
| E_IntersectPoint * | Add (const E_IntersectPoint &ip) |
| void | Remove (E_IntersectPoint *eip) |
| TGeomID | ShapeID (const TopoDS_Shape &s) const |
| const TopoDS_Shape & | Shape (TGeomID id) const |
| TopAbs_ShapeEnum | ShapeType (TGeomID id) const |
| void | InitGeometry (const TopoDS_Shape &theShape) |
| void | InitClassifier (const TopoDS_Shape &mainShape, TopAbs_ShapeEnum shapeType, SMESH::Controls::ElementsOnShape &classifier) |
| void | GetEdgesToImplement (std::map< TGeomID, std::vector< TGeomID > > &edge2faceMap, const TopoDS_Shape &shape, const std::vector< TopoDS_Shape > &faces) |
| void | SetSolidFather (const TopoDS_Shape &s, const TopoDS_Shape &theShapeToMesh) |
| bool | IsShared (TGeomID faceID) const |
| bool | IsAnyShared (const std::vector< TGeomID > &faceIDs) const |
| bool | IsInternal (TGeomID faceID) const |
| bool | IsSolid (TGeomID shapeID) const |
| bool | IsStrangeEdge (TGeomID id) const |
| TGeomID | PseudoIntExtFaceID () const |
| Solid * | GetSolid (TGeomID solidID=0) |
| Solid * | GetOneOfSolids (TGeomID solidID) |
| const std::vector< TGeomID > & | GetSolidIDs (TGeomID subShapeID) const |
| bool | IsCorrectTransition (TGeomID faceID, const Solid *solid) |
| bool | IsBoundaryFace (TGeomID face) const |
| void | SetOnShape (const SMDS_MeshNode *n, const F_IntersectPoint &ip, TopoDS_Vertex *vertex=nullptr, bool unset=false) |
| void | UpdateFacesOfVertex (const B_IntersectPoint &ip, const TopoDS_Vertex &vertex) |
| bool | IsToCheckNodePos () const |
| bool | IsToRemoveExcessEntities () const |
| void | SetCoordinates (const std::vector< double > &xCoords, const std::vector< double > &yCoords, const std::vector< double > &zCoords, const double *axesDirs, const Bnd_Box &bndBox) |
| void | ComputeUVW (const gp_XYZ &p, double uvw[3]) |
| void | ComputeNodes (SMESH_MesherHelper &helper) |
| bool | GridInitAndInterserctWithShape (const TopoDS_Shape &theShape, std::map< TGeomID, std::vector< TGeomID > > &edge2faceIDsMap, const StdMeshers_CartesianParameters3D *hyp, const int numOfThreads, bool computeCanceled) |
Data Fields | |
| std::vector< double > | _coords [3] |
| gp_XYZ | _axes [3] |
| std::vector< GridLine > | _lines [3] |
| double | _tol |
| double | _minCellSize |
| gp_XYZ | _origin |
| gp_Mat | _invB |
| int | _nodeShift [8] |
| std::vector< const SMDS_MeshNode * > | _nodes |
| std::vector< const SMDS_MeshNode * > | _allBorderNodes |
| std::vector< const F_IntersectPoint * > | _gridIntP |
| ObjectPool< E_IntersectPoint > | _edgeIntPool |
| ObjectPool< F_IntersectPoint > | _extIntPool |
| Geometry | _geometry |
| bool | _toAddEdges |
| bool | _toCreateFaces |
| bool | _toConsiderInternalFaces |
| bool | _toUseThresholdForInternalFaces |
| double | _sizeThreshold |
| bool | _toUseQuanta |
| double | _quanta |
| SMESH_MesherHelper * | _helper |
| E_IntersectPoint * StdMeshers::Cartesian3D::Grid::Add | ( | const E_IntersectPoint & | ip | ) |
References ObjectPool< X >::getNew().
Referenced by StdMeshers::Cartesian3D::Hexahedron::addEdges().
| void Grid::ComputeNodes | ( | SMESH_MesherHelper & | helper | ) |
References _allBorderNodes, _axes, _coords, StdMeshers::Cartesian3D::LineIndexer::_curInd, _geometry, _gridIntP, StdMeshers::Cartesian3D::GridLine::_intPoints, StdMeshers::Cartesian3D::LineIndexer::_iVar1, StdMeshers::Cartesian3D::LineIndexer::_iVar2, StdMeshers::Cartesian3D::GridLine::_line, _lines, StdMeshers::Cartesian3D::LineIndexer::_nameConst, _nodes, _tol, _toUseQuanta, SMESHDS_Mesh::AddNode(), COMPERR_ALGO_FAILED, GetLineIndexer(), SMESH_MesherHelper::GetMeshDS(), StdMeshers::Cartesian3D::GridLine::GetSolidIDBefore(), StdMeshers::Cartesian3D::LineIndexer::I(), StdMeshers::Cartesian3D::LineIndexer::J(), StdMeshers::Cartesian3D::LineIndexer::K(), StdMeshers::Cartesian3D::LineIndexer::LineIndex(), StdMeshers::Cartesian3D::LineIndexer::More(), NodeIndex(), StdMeshers::Cartesian3D::GridLine::RemoveExcessIntPoints(), StdMeshers::Cartesian3D::LineIndexer::SetIndexOnLine(), SMESHDS_Mesh::SetNodeInVolume(), SetOnShape(), StdMeshers::Cartesian3D::theUndefID, StdMeshers::Cartesian3D::Trans_APEX, StdMeshers::Cartesian3D::Trans_IN, StdMeshers::Cartesian3D::Trans_OUT, StdMeshers::Cartesian3D::Trans_TANGENT, and UpdateFacesOfVertex().
Referenced by GridInitAndInterserctWithShape().
| void Grid::ComputeUVW | ( | const gp_XYZ & | p, |
| double | uvw[3] | ||
| ) |
| void Grid::GetEdgesToImplement | ( | std::map< TGeomID, std::vector< TGeomID > > & | edge2faceMap, |
| const TopoDS_Shape & | shape, | ||
| const std::vector< TopoDS_Shape > & | faces | ||
| ) |
References _geometry, _helper, StdMeshers::Cartesian3D::Geometry::_strangeEdges, _toAddEdges, Edge, SMESH_MesherHelper::GetAncestors(), SMESH_MesherHelper::GetMesh(), SMESH::SMESH_Mesh::GetShapeToMesh(), SMESH_Algo::isDegenerated(), SMESH_MesherHelper::IsRealSeam(), SMESH_MesherHelper::IthVertex(), SMESH_MesherHelper::SetSubShape(), and ShapeID().
Referenced by GridInitAndInterserctWithShape().
| LineIndexer Grid::GetLineIndexer | ( | size_t | iDir | ) | const |
References _coords.
Referenced by ComputeNodes(), StdMeshers::Cartesian3D::Hexahedron::isInHole(), StdMeshers::Cartesian3D::Hexahedron::MakeElements(), and SetCoordinates().
References _geometry, StdMeshers::Cartesian3D::Geometry::_soleSolid, StdMeshers::Cartesian3D::Geometry::_solidByID, and StdMeshers::Cartesian3D::Geometry::IsOneSolid().
Referenced by StdMeshers::Cartesian3D::Hexahedron::computeElements(), StdMeshers::Cartesian3D::Hexahedron::cutByExtendedInternal(), StdMeshers::Cartesian3D::Hexahedron::getSolids(), StdMeshers::Cartesian3D::Hexahedron::init(), and InitGeometry().
| bool Grid::GridInitAndInterserctWithShape | ( | const TopoDS_Shape & | theShape, |
| std::map< TGeomID, std::vector< TGeomID > > & | edge2faceIDsMap, | ||
| const StdMeshers_CartesianParameters3D * | hyp, | ||
| const int | numOfThreads, | ||
| bool | computeCanceled | ||
| ) |
References _helper, _toConsiderInternalFaces, ComputeNodes(), Face, GetEdgesToImplement(), StdMeshers::Cartesian3D::Tools::GetExactBndBox(), InitGeometry(), StdMeshers::Cartesian3D::parallel_for(), SetCoordinates(), and ShapeID().
Referenced by StdMeshers_Cartesian_3D::Compute(), and GridInitAndIntersectWithShape().
| void Grid::InitClassifier | ( | const TopoDS_Shape & | mainShape, |
| TopAbs_ShapeEnum | shapeType, | ||
| SMESH::Controls::ElementsOnShape & | classifier | ||
| ) |
References _helper, SMESH_MesherHelper::GetMeshDS(), SMESH::Controls::ElementsOnShape::SetMesh(), SMESH::Controls::ElementsOnShape::SetShape(), and SMDSAbs_Node.
Referenced by InitGeometry().
| void Grid::InitGeometry | ( | const TopoDS_Shape & | theShape | ) |
References StdMeshers::Cartesian3D::Geometry::_boundaryFaces, StdMeshers::Cartesian3D::Geometry::_edgeClassifier, StdMeshers::Cartesian3D::Geometry::_extIntFaceID, _geometry, _helper, StdMeshers::Cartesian3D::Geometry::_mainShape, StdMeshers::Cartesian3D::Geometry::_shape2NbNodes, StdMeshers::Cartesian3D::Geometry::_soleSolid, StdMeshers::Cartesian3D::Geometry::_solidByID, _toConsiderInternalFaces, _toCreateFaces, StdMeshers::Cartesian3D::Geometry::_vertexClassifier, SMESH_MesherHelper::Count(), Edge, Face, SMESH_MesherHelper::GetAngle(), StdMeshers_FaceSide::GetFaceWires(), SMESH_MesherHelper::GetMesh(), SMESH::SMESH_Mesh::GetShapeToMesh(), GetSolid(), GetSolidIDs(), StdMeshers::Cartesian3D::Solid::ID(), StdMeshers::Cartesian3D::OneOfSolids::Init(), InitClassifier(), SMESH_Algo::isDegenerated(), StdMeshers::Cartesian3D::Geometry::IsOneSolid(), SMESH_MesherHelper::IthVertex(), SMESH_MesherHelper::NbAncestors(), SMESH::SMESH_Mesh::NbNodes(), StdMeshers::Cartesian3D::Solid::SetConcave(), StdMeshers::Cartesian3D::Solid::SetHasInternalFaces(), StdMeshers::Cartesian3D::Solid::SetID(), SetSolidFather(), and ShapeID().
Referenced by GridInitAndInterserctWithShape().
References IsShared().
Referenced by StdMeshers::Cartesian3D::Hexahedron::checkPolyhedronSize().
References StdMeshers::Cartesian3D::Geometry::_boundaryFaces.
Referenced by StdMeshers::Cartesian3D::Hexahedron::addFaces().
Referenced by StdMeshers::Cartesian3D::Hexahedron::addEdges(), StdMeshers::Cartesian3D::Hexahedron::addFaces(), StdMeshers::Cartesian3D::Hexahedron::getBoundaryElems(), StdMeshers::Cartesian3D::Hexahedron::init(), StdMeshers::Cartesian3D::Hexahedron::isCutByInternalFace(), StdMeshers::Cartesian3D::Hexahedron::isOutPoint(), StdMeshers::Cartesian3D::Hexahedron::isSplittedLink(), and StdMeshers::Cartesian3D::Hexahedron::mostDistantInternalPnt().
References _geometry, StdMeshers::Cartesian3D::Geometry::_solidIDsByShapeID, and StdMeshers::Cartesian3D::Geometry::IsOneSolid().
Referenced by StdMeshers::Cartesian3D::Hexahedron::addFaces(), StdMeshers::Cartesian3D::Hexahedron::getBoundaryElems(), IsAnyShared(), and StdMeshers::Cartesian3D::Hexahedron::isInHole().
References StdMeshers::Cartesian3D::Geometry::_soleSolid, StdMeshers::Cartesian3D::Geometry::_solidByID, StdMeshers::Cartesian3D::Solid::ID(), and StdMeshers::Cartesian3D::Geometry::IsOneSolid().
Referenced by StdMeshers::Cartesian3D::Hexahedron::addFaces(), and StdMeshers::Cartesian3D::Hexahedron::getBoundaryElems().
References StdMeshers::Cartesian3D::Geometry::_strangeEdges.
Referenced by StdMeshers::Cartesian3D::Hexahedron::hasStrangeEdge().
| bool StdMeshers::Cartesian3D::Grid::IsToCheckNodePos | ( | ) | const |
| bool StdMeshers::Cartesian3D::Grid::IsToRemoveExcessEntities | ( | ) | const |
| size_t StdMeshers::Cartesian3D::Grid::NodeIndexDX | ( | ) | const |
Referenced by StdMeshers::Cartesian3D::Hexahedron::Hexahedron().
| size_t StdMeshers::Cartesian3D::Grid::NodeIndexDY | ( | ) | const |
Referenced by StdMeshers::Cartesian3D::Hexahedron::Hexahedron().
| size_t StdMeshers::Cartesian3D::Grid::NodeIndexDZ | ( | ) | const |
Referenced by StdMeshers::Cartesian3D::Hexahedron::Hexahedron().
| TGeomID StdMeshers::Cartesian3D::Grid::PseudoIntExtFaceID | ( | ) | const |
References StdMeshers::Cartesian3D::Geometry::_extIntFaceID.
Referenced by StdMeshers::Cartesian3D::Hexahedron::addEdges(), StdMeshers::Cartesian3D::Hexahedron::compute(), StdMeshers::Cartesian3D::Hexahedron::cutByExtendedInternal(), and StdMeshers::Cartesian3D::Hexahedron::mostDistantInternalPnt().
| void StdMeshers::Cartesian3D::Grid::Remove | ( | E_IntersectPoint * | eip | ) |
References ObjectPool< X >::destroy().
Referenced by StdMeshers::Cartesian3D::Hexahedron::addEdges().
| void Grid::SetCoordinates | ( | const std::vector< double > & | xCoords, |
| const std::vector< double > & | yCoords, | ||
| const std::vector< double > & | zCoords, | ||
| const double * | axesDirs, | ||
| const Bnd_Box & | bndBox | ||
| ) |
References _axes, _coords, _invB, StdMeshers::Cartesian3D::GridLine::_length, StdMeshers::Cartesian3D::GridLine::_line, _lines, _minCellSize, _origin, _tol, begin(), COMPERR_ALGO_FAILED, GetLineIndexer(), StdMeshers::Cartesian3D::LineIndexer::I(), StdMeshers::Cartesian3D::LineIndexer::J(), StdMeshers::Cartesian3D::LineIndexer::K(), StdMeshers::Cartesian3D::LineIndexer::LineIndex(), StdMeshers::Cartesian3D::LineIndexer::More(), and StdMeshers::Cartesian3D::LineIndexer::NbLines().
Referenced by GridInitAndInterserctWithShape().
| void Grid::SetOnShape | ( | const SMDS_MeshNode * | n, |
| const F_IntersectPoint & | ip, | ||
| TopoDS_Vertex * | vertex = nullptr, |
||
| bool | unset = false |
||
| ) |
References StdMeshers::Cartesian3D::Geometry::_edgeClassifier, StdMeshers::Cartesian3D::B_IntersectPoint::_faceIDs, _geometry, _helper, StdMeshers::Cartesian3D::Geometry::_soleSolid, StdMeshers::Cartesian3D::F_IntersectPoint::_u, StdMeshers::Cartesian3D::F_IntersectPoint::_v, StdMeshers::Cartesian3D::Geometry::_vertexClassifier, Edge, SMESH_MesherHelper::GetMeshDS(), StdMeshers::Cartesian3D::Solid::ID(), StdMeshers::Cartesian3D::Geometry::IsOneSolid(), SMESH::Controls::ElementsOnShape::IsSatisfy(), SMESHDS_Mesh::SetNodeInVolume(), SMESHDS_Mesh::SetNodeOnEdge(), SMESHDS_Mesh::SetNodeOnFace(), SMESHDS_Mesh::SetNodeOnVertex(), and SMESHDS_Mesh::UnSetNodeOnShape().
Referenced by StdMeshers::Cartesian3D::Hexahedron::addVolumes(), and ComputeNodes().
| void Grid::SetSolidFather | ( | const TopoDS_Shape & | s, |
| const TopoDS_Shape & | theShapeToMesh | ||
| ) |
| const TopoDS_Shape & Grid::Shape | ( | TGeomID | id | ) | const |
References _helper, SMESH_MesherHelper::GetMeshDS(), and SMESHDS_Mesh::IndexToShape().
Referenced by StdMeshers::Cartesian3D::Hexahedron::addEdges(), StdMeshers::Cartesian3D::Hexahedron::addFaces(), StdMeshers::Cartesian3D::Hexahedron::addSegments(), StdMeshers::Cartesian3D::Hexahedron::hasStrangeEdge(), StdMeshers::Cartesian3D::Hexahedron::isOutPoint(), and StdMeshers::Cartesian3D::Hexahedron::sortVertexNodes().
| TGeomID Grid::ShapeID | ( | const TopoDS_Shape & | s | ) | const |
References _helper, SMESH_MesherHelper::GetMeshDS(), and SMESHDS_Mesh::ShapeToIndex().
Referenced by StdMeshers::Cartesian3D::Hexahedron::addEdges(), GetEdgesToImplement(), GridInitAndInterserctWithShape(), InitGeometry(), SetSolidFather(), StdMeshers::Cartesian3D::Hexahedron::sortVertexNodes(), and UpdateFacesOfVertex().
| TopAbs_ShapeEnum StdMeshers::Cartesian3D::Grid::ShapeType | ( | TGeomID | id | ) | const |
| void Grid::UpdateFacesOfVertex | ( | const B_IntersectPoint & | ip, |
| const TopoDS_Vertex & | vertex | ||
| ) |
| std::vector< const SMDS_MeshNode* > StdMeshers::Cartesian3D::Grid::_allBorderNodes |
Referenced by StdMeshers_Cartesian_3D::Compute(), ComputeNodes(), and StdMeshers::Cartesian3D::Hexahedron::init().
| gp_XYZ StdMeshers::Cartesian3D::Grid::_axes[3] |
| std::vector< double > StdMeshers::Cartesian3D::Grid::_coords[3] |
Referenced by StdMeshers::Cartesian3D::Hexahedron::addEdges(), StdMeshers::Cartesian3D::Hexahedron::compute(), ComputeNodes(), StdMeshers::Cartesian3D::Hexahedron::cutByExtendedInternal(), StdMeshers::Cartesian3D::Hexahedron::getEntity(), GetLineIndexer(), StdMeshers::Cartesian3D::Hexahedron::init(), StdMeshers::Cartesian3D::Hexahedron::isInHole(), StdMeshers::Cartesian3D::Hexahedron::isOutParam(), SetCoordinates(), and StdMeshers::Cartesian3D::Hexahedron::setIJK().
| ObjectPool< E_IntersectPoint > StdMeshers::Cartesian3D::Grid::_edgeIntPool |
Referenced by StdMeshers::Cartesian3D::Hexahedron::isImplementEdges().
| ObjectPool< F_IntersectPoint > StdMeshers::Cartesian3D::Grid::_extIntPool |
Referenced by StdMeshers::Cartesian3D::Hexahedron::cutByExtendedInternal().
| Geometry StdMeshers::Cartesian3D::Grid::_geometry |
Referenced by StdMeshers::Cartesian3D::Hexahedron::addFaces(), StdMeshers::Cartesian3D::Hexahedron::computeElements(), ComputeNodes(), GetEdgesToImplement(), GetOneOfSolids(), GetSolid(), GetSolidIDs(), StdMeshers::Cartesian3D::Hexahedron::getSolids(), StdMeshers::Cartesian3D::Hexahedron::init(), InitGeometry(), IsCorrectTransition(), IsShared(), StdMeshers::Cartesian3D::Hexahedron::MakeElements(), SetOnShape(), SetSolidFather(), and UpdateFacesOfVertex().
| std::vector< const F_IntersectPoint* > StdMeshers::Cartesian3D::Grid::_gridIntP |
| SMESH_MesherHelper* StdMeshers::Cartesian3D::Grid::_helper |
Referenced by StdMeshers_Cartesian_3D::Compute(), StdMeshers::Cartesian3D::Hexahedron::cutByExtendedInternal(), StdMeshers::Cartesian3D::Hexahedron::getBoundaryElems(), GetEdgesToImplement(), GridInitAndInterserctWithShape(), StdMeshers::Cartesian3D::Hexahedron::hasStrangeEdge(), StdMeshers::Cartesian3D::Hexahedron::init(), InitClassifier(), InitGeometry(), StdMeshers::Cartesian3D::Hexahedron::preventVolumesOverlapping(), SetOnShape(), SetSolidFather(), Shape(), ShapeID(), testNRTJ4(), testNRTM1(), testShape(), and UpdateFacesOfVertex().
| gp_Mat StdMeshers::Cartesian3D::Grid::_invB |
Referenced by ComputeUVW(), and SetCoordinates().
| std::vector< GridLine > StdMeshers::Cartesian3D::Grid::_lines[3] |
| double StdMeshers::Cartesian3D::Grid::_minCellSize |
Referenced by StdMeshers::Cartesian3D::Hexahedron::addEdges(), and SetCoordinates().
| std::vector< const SMDS_MeshNode* > StdMeshers::Cartesian3D::Grid::_nodes |
| int StdMeshers::Cartesian3D::Grid::_nodeShift[8] |
| gp_XYZ StdMeshers::Cartesian3D::Grid::_origin |
Referenced by StdMeshers::Cartesian3D::Hexahedron::addEdges(), and SetCoordinates().
| double StdMeshers::Cartesian3D::Grid::_quanta |
Referenced by StdMeshers::Cartesian3D::Hexahedron::addVolumes(), and StdMeshers_Cartesian_3D::Compute().
| double StdMeshers::Cartesian3D::Grid::_sizeThreshold |
| bool StdMeshers::Cartesian3D::Grid::_toAddEdges |
| bool StdMeshers::Cartesian3D::Grid::_toConsiderInternalFaces |
Referenced by StdMeshers_Cartesian_3D::Compute(), GridInitAndInterserctWithShape(), InitGeometry(), testNRTJ4(), testNRTM1(), and testShape().
| bool StdMeshers::Cartesian3D::Grid::_toCreateFaces |
| double StdMeshers::Cartesian3D::Grid::_tol |
Referenced by StdMeshers::Cartesian3D::Hexahedron::addEdges(), StdMeshers::Cartesian3D::Hexahedron::compute(), ComputeNodes(), StdMeshers::Cartesian3D::Hexahedron::cutByExtendedInternal(), StdMeshers::Cartesian3D::Hexahedron::findIntPoint(), StdMeshers::Cartesian3D::Hexahedron::getEntity(), StdMeshers::Cartesian3D::Hexahedron::init(), StdMeshers::Cartesian3D::FaceGridIntersector::Intersect(), StdMeshers::Cartesian3D::Hexahedron::isInHole(), StdMeshers::Cartesian3D::Hexahedron::isOutParam(), StdMeshers::Cartesian3D::Hexahedron::isOutPoint(), StdMeshers::Cartesian3D::Hexahedron::MakeElements(), StdMeshers::Cartesian3D::Hexahedron::mostDistantInternalPnt(), StdMeshers::Cartesian3D::Hexahedron::removeExcessNodes(), and SetCoordinates().
| bool StdMeshers::Cartesian3D::Grid::_toUseQuanta |
| bool StdMeshers::Cartesian3D::Grid::_toUseThresholdForInternalFaces |