mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-01-18 08:30:34 +05:00
0021494: EDF 2118 SMESH: Projection2D hypothesis causes Unknown Exception
Allow 1 pair of vertices for a face with 1 vertex
This commit is contained in:
parent
64dc48191e
commit
c1cd01ddc8
@ -28,6 +28,7 @@
|
||||
#include "StdMeshers_ProjectionSource2D.hxx"
|
||||
|
||||
#include "SMESH_Mesh.hxx"
|
||||
#include "StdMeshers_ProjectionUtils.hxx"
|
||||
|
||||
#include "utilities.h"
|
||||
|
||||
@ -103,17 +104,27 @@ void StdMeshers_ProjectionSource2D::SetVertexAssociation(const TopoDS_Shape& sou
|
||||
throw ( SALOME_Exception )
|
||||
{
|
||||
if ( sourceVertex1.IsNull() != targetVertex1.IsNull() ||
|
||||
sourceVertex2.IsNull() != targetVertex2.IsNull() ||
|
||||
sourceVertex1.IsNull() != targetVertex2.IsNull() )
|
||||
throw SALOME_Exception(LOCALIZED("Two or none pairs of vertices must be provided"));
|
||||
sourceVertex2.IsNull() != targetVertex2.IsNull() )
|
||||
throw SALOME_Exception(LOCALIZED("Vertices must be provided in couples"));
|
||||
|
||||
if ( !sourceVertex1.IsNull() ) {
|
||||
if ( sourceVertex1.IsNull() != sourceVertex2.IsNull() )
|
||||
{
|
||||
// possibly there is only 1 vertex in the face
|
||||
if ( !_sourceFace.IsNull() &&
|
||||
StdMeshers_ProjectionUtils::Count( _sourceFace, TopAbs_VERTEX, /*ignoreSame=*/true) != 1 )
|
||||
throw SALOME_Exception(LOCALIZED("Two or none pairs of vertices must be provided"));
|
||||
}
|
||||
|
||||
if ( !sourceVertex1.IsNull() )
|
||||
if ( sourceVertex1.ShapeType() != TopAbs_VERTEX ||
|
||||
sourceVertex2.ShapeType() != TopAbs_VERTEX ||
|
||||
targetVertex1.ShapeType() != TopAbs_VERTEX ||
|
||||
targetVertex1.ShapeType() != TopAbs_VERTEX )
|
||||
throw SALOME_Exception(LOCALIZED("Wrong shape type"));
|
||||
|
||||
if ( !sourceVertex2.IsNull() )
|
||||
if ( sourceVertex2.ShapeType() != TopAbs_VERTEX ||
|
||||
targetVertex2.ShapeType() != TopAbs_VERTEX )
|
||||
throw SALOME_Exception(LOCALIZED("Wrong shape type"));
|
||||
}
|
||||
|
||||
|
||||
if ( !_sourceVertex1.IsSame( sourceVertex1 ) ||
|
||||
!_sourceVertex2.IsSame( sourceVertex2 ) ||
|
||||
|
Loading…
Reference in New Issue
Block a user