| 1839 | //------------------------------------------------------------------------------ |
| 1840 | |
| 1841 | OutPt* Clipper::AddLocalMinPoly(TEdge *e1, TEdge *e2, const IntPoint &Pt) |
| 1842 | { |
| 1843 | OutPt* result; |
| 1844 | TEdge *e, *prevE; |
| 1845 | if (IsHorizontal(*e2) || ( e1->Dx > e2->Dx )) |
| 1846 | { |
| 1847 | result = AddOutPt(e1, Pt); |
| 1848 | e2->OutIdx = e1->OutIdx; |
| 1849 | e1->Side = esLeft; |
| 1850 | e2->Side = esRight; |
| 1851 | e = e1; |
| 1852 | if (e->PrevInAEL == e2) |
| 1853 | prevE = e2->PrevInAEL; |
| 1854 | else |
| 1855 | prevE = e->PrevInAEL; |
| 1856 | } else |
| 1857 | { |
| 1858 | result = AddOutPt(e2, Pt); |
| 1859 | e1->OutIdx = e2->OutIdx; |
| 1860 | e1->Side = esRight; |
| 1861 | e2->Side = esLeft; |
| 1862 | e = e2; |
| 1863 | if (e->PrevInAEL == e1) |
| 1864 | prevE = e1->PrevInAEL; |
| 1865 | else |
| 1866 | prevE = e->PrevInAEL; |
| 1867 | } |
| 1868 | |
| 1869 | if (prevE && prevE->OutIdx >= 0 && prevE->Top.Y < Pt.Y && e->Top.Y < Pt.Y) |
| 1870 | { |
| 1871 | cInt xPrev = TopX(*prevE, Pt.Y); |
| 1872 | cInt xE = TopX(*e, Pt.Y); |
| 1873 | if (xPrev == xE && (e->WindDelta != 0) && (prevE->WindDelta != 0) && |
| 1874 | SlopesEqual(IntPoint(xPrev, Pt.Y), prevE->Top, IntPoint(xE, Pt.Y), e->Top, m_UseFullRange)) |
| 1875 | { |
| 1876 | OutPt* outPt = AddOutPt(prevE, Pt); |
| 1877 | AddJoin(result, outPt, e->Top); |
| 1878 | } |
| 1879 | } |
| 1880 | return result; |
| 1881 | } |
| 1882 | //------------------------------------------------------------------------------ |
| 1883 | |
| 1884 | void Clipper::AddLocalMaxPoly(TEdge *e1, TEdge *e2, const IntPoint &Pt) |
nothing calls this directly
no test coverage detected