示例#1
0
文件: edge.cpp 项目: gianpaj/Sibelia
	bool BlockFinder::Edge::Overlap(const Edge & edge) const
	{
		size_t a1 = this->GetOriginalPosition();
		size_t b1 = this->GetOriginalPosition() + this->GetOriginalLength();
		size_t a2 = edge.GetOriginalPosition();
		size_t b2 = edge.GetOriginalPosition() + edge.GetOriginalLength();
		size_t overlap = 0;
		if(a1 >= a2 && a1 <= b2)
		{
			overlap = std::min(b1, b2) - a1;
		}

		if(a2 >= a1 && a2 <= b1)
		{
			overlap = std::min(b1, b2) - a2;
		}

		return edge.chr == chr && overlap > 0;
	}
示例#2
0
文件: edge.cpp 项目: gianpaj/Sibelia
	bool BlockFinder::EdgeEmpty(const Edge & a, size_t k)
	{
		return a.GetOriginalLength() < k;
	}