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)); 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() ) if ( !f->IsPoly() )
switch ( f->NbNodes() ) { switch ( f->NbNodes() ) {
case 7: 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(2),f->GetNode(3),f->GetNode(6));
AddTLinkNode(f->GetNode(3),f->GetNode(0),f->GetNode(7)); break; AddTLinkNode(f->GetNode(3),f->GetNode(0),f->GetNode(7)); break;
default:; 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() ) if ( volume->IsQuadratic() )
{ {
@ -460,7 +466,9 @@ void SMESH_MesherHelper::AddTLinks(const SMDS_MeshVolume* volume)
nFCenter )); nFCenter ));
} }
} }
return true;
} }
return false;
} }
//================================================================================ //================================================================================

View File

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