Version: 9.16.0
SMESH_NodeSearcherImpl Struct Reference

Implementation of search for the node closest to point. More...

Inheritance diagram for SMESH_NodeSearcherImpl:

Public Member Functions

 SMESH_NodeSearcherImpl (const SMDS_Mesh *theMesh=0, SMDS_ElemIteratorPtr theElemIt=SMDS_ElemIteratorPtr())
 Constructor. More...
 
void MoveNode (const SMDS_MeshNode *node, const gp_Pnt &toPnt)
 Move node and update myOctreeNode accordingly. More...
 
const SMDS_MeshNodeFindClosestTo (const gp_Pnt &thePnt)
 Do it's job. More...
 
int FindNearPoint (const gp_Pnt &point, const double tolerance, std::vector< const SMDS_MeshNode * > &foundNodes)
 Finds nodes located within a tolerance near a point. More...
 
 ~SMESH_NodeSearcherImpl ()
 Destructor. More...
 
const SMESH_OctreeNodegetTree () const
 Return the node tree. More...
 

Private Attributes

SMESH_OctreeNodemyOctreeNode
 
SMDS_MeshmyMesh
 
double myHalfLeafSize
 

Detailed Description

Implementation of search for the node closest to point.

Constructor & Destructor Documentation

◆ SMESH_NodeSearcherImpl()

◆ ~SMESH_NodeSearcherImpl()

SMESH_NodeSearcherImpl::~SMESH_NodeSearcherImpl ( )

Destructor.

References myOctreeNode.

Member Function Documentation

◆ FindClosestTo()

◆ FindNearPoint()

int SMESH_NodeSearcherImpl::FindNearPoint ( const gp_Pnt &  point,
const double  tolerance,
std::vector< const SMDS_MeshNode * > &  foundNodes 
)
virtual

Finds nodes located within a tolerance near a point.

Implements SMESH_NodeSearcher.

References myOctreeNode, and SMESH_OctreeNode::NodesAround().

Referenced by SMESH_ElementSearcherImpl::FindElementsByPoint().

◆ getTree()

const SMESH_OctreeNode * SMESH_NodeSearcherImpl::getTree ( ) const

Return the node tree.

References myOctreeNode.

Referenced by SMESH_ElementSearcherImpl::getTolerance().

◆ MoveNode()

void SMESH_NodeSearcherImpl::MoveNode ( const SMDS_MeshNode node,
const gp_Pnt &  toPnt 
)
virtual

Move node and update myOctreeNode accordingly.

Implements SMESH_NodeSearcher.

References SMDS_Mesh::MoveNode(), myMesh, myOctreeNode, SMESH_OctreeNode::UpdateByMoveNode(), and SMDS_MeshNode::X().

Field Documentation

◆ myHalfLeafSize

double SMESH_NodeSearcherImpl::myHalfLeafSize
private

◆ myMesh

SMDS_Mesh* SMESH_NodeSearcherImpl::myMesh
private

Referenced by MoveNode(), and SMESH_NodeSearcherImpl().

◆ myOctreeNode

SMESH_OctreeNode* SMESH_NodeSearcherImpl::myOctreeNode
private