0022297: BR_new_bop3/Occdev_3f4689a163 => Faces are missing after an extrusion

Fix ConvertToQuadratic(): do not convert twice quadratic volumes
This commit is contained in:
eap 2013-08-08 12:36:02 +00:00
parent c2a497190b
commit e97c496f7d

View File

@ -8446,11 +8446,20 @@ void SMESH_MeshEditor::ConvertToQuadratic(const bool theForce3d, const bool theT
if ( !volume ) continue;
const SMDSAbs_EntityType type = volume->GetEntityType();
if (( theToBiQuad && type == SMDSEntity_TriQuad_Hexa ) ||
( !theToBiQuad && type == SMDSEntity_Quad_Hexa ))
if ( volume->IsQuadratic() )
{
aHelper.AddTLinks( static_cast< const SMDS_MeshVolume* >( volume ));
continue;
bool alreadyOK;
switch ( type )
{
case SMDSEntity_Quad_Hexa: alreadyOK = !theToBiQuad; break;
case SMDSEntity_TriQuad_Hexa: alreadyOK = theToBiQuad; break;
default: alreadyOK = true;
}
if ( alreadyOK )
{
aHelper.AddTLinks( static_cast< const SMDS_MeshVolume* >( volume ));
continue;
}
}
const int id = volume->GetID();
vector<const SMDS_MeshNode *> nodes (volume->begin_nodes(), volume->end_nodes());