-// Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
return true;
}
+ // only StdMeshers_ViscousLayers can be used
aStatus = HYP_OK;
for ( ; h != hyps.end(); ++h )
{
- string hypName = (*h)->GetName();
- if ( find( _compatibleHypothesis.begin(),_compatibleHypothesis.end(),hypName )
- != _compatibleHypothesis.end() )
- {
- _viscousLayersHyp = dynamic_cast< const StdMeshers_ViscousLayers*> ( *h );
- }
- else
- {
- aStatus = HYP_INCOMPATIBLE;
- }
+ if ( !(_viscousLayersHyp = dynamic_cast< const StdMeshers_ViscousLayers*> ( *h )))
+ break;
}
-
if ( !_viscousLayersHyp )
aStatus = HYP_INCOMPATIBLE;
+ else
+ error( _viscousLayersHyp->CheckHypothesis( aMesh, aShape, aStatus ));
return aStatus == HYP_OK;
}
for ( int i = 0; i < 6; ++i )
{
const TopoDS_Face& sideF = aCubeSide[i]._quad->face;
- if ( !SMESH_MesherHelper::IsSameElemGeometry( meshDS->MeshElements( sideF ),
- SMDSGeom_QUADRANGLE,
+ const SMESHDS_SubMesh* smDS =
+ proxymesh ? proxymesh->GetSubMesh( sideF ) : meshDS->MeshElements( sideF );
+ if ( !SMESH_MesherHelper::IsSameElemGeometry( smDS, SMDSGeom_QUADRANGLE,
/*nullSubMeshRes=*/false ))
{
SMESH_ComputeErrorPtr err = ComputePentahedralMesh(aMesh, aShape, proxymesh.get());