Return true if the edge e is a path overlap. */
| 508 | |
| 509 | /** Return true if the edge e is a path overlap. */ |
| 510 | struct IsPathOverlap |
| 511 | { |
| 512 | IsPathOverlap(const Graph& g, const OverlapMap& pmap, const IsPositive<Graph>& pred) |
| 513 | : m_g(g) |
| 514 | , m_pmap(pmap) |
| 515 | , m_isPositive(pred) |
| 516 | {} |
| 517 | bool operator()(edge_descriptor e) const |
| 518 | { |
| 519 | bool stranded = true; |
| 520 | if (opt::ss) |
| 521 | stranded = m_isPositive(e); |
| 522 | return stranded && getOverlap(m_pmap, source(e, m_g), target(e, m_g)); |
| 523 | } |
| 524 | |
| 525 | typedef edge_descriptor argument_type; |
| 526 | typedef bool result_type; |
| 527 | |
| 528 | private: |
| 529 | const Graph& m_g; |
| 530 | const OverlapMap& m_pmap; |
| 531 | const IsPositive<Graph>& m_isPositive; |
| 532 | }; |
| 533 | |
| 534 | /** Assemble overlapping paths. */ |
| 535 | static void |
no outgoing calls
no test coverage detected