MCPcopy Create free account
hub / github.com/MapServer/MapServer / UpdateEdgeIntoAEL

Method UpdateEdgeIntoAEL

renderers/agg/src/clipper.cpp:1659–1684  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1657//------------------------------------------------------------------------------
1658
1659void 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
1687bool Clipper::ProcessIntersections( const long64 topY)

Callers

nothing calls this directly

Calls 2

clipperExceptionClass · 0.85
SlopesEqualFunction · 0.85

Tested by

no test coverage detected