mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2024-12-27 01:40:33 +05:00
small optimization
This commit is contained in:
parent
4689443745
commit
8fe58da2fc
@ -327,29 +327,27 @@ void SMESH_OctreeNode::FindCoincidentNodes ( TIDSortedNodeSet* theSetOfNodes,
|
|||||||
* \param precision - Precision used
|
* \param precision - Precision used
|
||||||
*/
|
*/
|
||||||
//======================================================================================
|
//======================================================================================
|
||||||
void SMESH_OctreeNode::FindCoincidentNodes (const SMDS_MeshNode * Node,
|
void SMESH_OctreeNode::FindCoincidentNodes (const SMDS_MeshNode * Node,
|
||||||
TIDSortedNodeSet* SetOfNodes,
|
TIDSortedNodeSet* SetOfNodes,
|
||||||
list<const SMDS_MeshNode*>* Result,
|
list<const SMDS_MeshNode*>* Result,
|
||||||
const double precision)
|
const double precision)
|
||||||
{
|
{
|
||||||
gp_XYZ p(Node->X(), Node->Y(), Node->Z());
|
gp_Pnt p1 (Node->X(), Node->Y(), Node->Z());
|
||||||
bool isInsideBool = isInside(p, precision);
|
bool isInsideBool = isInside( p1.XYZ(), precision );
|
||||||
|
|
||||||
if (isInsideBool)
|
if (isInsideBool)
|
||||||
{
|
{
|
||||||
// I'm only looking in the leaves, since all the nodes are stored there.
|
// I'm only looking in the leaves, since all the nodes are stored there.
|
||||||
if (isLeaf())
|
if (isLeaf())
|
||||||
{
|
{
|
||||||
gp_Pnt p1 (Node->X(), Node->Y(), Node->Z());
|
TIDSortedNodeSet::iterator it = myNodes.begin();
|
||||||
|
const double tol2 = precision * precision;
|
||||||
TIDSortedNodeSet myNodesCopy = myNodes;
|
|
||||||
TIDSortedNodeSet::iterator it = myNodesCopy.begin();
|
|
||||||
double tol2 = precision * precision;
|
|
||||||
bool squareBool;
|
bool squareBool;
|
||||||
|
|
||||||
while (it != myNodesCopy.end())
|
while (it != myNodes.end())
|
||||||
{
|
{
|
||||||
const SMDS_MeshNode* n2 = *it;
|
const SMDS_MeshNode* n2 = *it;
|
||||||
|
squareBool = false;
|
||||||
// We're only looking at nodes with a superior Id.
|
// We're only looking at nodes with a superior Id.
|
||||||
// JFA: Why?
|
// JFA: Why?
|
||||||
//if (Node->GetID() < n2->GetID())
|
//if (Node->GetID() < n2->GetID())
|
||||||
@ -364,14 +362,13 @@ void SMESH_OctreeNode::FindCoincidentNodes (const SMDS_MeshNode * Node,
|
|||||||
{
|
{
|
||||||
Result->insert(Result->begin(), n2);
|
Result->insert(Result->begin(), n2);
|
||||||
SetOfNodes->erase( n2 );
|
SetOfNodes->erase( n2 );
|
||||||
myNodes.erase( n2 );
|
myNodes.erase( *it++ ); // it++ goes forward and returns it's previous position
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//myNodesCopy.erase( it );
|
if ( !squareBool )
|
||||||
//it = myNodesCopy.begin();
|
it++;
|
||||||
it++;
|
|
||||||
}
|
}
|
||||||
if (Result->size() > 0)
|
if ( !Result->empty() )
|
||||||
myNodes.erase(Node); // JFA: for bug 0020185
|
myNodes.erase(Node); // JFA: for bug 0020185
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
Loading…
Reference in New Issue
Block a user