22658. Avoid unnecessary merge of pyramids at hex-tet interface

This commit is contained in:
eap 2014-08-06 15:23:38 +04:00
parent 1eb7dc9cd0
commit d8557600d9

View File

@ -25,7 +25,6 @@
#include "StdMeshers_QuadToTriaAdaptor.hxx" #include "StdMeshers_QuadToTriaAdaptor.hxx"
#include "SMDS_SetIterator.hxx" #include "SMDS_SetIterator.hxx"
#include "SMESHDS_GroupBase.hxx" #include "SMESHDS_GroupBase.hxx"
#include "SMESH_Algo.hxx" #include "SMESH_Algo.hxx"
#include "SMESH_Group.hxx" #include "SMESH_Group.hxx"
@ -41,6 +40,7 @@
#include <TopoDS.hxx> #include <TopoDS.hxx>
#include <gp_Lin.hxx> #include <gp_Lin.hxx>
#include <gp_Pln.hxx> #include <gp_Pln.hxx>
#include "utilities.h" #include "utilities.h"
#include <string> #include <string>
@ -119,7 +119,7 @@ namespace
bool tooClose = ( angle < 15. * M_PI / 180. ); bool tooClose = ( angle < 15. * M_PI / 180. );
// Check if pyramids collide // Check if pyramids collide
if ( !tooClose && baI * baJ > 0 ) if ( !tooClose && ( baI * baJ > 0 ) && ( nI * nJ > 0 ))
{ {
// find out if nI points outside of PrmI or inside // find out if nI points outside of PrmI or inside
int dInd = baseNodesIndI[1] - baseNodesIndI[0]; int dInd = baseNodesIndI[1] - baseNodesIndI[0];
@ -1290,7 +1290,7 @@ bool StdMeshers_QuadToTriaAdaptor::Compute2ndPart(SMESH_Mesh&
nodesToMove.insert( aNode1 ); nodesToMove.insert( aNode1 );
nodesToMove.insert( aNode2 ); nodesToMove.insert( aNode2 );
} }
// fix intersections that could appear after apex movement // fix intersections that can appear after apex movement
MergeAdjacent( PrmI, nodesToMove ); MergeAdjacent( PrmI, nodesToMove );
MergeAdjacent( PrmJ, nodesToMove ); MergeAdjacent( PrmJ, nodesToMove );