| 335 | //------------------------------------------------------------------------------ |
| 336 | |
| 337 | bool GetOverlapSegment(IntPoint pt1a, IntPoint pt1b, IntPoint pt2a, |
| 338 | IntPoint pt2b, IntPoint &pt1, IntPoint &pt2) |
| 339 | { |
| 340 | //precondition: segments are colinear. |
| 341 | if ( pt1a.Y == pt1b.Y || Abs((pt1a.X - pt1b.X)/(pt1a.Y - pt1b.Y)) > 1 ) |
| 342 | { |
| 343 | if (pt1a.X > pt1b.X) SwapPoints(pt1a, pt1b); |
| 344 | if (pt2a.X > pt2b.X) SwapPoints(pt2a, pt2b); |
| 345 | if (pt1a.X > pt2a.X) pt1 = pt1a; else pt1 = pt2a; |
| 346 | if (pt1b.X < pt2b.X) pt2 = pt1b; else pt2 = pt2b; |
| 347 | return pt1.X < pt2.X; |
| 348 | } else |
| 349 | { |
| 350 | if (pt1a.Y < pt1b.Y) SwapPoints(pt1a, pt1b); |
| 351 | if (pt2a.Y < pt2b.Y) SwapPoints(pt2a, pt2b); |
| 352 | if (pt1a.Y < pt2a.Y) pt1 = pt1a; else pt1 = pt2a; |
| 353 | if (pt1b.Y > pt2b.Y) pt2 = pt1b; else pt2 = pt2b; |
| 354 | return pt1.Y > pt2.Y; |
| 355 | } |
| 356 | } |
| 357 | //------------------------------------------------------------------------------ |
| 358 | |
| 359 | PolyPt* PolygonBottom(PolyPt* pp) |
no test coverage detected