| 1657 | //------------------------------------------------------------------------------ |
| 1658 | |
| 1659 | void Clipper::UpdateEdgeIntoAEL(TEdge *&e) |
| 1660 | { |
| 1661 | if( !e->nextInLML ) throw |
| 1662 | clipperException("UpdateEdgeIntoAEL: invalid call"); |
| 1663 | TEdge* AelPrev = e->prevInAEL; |
| 1664 | TEdge* AelNext = e->nextInAEL; |
| 1665 | e->nextInLML->outIdx = e->outIdx; |
| 1666 | if( AelPrev ) AelPrev->nextInAEL = e->nextInLML; |
| 1667 | else m_ActiveEdges = e->nextInLML; |
| 1668 | if( AelNext ) AelNext->prevInAEL = e->nextInLML; |
| 1669 | e->nextInLML->side = e->side; |
| 1670 | e->nextInLML->windDelta = e->windDelta; |
| 1671 | e->nextInLML->windCnt = e->windCnt; |
| 1672 | e->nextInLML->windCnt2 = e->windCnt2; |
| 1673 | e = e->nextInLML; |
| 1674 | e->prevInAEL = AelPrev; |
| 1675 | e->nextInAEL = AelNext; |
| 1676 | if( e->dx != horizontal ) |
| 1677 | { |
| 1678 | InsertScanbeam( e->ytop ); |
| 1679 | //if output polygons share an edge, they'll need joining later ... |
| 1680 | if (e->outIdx >= 0 && AelPrev && AelPrev->outIdx >= 0 && |
| 1681 | AelPrev->xbot == e->xcurr && SlopesEqual(*e, *AelPrev)) |
| 1682 | AddJoin(e, AelPrev); |
| 1683 | } |
| 1684 | } |
| 1685 | //------------------------------------------------------------------------------ |
| 1686 | |
| 1687 | bool Clipper::ProcessIntersections( const long64 topY) |
nothing calls this directly
no test coverage detected