+ const int nbEdges = nbEInW1.front();
+ if ( OK && nbEdges == 2 )
+ {
+ // if a wire includes 2 edges, it's impossible to associate them using
+ // topological information only. Try to use length of edges for association.
+ double l1[2], l2[2];
+ edgeIt = edges1.begin();
+ l1[0] = SMESH_Algo::EdgeLength( *edgeIt++ );
+ l1[1] = SMESH_Algo::EdgeLength( *edgeIt++ );
+ if ( Abs( l1[0] - l1[1] ) > 0.1 * Max( l1[0], l1[1] ) )
+ {
+ edgeIt = edges2.begin();
+ l2[0] = SMESH_Algo::EdgeLength( *edgeIt++ );
+ l2[1] = SMESH_Algo::EdgeLength( *edgeIt++ );
+ if (( l1[0] < l1[1] ) != ( l2[0] < l2[1] ))
+ {
+ Reverse( edges2, nbEdges );
+ }
+ }
+ }
+