mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-02-05 23:34:17 +05:00
Fix regressions caused by improvements
This commit is contained in:
parent
256994070c
commit
0460bb60e0
@ -776,7 +776,10 @@ module SMESH
|
|||||||
long NbBiQuadQuadrangles()
|
long NbBiQuadQuadrangles()
|
||||||
raises (SALOME::SALOME_Exception);
|
raises (SALOME::SALOME_Exception);
|
||||||
|
|
||||||
long NbPolygons(in ElementOrder order)
|
long NbPolygons()
|
||||||
|
raises (SALOME::SALOME_Exception);
|
||||||
|
|
||||||
|
long NbPolygonsOfOrder(in ElementOrder order)
|
||||||
raises (SALOME::SALOME_Exception);
|
raises (SALOME::SALOME_Exception);
|
||||||
|
|
||||||
long NbVolumes()
|
long NbVolumes()
|
||||||
|
@ -5356,8 +5356,7 @@ void SMESH_MeshEditor::makeWalls (TNodeOfNodeListMap & mapNewNodes,
|
|||||||
SMDS_MeshCell::interlacedSmdsOrder( elem->GetEntityType(), nbn );
|
SMDS_MeshCell::interlacedSmdsOrder( elem->GetEntityType(), nbn );
|
||||||
SMDS_MeshCell::applyInterlaceRev( interlace, nodeVec );
|
SMDS_MeshCell::applyInterlaceRev( interlace, nodeVec );
|
||||||
|
|
||||||
if ( const SMDS_MeshElement* face = AddElement( nodeVec, anyFace.Init( elem )))
|
AddElement( nodeVec, anyFace.Init( elem ));
|
||||||
myLastCreatedElems.Append( face );
|
|
||||||
|
|
||||||
while ( srcElements.Length() < myLastCreatedElems.Length() )
|
while ( srcElements.Length() < myLastCreatedElems.Length() )
|
||||||
srcElements.Append( elem );
|
srcElements.Append( elem );
|
||||||
@ -12531,7 +12530,7 @@ int SMESH_MeshEditor::MakeBoundaryMesh(const TIDSortedElemSet& elements,
|
|||||||
|
|
||||||
typedef vector<const SMDS_MeshNode*> TConnectivity;
|
typedef vector<const SMDS_MeshNode*> TConnectivity;
|
||||||
TConnectivity tgtNodes;
|
TConnectivity tgtNodes;
|
||||||
ElemFeatures elemKind( missType );
|
ElemFeatures elemKind( missType ), elemToCopy;
|
||||||
|
|
||||||
SMDS_ElemIteratorPtr eIt;
|
SMDS_ElemIteratorPtr eIt;
|
||||||
if (elements.empty()) eIt = aMesh->elementsIterator(elemType);
|
if (elements.empty()) eIt = aMesh->elementsIterator(elemType);
|
||||||
@ -12703,7 +12702,7 @@ int SMESH_MeshEditor::MakeBoundaryMesh(const TIDSortedElemSet& elements,
|
|||||||
tgtNodes.resize( e->NbNodes() );
|
tgtNodes.resize( e->NbNodes() );
|
||||||
for ( inode = 0; inode < nodes.size(); ++inode )
|
for ( inode = 0; inode < nodes.size(); ++inode )
|
||||||
tgtNodes[inode] = getNodeWithSameID( tgtMeshDS, e->GetNode(inode) );
|
tgtNodes[inode] = getNodeWithSameID( tgtMeshDS, e->GetNode(inode) );
|
||||||
presentEditor->AddElement( tgtNodes, elemKind.Init( e ));
|
presentEditor->AddElement( tgtNodes, elemToCopy.Init( e ));
|
||||||
}
|
}
|
||||||
else // store present elements to add them to a group
|
else // store present elements to add them to a group
|
||||||
for ( int i = 0 ; i < presentBndElems.size(); ++i )
|
for ( int i = 0 ; i < presentBndElems.size(); ++i )
|
||||||
@ -12738,7 +12737,7 @@ int SMESH_MeshEditor::MakeBoundaryMesh(const TIDSortedElemSet& elements,
|
|||||||
tgtNodes.resize( elem->NbNodes() );
|
tgtNodes.resize( elem->NbNodes() );
|
||||||
for ( inode = 0; inode < tgtNodes.size(); ++inode )
|
for ( inode = 0; inode < tgtNodes.size(); ++inode )
|
||||||
tgtNodes[inode] = getNodeWithSameID( tgtMeshDS, elem->GetNode(inode) );
|
tgtNodes[inode] = getNodeWithSameID( tgtMeshDS, elem->GetNode(inode) );
|
||||||
tgtEditor.AddElement( tgtNodes, elemKind.Init( elem ));
|
tgtEditor.AddElement( tgtNodes, elemToCopy.Init( elem ));
|
||||||
|
|
||||||
tgtEditor.myLastCreatedElems.Clear();
|
tgtEditor.myLastCreatedElems.Clear();
|
||||||
}
|
}
|
||||||
|
@ -3765,7 +3765,16 @@ CORBA::Long SMESH_Mesh_i::NbBiQuadQuadrangles()throw(SALOME::SALOME_Exception)
|
|||||||
return _impl->NbBiQuadQuadrangles();
|
return _impl->NbBiQuadQuadrangles();
|
||||||
}
|
}
|
||||||
|
|
||||||
CORBA::Long SMESH_Mesh_i::NbPolygons(SMESH::ElementOrder order) throw(SALOME::SALOME_Exception)
|
CORBA::Long SMESH_Mesh_i::NbPolygons() throw(SALOME::SALOME_Exception)
|
||||||
|
{
|
||||||
|
Unexpect aCatch(SALOME_SalomeException);
|
||||||
|
if ( _preMeshInfo )
|
||||||
|
return _preMeshInfo->NbPolygons();
|
||||||
|
|
||||||
|
return _impl->NbPolygons();
|
||||||
|
}
|
||||||
|
|
||||||
|
CORBA::Long SMESH_Mesh_i::NbPolygonsOfOrder(SMESH::ElementOrder order) throw(SALOME::SALOME_Exception)
|
||||||
{
|
{
|
||||||
Unexpect aCatch(SALOME_SalomeException);
|
Unexpect aCatch(SALOME_SalomeException);
|
||||||
if ( _preMeshInfo )
|
if ( _preMeshInfo )
|
||||||
|
@ -315,7 +315,10 @@ public:
|
|||||||
CORBA::Long NbBiQuadQuadrangles()
|
CORBA::Long NbBiQuadQuadrangles()
|
||||||
throw (SALOME::SALOME_Exception);
|
throw (SALOME::SALOME_Exception);
|
||||||
|
|
||||||
CORBA::Long NbPolygons(SMESH::ElementOrder order=SMESH::ORDER_ANY)
|
CORBA::Long NbPolygons()
|
||||||
|
throw (SALOME::SALOME_Exception);
|
||||||
|
|
||||||
|
CORBA::Long NbPolygonsOfOrder(SMESH::ElementOrder order=SMESH::ORDER_ANY)
|
||||||
throw (SALOME::SALOME_Exception);
|
throw (SALOME::SALOME_Exception);
|
||||||
|
|
||||||
CORBA::Long NbVolumes()
|
CORBA::Long NbVolumes()
|
||||||
|
@ -2359,7 +2359,7 @@ class Mesh:
|
|||||||
# @return an integer value
|
# @return an integer value
|
||||||
# @ingroup l1_meshinfo
|
# @ingroup l1_meshinfo
|
||||||
def NbPolygons(self, elementOrder = SMESH.ORDER_ANY):
|
def NbPolygons(self, elementOrder = SMESH.ORDER_ANY):
|
||||||
return self.mesh.NbPolygons(elementOrder)
|
return self.mesh.NbPolygonsOfOrder(elementOrder)
|
||||||
|
|
||||||
## Returns the number of volumes in the mesh
|
## Returns the number of volumes in the mesh
|
||||||
# @return an integer value
|
# @return an integer value
|
||||||
@ -4940,6 +4940,10 @@ class meshEditor(SMESH._objref_SMESH_MeshEditor):
|
|||||||
if len( args ) == 1:
|
if len( args ) == 1:
|
||||||
return SMESH._objref_SMESH_MeshEditor.FindCoincidentNodes( self, args[0], False )
|
return SMESH._objref_SMESH_MeshEditor.FindCoincidentNodes( self, args[0], False )
|
||||||
return SMESH._objref_SMESH_MeshEditor.FindCoincidentNodes( self, *args )
|
return SMESH._objref_SMESH_MeshEditor.FindCoincidentNodes( self, *args )
|
||||||
|
def FindCoincidentNodesOnPart(self,*args): # a 3d arg added (SeparateCornerAndMediumNodes)
|
||||||
|
if len( args ) == 2:
|
||||||
|
args += False,
|
||||||
|
return SMESH._objref_SMESH_MeshEditor.FindCoincidentNodesOnPart( self, *args )
|
||||||
def MergeNodes(self,*args): # a 2nd arg added (NodesToKeep)
|
def MergeNodes(self,*args): # a 2nd arg added (NodesToKeep)
|
||||||
if len( args ) == 1:
|
if len( args ) == 1:
|
||||||
return SMESH._objref_SMESH_MeshEditor.MergeNodes( self, args[0], [] )
|
return SMESH._objref_SMESH_MeshEditor.MergeNodes( self, args[0], [] )
|
||||||
|
@ -369,7 +369,7 @@ namespace
|
|||||||
*/
|
*/
|
||||||
//================================================================================
|
//================================================================================
|
||||||
|
|
||||||
void getInternalEdges( SMESH_Mesh& mesh,
|
bool getInternalEdges( SMESH_Mesh& mesh,
|
||||||
const TopoDS_Shape& shape,
|
const TopoDS_Shape& shape,
|
||||||
const TopTools_MapOfShape& cornerVV,
|
const TopTools_MapOfShape& cornerVV,
|
||||||
TopTools_MapOfShape& internEE)
|
TopTools_MapOfShape& internEE)
|
||||||
@ -436,11 +436,13 @@ namespace
|
|||||||
ridgeE = TopoDS::Edge( nextRidgeE );
|
ridgeE = TopoDS::Edge( nextRidgeE );
|
||||||
V0 = V1;
|
V0 = V1;
|
||||||
|
|
||||||
|
if ( ridgeE.IsNull() )
|
||||||
|
return false;
|
||||||
} // check EDGEs around the last VERTEX of ridgeE
|
} // check EDGEs around the last VERTEX of ridgeE
|
||||||
} // loop on ridge EDGEs around a corner VERTEX
|
} // loop on ridge EDGEs around a corner VERTEX
|
||||||
} // loop on on corner VERTEXes
|
} // loop on on corner VERTEXes
|
||||||
|
|
||||||
return;
|
return true;
|
||||||
} // getInternalEdges()
|
} // getInternalEdges()
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
@ -463,9 +465,10 @@ bool StdMeshers_CompositeHexa_3D::findBoxFaces( const TopoDS_Shape& shape,
|
|||||||
TopTools_MapOfShape cornerVertices;
|
TopTools_MapOfShape cornerVertices;
|
||||||
getBlockCorners( mesh, shape, cornerVertices );
|
getBlockCorners( mesh, shape, cornerVertices );
|
||||||
if ( cornerVertices.Extent() != 8 )
|
if ( cornerVertices.Extent() != 8 )
|
||||||
return false;
|
return error( COMPERR_BAD_INPUT_MESH, "Can't find 8 corners of a block" );
|
||||||
TopTools_MapOfShape internalEdges;
|
TopTools_MapOfShape internalEdges;
|
||||||
getInternalEdges( mesh, shape, cornerVertices, internalEdges );
|
if ( !getInternalEdges( mesh, shape, cornerVertices, internalEdges ))
|
||||||
|
return error( COMPERR_BAD_INPUT_MESH, "2D mesh is not suitable for i,j,k hexa meshing" );
|
||||||
|
|
||||||
list< _QuadFaceGrid >::iterator boxFace;
|
list< _QuadFaceGrid >::iterator boxFace;
|
||||||
TopExp_Explorer exp;
|
TopExp_Explorer exp;
|
||||||
|
Loading…
Reference in New Issue
Block a user