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

Function FixSpikes

renderers/agg/src/clipper.cpp:2116–2137  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2114//------------------------------------------------------------------------------
2115
2116PolyPt* FixSpikes(PolyPt *pp)
2117{
2118 PolyPt *pp2 = pp, *pp3;
2119 PolyPt *result = pp;
2120 do
2121 {
2122 if (SlopesEqual(pp2->prev->pt, pp2->pt, pp2->next->pt) &&
2123 ((((pp2->prev->pt.X < pp2->pt.X) == (pp2->next->pt.X < pp2->pt.X)) &&
2124 ((pp2->prev->pt.X != pp2->pt.X) || (pp2->next->pt.X != pp2->pt.X))) ||
2125 ((((pp2->prev->pt.Y < pp2->pt.Y) == (pp2->next->pt.Y < pp2->pt.Y))) &&
2126 ((pp2->prev->pt.Y != pp2->pt.Y) || (pp2->next->pt.Y != pp2->pt.Y)))))
2127 {
2128 if (pp2 == result) result = pp2->prev;
2129 pp3 = pp2->next;
2130 DeletePolyPt(pp2);
2131 pp2 = pp3;
2132 } else
2133 pp2 = pp2->next;
2134 }
2135 while (pp2 != result);
2136 return result;
2137}
2138//------------------------------------------------------------------------------
2139
2140void Clipper::JoinCommonEdges()

Callers 1

JoinCommonEdgesMethod · 0.85

Calls 2

SlopesEqualFunction · 0.85
DeletePolyPtFunction · 0.85

Tested by

no test coverage detected