SMESH_subMesh * subMesh;
if ( !myShape.IsNull() ) {
- subMesh = theMesh->GetSubMeshContaining( myShape );
+ subMesh = theMesh->GetSubMesh( myShape );
if ( subMesh )
subMesh->ComputeStateEngine( SMESH_subMesh::CHECK_COMPUTE_STATE );
}
ASSERT(quadAlgo);
try {
aQuads[i] = quadAlgo->CheckAnd2Dcompute(aMesh, aFace, _quadraticMesh);
+ if(!aQuads[i]) {
+ return error( quadAlgo->GetComputeError());
+ }
}
catch(SALOME_Exception & S_ex) {
return ClearAndReturn( aQuads, error(COMPERR_SLM_EXCEPTION,TComm(S_ex.what()) <<
if(!quad) return 0;
// set normalized grid on unit square in parametric domain
- SetNormalizedGrid(aMesh, aShape, quad);
+ bool stat = SetNormalizedGrid(aMesh, aShape, quad);
+ if(!stat) {
+ if(!quad)
+ delete quad;
+ quad = 0;
+ }
return quad;
}
const vector<UVPtStruct>& uv_e3 = GetUVPtStructIn( quad, 3, nbvertic - 1 );
if ( uv_e0.empty() || uv_e1.empty() || uv_e2.empty() || uv_e3.empty() )
- return error( "Can't find nodes on sides");
+ //return error( "Can't find nodes on sides");
+ return error( COMPERR_BAD_INPUT_MESH );
// nodes Id on "in" edges
if (! quad->isEdgeOut[0]) {