- TopoDS_Vertex vn;
- if (eNext.Orientation() <= TopAbs_REVERSED) // FORWARD || REVERSED
- vn = forward ? TopExp::FirstVertex(eNext,true) : TopExp::LastVertex(eNext,true);
- else {
- TopoDS_Iterator vIt (eNext);
- if (forward)
- vn = TopoDS::Vertex(vIt.Value()); // first
- else if (vIt.More())
- for (; vIt.More(); vIt.Next())
- vn = TopoDS::Vertex(vIt.Value()); // last
- }
-
+ if (eNext.Orientation() > TopAbs_REVERSED) // INTERNAL
+ eNext.Orientation( TopAbs_FORWARD );
+ TopoDS_Vertex vn =
+ forward ? TopExp::FirstVertex(eNext,true) : TopExp::LastVertex(eNext,true);