22691: [CEA 1279] Regression on test attached with issue 22229

This commit is contained in:
eap 2014-09-15 15:22:28 +04:00
parent ac69e1629b
commit 214d7e4bdc
2 changed files with 18 additions and 14 deletions

View File

@ -2148,9 +2148,9 @@ TopoDS_Shape SMESH_subMesh::getCollection(SMESH_Gen * theGen,
if ( mainShape.IsSame( _subShape )) if ( mainShape.IsSame( _subShape ))
return _subShape; return _subShape;
const bool ignoreAuxiliaryHyps = false; const bool skipAuxHyps = false;
list<const SMESHDS_Hypothesis*> aUsedHyp = list<const SMESHDS_Hypothesis*> aUsedHyp =
theAlgo->GetUsedHypothesis( *_father, _subShape, ignoreAuxiliaryHyps ); // copy theAlgo->GetUsedHypothesis( *_father, _subShape, skipAuxHyps ); // copy
// put in a compound all shapes with the same hypothesis assigned // put in a compound all shapes with the same hypothesis assigned
// and a good ComputeState // and a good ComputeState
@ -2161,11 +2161,13 @@ TopoDS_Shape SMESH_subMesh::getCollection(SMESH_Gen * theGen,
theSubs.clear(); theSubs.clear();
TopExp_Explorer anExplorer( mainShape, _subShape.ShapeType() ); SMESH_subMeshIteratorPtr smIt = _father->GetSubMesh( mainShape )->getDependsOnIterator(false);
for ( ; anExplorer.More(); anExplorer.Next() ) while ( smIt->more() )
{ {
const TopoDS_Shape& S = anExplorer.Current(); SMESH_subMesh* subMesh = smIt->next();
SMESH_subMesh* subMesh = _father->GetSubMesh( S ); const TopoDS_Shape& S = subMesh->_subShape;
if ( S.ShapeType() != this->_subShape.ShapeType() )
continue;
theSubs.push_back( subMesh ); theSubs.push_back( subMesh );
if ( subMesh == this ) if ( subMesh == this )
{ {
@ -2173,12 +2175,14 @@ TopoDS_Shape SMESH_subMesh::getCollection(SMESH_Gen * theGen,
} }
else if ( subMesh->GetComputeState() == READY_TO_COMPUTE ) else if ( subMesh->GetComputeState() == READY_TO_COMPUTE )
{ {
SMESH_Algo* anAlgo = theGen->GetAlgo( subMesh ); SMESH_Algo* anAlgo = subMesh->GetAlgo();
if (strcmp( anAlgo->GetName(), theAlgo->GetName()) == 0 && // same algo if (( anAlgo->IsSameName( *theAlgo )) && // same algo
anAlgo->GetUsedHypothesis( *_father, S, ignoreAuxiliaryHyps ) == aUsedHyp) // same hyps ( anAlgo->GetUsedHypothesis( *_father, S, skipAuxHyps ) == aUsedHyp )) // same hyps
{
aBuilder.Add( aCompound, S ); aBuilder.Add( aCompound, S );
if ( !subMesh->SubMeshesComputed() ) if ( !subMesh->SubMeshesComputed() )
theSubComputed = false; theSubComputed = false;
}
} }
} }

View File

@ -40,7 +40,7 @@ import SMESH
# @code # @code
# meshMethod = "MyAlgorithm" # meshMethod = "MyAlgorithm"
# @endcode # @endcode
# then an instance of @c MyPlugin_Algorithm can be created by the direct invokation of the function # then an instance of @c MyPlugin_Algorithm can be created by the direct invocation of the function
# of smesh.Mesh class: # of smesh.Mesh class:
# @code # @code
# my_algo = mesh.MyAlgorithm() # my_algo = mesh.MyAlgorithm()
@ -257,7 +257,7 @@ class Mesh_Algorithm:
## Defines "ViscousLayers" hypothesis to give parameters of layers of prisms to build ## Defines "ViscousLayers" hypothesis to give parameters of layers of prisms to build
# near mesh boundary. This hypothesis can be used by several 3D algorithms: # near mesh boundary. This hypothesis can be used by several 3D algorithms:
# NETGEN 3D, GHS3D, Hexahedron(i,j,k) # NETGEN 3D, MG-Tetra, Hexahedron(i,j,k)
# @param thickness total thickness of layers of prisms # @param thickness total thickness of layers of prisms
# @param numberOfLayers number of layers of prisms # @param numberOfLayers number of layers of prisms
# @param stretchFactor factor (>1.0) of growth of layer thickness towards inside of mesh # @param stretchFactor factor (>1.0) of growth of layer thickness towards inside of mesh
@ -287,7 +287,7 @@ class Mesh_Algorithm:
## Defines "ViscousLayers2D" hypothesis to give parameters of layers of quadrilateral ## Defines "ViscousLayers2D" hypothesis to give parameters of layers of quadrilateral
# elements to build near mesh boundary. This hypothesis can be used by several 2D algorithms: # elements to build near mesh boundary. This hypothesis can be used by several 2D algorithms:
# NETGEN 2D, NETGEN 1D-2D, Quadrangle (mapping), MEFISTO, BLSURF # NETGEN 2D, NETGEN 1D-2D, Quadrangle (mapping), MEFISTO, MG-CADSurf
# @param thickness total thickness of layers of quadrilaterals # @param thickness total thickness of layers of quadrilaterals
# @param numberOfLayers number of layers # @param numberOfLayers number of layers
# @param stretchFactor factor (>1.0) of growth of layer thickness towards inside of mesh # @param stretchFactor factor (>1.0) of growth of layer thickness towards inside of mesh