-// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2019 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
*/
//=============================================================================
-StdMeshers_Quadrangle_2D::StdMeshers_Quadrangle_2D (int hypId, int studyId,
+StdMeshers_Quadrangle_2D::StdMeshers_Quadrangle_2D (int hypId,
SMESH_Gen* gen)
- : SMESH_2D_Algo(hypId, studyId, gen),
+ : SMESH_2D_Algo(hypId, gen),
myQuadranglePreference(false),
myTrianglePreference(false),
myTriaVertexID(-1),
myTrianglePreference = false;
myHelper = (SMESH_MesherHelper*)NULL;
myParams = NULL;
+ myProxyMesh.reset();
myQuadList.clear();
aStatus = SMESH_Hypothesis::HYP_OK;
int nfull = n1+n2+n3+n4;
if ((nfull % 2) == 0 && ((n1 != n3) || (n2 != n4)))
{
- // special path genarating only quandrangle faces
+ // special path generating only quandrangle faces
res = computeQuadPref( aMesh, F, quad );
}
}
SMESH_ComputeErrorPtr& err = aMesh.GetSubMesh( aFace )->GetComputeError();
if ( !err || err->IsOK() || err->myName < COMPERR_WARNING )
{
- err.reset( new SMESH_ComputeError( COMPERR_WARNING,
- "Bad quality quad created"));
- err->myBadElements.push_back( face );
+ SMESH_BadInputElements* badElems =
+ new SMESH_BadInputElements( meshDS, COMPERR_WARNING,
+ "Bad quality quad created");
+ badElems->add( face );
+ err.reset( badElems );
}
}
--i;
SMESH_ComputeErrorPtr& err = aMesh.GetSubMesh( aFace )->GetComputeError();
if ( !err || err->IsOK() || err->myName < COMPERR_WARNING )
{
- err.reset( new SMESH_ComputeError( COMPERR_WARNING,
- "Bad quality quad created"));
- err->myBadElements.push_back( face );
+ SMESH_BadInputElements* badElems =
+ new SMESH_BadInputElements( meshDS, COMPERR_WARNING,
+ "Bad quality quad created");
+ badElems->add( face );
+ err.reset( badElems );
}
}
--i;
//int nbFaces4 = (nbhoriz-1-kdh)*(nbvertic-1-kdv);
int nbFaces4 = (nbhoriz-1)*(nbvertic-1);
- std::vector<int> aVec(SMDSEntity_Last);
- for (int i=SMDSEntity_Node; i<SMDSEntity_Last; i++) aVec[i] = 0;
+ std::vector<int> aVec(SMDSEntity_Last,0);
if (IsQuadratic) {
aVec[SMDSEntity_Quad_Triangle] = nbFaces3;
aVec[SMDSEntity_Quad_Quadrangle] = nbFaces4;
}
}
list<TopoDS_Edge>::iterator ite = sideEdges.begin();
+ if ( nbSides >= (int)aNbNodes.size() )
+ return false;
aNbNodes[nbSides] = 1;
for (; ite!=sideEdges.end(); ite++) {
SMESH_subMesh * sm = aMesh.GetSubMesh(*ite);
{
SMESH_subMesh* fSM = myHelper->GetMesh()->GetSubMesh( geomFace );
SMESH_ComputeErrorPtr& err = fSM->GetComputeError();
- err.reset ( new SMESH_ComputeError( COMPERR_ALGO_FAILED,
- "Inverted elements generated"));
- err->myBadElements.swap( badFaces );
+ SMESH_BadInputElements* badElems =
+ new SMESH_BadInputElements( meshDS, COMPERR_ALGO_FAILED,
+ "Inverted elements generated");
+ badElems->myBadElements.swap( badFaces );
+ err.reset( badElems );
return !isOK;
}