- const TopoDS_Edge& E = L._wire->Edge ( L._edgeInd );
- const int edgeID = L._wire->EdgeID ( L._edgeInd );
- const double edgeLen = L._wire->EdgeLength( L._edgeInd );
- Handle(Geom2d_Curve) pcurve = L._wire->Curve2d ( L._edgeInd );
+ const TopoDS_Vertex& V1 = L._wire->FirstVertex( L._edgeInd );
+ const TopoDS_Vertex& V2 = L._wire->LastVertex ( L._edgeInd );
+ const int v1ID = getMeshDS()->ShapeToIndex( V1 );
+ const int v2ID = getMeshDS()->ShapeToIndex( V2 );
+ const bool isShrinkableL = ! _noShrinkVert.count( v1ID ) && L._leftLine->_advancable;
+ const bool isShrinkableR = ! _noShrinkVert.count( v2ID ) && L._rightLine->_advancable;
+ if ( !isShrinkableL && !isShrinkableR )
+ continue;
+
+ const TopoDS_Edge& E = L._wire->Edge ( L._edgeInd );
+ const int edgeID = L._wire->EdgeID ( L._edgeInd );
+ const double edgeLen = L._wire->EdgeLength ( L._edgeInd );
+ Handle(Geom2d_Curve) pcurve = L._wire->Curve2d ( L._edgeInd );