Merge from 1.18.2.10

This commit is contained in:
rnc 2013-07-01 08:19:05 +00:00
parent 2dcc1590a3
commit fa569d7e73

View File

@ -120,16 +120,17 @@ SMESH_Mesh* SMESH_Gen::CreateMesh(int theStudyId, bool theIsEmbeddedMode)
} }
//============================================================================= //=============================================================================
/*! /*
* Compute a mesh * Compute a mesh
*/ */
//============================================================================= //=============================================================================
bool SMESH_Gen::Compute(SMESH_Mesh & aMesh, bool SMESH_Gen::Compute(SMESH_Mesh & aMesh,
const TopoDS_Shape & aShape, const TopoDS_Shape & aShape,
const bool anUpward, const bool aShapeOnly /*=false*/,
const ::MeshDimension aDim, const bool anUpward /*=false*/,
TSetOfInt* aShapesId) const ::MeshDimension aDim /*=::MeshDim_3D*/,
TSetOfInt* aShapesId /*=0*/)
{ {
MESSAGE("SMESH_Gen::Compute"); MESSAGE("SMESH_Gen::Compute");
MEMOSTAT; MEMOSTAT;
@ -143,11 +144,12 @@ bool SMESH_Gen::Compute(SMESH_Mesh & aMesh,
const int globalAlgoDim = 100; const int globalAlgoDim = 100;
SMESH_subMeshIteratorPtr smIt; SMESH_subMeshIteratorPtr smIt;
SMESH_subMesh::compute_event computeEvent;
if ( !anUpward && aShape.IsSame( aMesh.GetShapeToMesh() )) // Fix of Issue 22150. Due to !BLSURF->OnlyUnaryInput(), BLSURF computes edges
computeEvent = SMESH_subMesh::COMPUTE; // that must be computed by Projection 1D-2D when Projection asks to compute
else // one face only.
computeEvent = SMESH_subMesh::COMPUTE_SUBMESH; SMESH_subMesh::compute_event computeEvent =
aShapeOnly ? SMESH_subMesh::COMPUTE_SUBMESH : SMESH_subMesh::COMPUTE;
if ( anUpward ) // is called from the below code in this method if ( anUpward ) // is called from the below code in this method
{ {
@ -331,7 +333,7 @@ bool SMESH_Gen::Compute(SMESH_Mesh & aMesh,
SMESH_Hypothesis::Hypothesis_Status status; SMESH_Hypothesis::Hypothesis_Status status;
if ( subAlgo->CheckHypothesis( aMesh, aSubShape, status )) if ( subAlgo->CheckHypothesis( aMesh, aSubShape, status ))
// mesh a lower smToCompute starting from vertices // mesh a lower smToCompute starting from vertices
Compute( aMesh, aSubShape, /*anUpward=*/true, aDim, aShapesId ); Compute( aMesh, aSubShape, aShapeOnly, /*anUpward=*/true, aDim, aShapesId );
} }
} }
} }
@ -363,7 +365,7 @@ bool SMESH_Gen::Compute(SMESH_Mesh & aMesh,
// ----------------------------------------------- // -----------------------------------------------
// mesh the rest sub-shapes starting from vertices // mesh the rest sub-shapes starting from vertices
// ----------------------------------------------- // -----------------------------------------------
ret = Compute( aMesh, aShape, /*anUpward=*/true, aDim, aShapesId ); ret = Compute( aMesh, aShape, aShapeOnly, /*anUpward=*/true, aDim, aShapesId );
} }
MESSAGE( "VSR - SMESH_Gen::Compute() finished, OK = " << ret); MESSAGE( "VSR - SMESH_Gen::Compute() finished, OK = " << ret);