mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-01-18 10:40:36 +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 "StdMeshers_ProjectionSource2D.hxx"
|
||||||
|
|
||||||
#include "SMESH_Mesh.hxx"
|
#include "SMESH_Mesh.hxx"
|
||||||
|
#include "StdMeshers_ProjectionUtils.hxx"
|
||||||
|
|
||||||
#include "utilities.h"
|
#include "utilities.h"
|
||||||
|
|
||||||
@ -103,17 +104,27 @@ void StdMeshers_ProjectionSource2D::SetVertexAssociation(const TopoDS_Shape& sou
|
|||||||
throw ( SALOME_Exception )
|
throw ( SALOME_Exception )
|
||||||
{
|
{
|
||||||
if ( sourceVertex1.IsNull() != targetVertex1.IsNull() ||
|
if ( sourceVertex1.IsNull() != targetVertex1.IsNull() ||
|
||||||
sourceVertex2.IsNull() != targetVertex2.IsNull() ||
|
sourceVertex2.IsNull() != targetVertex2.IsNull() )
|
||||||
sourceVertex1.IsNull() != targetVertex2.IsNull() )
|
throw SALOME_Exception(LOCALIZED("Vertices must be provided in couples"));
|
||||||
throw SALOME_Exception(LOCALIZED("Two or none pairs of vertices must be provided"));
|
|
||||||
|
|
||||||
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 ||
|
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 )
|
targetVertex2.ShapeType() != TopAbs_VERTEX )
|
||||||
throw SALOME_Exception(LOCALIZED("Wrong shape type"));
|
throw SALOME_Exception(LOCALIZED("Wrong shape type"));
|
||||||
}
|
|
||||||
|
|
||||||
if ( !_sourceVertex1.IsSame( sourceVertex1 ) ||
|
if ( !_sourceVertex1.IsSame( sourceVertex1 ) ||
|
||||||
!_sourceVertex2.IsSame( sourceVertex2 ) ||
|
!_sourceVertex2.IsSame( sourceVertex2 ) ||
|
||||||
|
Loading…
Reference in New Issue
Block a user