mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2024-11-12 00:29:17 +05:00
22222: [CEA 820] GHS3D in salome 7.2.0 ten times slower than in salome 6.6.0
Choose a compute event (COMPUTE or COMPUTE_SUBMESH) depending on an explicit parameter aShapeOnly. bool Compute(::SMESH_Mesh & aMesh, const TopoDS_Shape & aShape, + const bool aShapeOnly=false, const bool anUpward=false, const ::MeshDimension aDim=::MeshDim_3D, TSetOfInt* aShapesId=0);
This commit is contained in:
parent
ccd189545b
commit
e884e4cd7e
@ -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);
|
||||||
|
@ -70,6 +70,8 @@ public:
|
|||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Computes aMesh on aShape
|
* \brief Computes aMesh on aShape
|
||||||
|
* \param aShapeOnly - if true, algo->OnlyUnaryInput() feature is ignored and
|
||||||
|
* only \a aShape is computed.
|
||||||
* \param anUpward - compute from vertices up to more complex shape (internal usage)
|
* \param anUpward - compute from vertices up to more complex shape (internal usage)
|
||||||
* \param aDim - upper level dimension of the mesh computation
|
* \param aDim - upper level dimension of the mesh computation
|
||||||
* \param aShapesId - list of shapes with computed mesh entities (elements or nodes)
|
* \param aShapesId - list of shapes with computed mesh entities (elements or nodes)
|
||||||
@ -77,6 +79,7 @@ public:
|
|||||||
*/
|
*/
|
||||||
bool Compute(::SMESH_Mesh & aMesh,
|
bool Compute(::SMESH_Mesh & aMesh,
|
||||||
const TopoDS_Shape & aShape,
|
const TopoDS_Shape & aShape,
|
||||||
|
const bool aShapeOnly=false,
|
||||||
const bool anUpward=false,
|
const bool anUpward=false,
|
||||||
const ::MeshDimension aDim=::MeshDim_3D,
|
const ::MeshDimension aDim=::MeshDim_3D,
|
||||||
TSetOfInt* aShapesId=0);
|
TSetOfInt* aShapesId=0);
|
||||||
|
Loading…
Reference in New Issue
Block a user