IPAL52479: Mixed linear/quadratic mesh is created

This commit is contained in:
eap 2014-08-25 20:41:02 +04:00
parent 2246612bb5
commit 2eeec022d2
2 changed files with 15 additions and 7 deletions

View File

@ -380,10 +380,13 @@ void SMESH_MesherHelper::AddTLinkNode(const SMDS_MeshNode* n1,
*/
//================================================================================
void SMESH_MesherHelper::AddTLinks(const SMDS_MeshEdge* edge)
bool SMESH_MesherHelper::AddTLinks(const SMDS_MeshEdge* edge)
{
if ( edge->IsQuadratic() )
if ( edge && edge->IsQuadratic() )
AddTLinkNode(edge->GetNode(0), edge->GetNode(1), edge->GetNode(2));
else
return false;
return true;
}
//================================================================================
@ -392,8 +395,9 @@ void SMESH_MesherHelper::AddTLinks(const SMDS_MeshEdge* edge)
*/
//================================================================================
void SMESH_MesherHelper::AddTLinks(const SMDS_MeshFace* f)
bool SMESH_MesherHelper::AddTLinks(const SMDS_MeshFace* f)
{
bool isQuad = true;
if ( !f->IsPoly() )
switch ( f->NbNodes() ) {
case 7:
@ -417,7 +421,9 @@ void SMESH_MesherHelper::AddTLinks(const SMDS_MeshFace* f)
AddTLinkNode(f->GetNode(2),f->GetNode(3),f->GetNode(6));
AddTLinkNode(f->GetNode(3),f->GetNode(0),f->GetNode(7)); break;
default:;
isQuad = false;
}
return isQuad;
}
//================================================================================
@ -426,7 +432,7 @@ void SMESH_MesherHelper::AddTLinks(const SMDS_MeshFace* f)
*/
//================================================================================
void SMESH_MesherHelper::AddTLinks(const SMDS_MeshVolume* volume)
bool SMESH_MesherHelper::AddTLinks(const SMDS_MeshVolume* volume)
{
if ( volume->IsQuadratic() )
{
@ -460,7 +466,9 @@ void SMESH_MesherHelper::AddTLinks(const SMDS_MeshVolume* volume)
nFCenter ));
}
}
return true;
}
return false;
}
//================================================================================

View File

@ -637,9 +637,9 @@ public:
void AddTLinkNodeMap(const TLinkNodeMap& aMap)
{ myTLinkNodeMap.insert(aMap.begin(), aMap.end()); }
void AddTLinks(const SMDS_MeshEdge* edge);
void AddTLinks(const SMDS_MeshFace* face);
void AddTLinks(const SMDS_MeshVolume* vol);
bool AddTLinks(const SMDS_MeshEdge* edge);
bool AddTLinks(const SMDS_MeshFace* face);
bool AddTLinks(const SMDS_MeshVolume* vol);
/**
* Returns myTLinkNodeMap