dim[ TopAbs_COMPOUND ] = MeshDim_3D;
dim[ TopAbs_COMPSOLID ] = MeshDim_3D;
dim[ TopAbs_SOLID ] = MeshDim_3D;
- dim[ TopAbs_SHELL ] = MeshDim_3D;
+ dim[ TopAbs_SHELL ] = MeshDim_2D;
dim[ TopAbs_FACE ] = MeshDim_2D;
dim[ TopAbs_WIRE ] = MeshDim_1D;
dim[ TopAbs_EDGE ] = MeshDim_1D;
{
int aHypDim = theHypothesis->GetDim();
int aShapeDim = SMESH_Gen::GetShapeDim(_subShape);
- if (aHypDim == 3 && aShapeDim == 3) {
- // check case of open shell
- //if (_subShape.ShapeType() == TopAbs_SHELL && !_subShape.Closed())
- if (_subShape.ShapeType() == TopAbs_SHELL && !BRep_Tool::IsClosed(_subShape))
- return false;
- }
+ // issue 21106. Forbid 3D mesh on the SHELL
+ // if (aHypDim == 3 && aShapeDim == 3) {
+ // // check case of open shell
+ // //if (_subShape.ShapeType() == TopAbs_SHELL && !_subShape.Closed())
+ // if (_subShape.ShapeType() == TopAbs_SHELL && !BRep_Tool::IsClosed(_subShape))
+ // return false;
+ // }
if ( aHypDim <= aShapeDim )
return true;
const TopAbs_ShapeEnum theShapeType)
{
if ( theHypothesis->GetType() > SMESHDS_Hypothesis::PARAM_ALGO)
+ {
// algorithm
- return ( theHypothesis->GetShapeType() & (1<< theShapeType));
+ if ( theHypothesis->GetShapeType() & (1<< theShapeType))
+ // issue 21106. Forbid 3D mesh on the SHELL
+ return !( theHypothesis->GetDim() == 3 && theShapeType == TopAbs_SHELL );
+ else
+ return false;
+ }
// hypothesis
switch ( theShapeType ) {