Example #1
0
double SvgPrinter::getArrowSize(edge e, node v) {
	double result = 0;

	if(m_attr.has(GraphAttributes::edgeArrow) || m_attr.directed()) {
		const double minSize = (m_attr.has(GraphAttributes::edgeStyle) ? m_attr.strokeWidth(e) : 1) * 3;
		node w = e->opposite(v);
		result = std::max(minSize, (m_attr.width(v) + m_attr.height(v) + m_attr.width(w) + m_attr.height(w)) / 16.0);
	}

	return result;
}
Example #2
0
//inserts copy for original edge eOrig after adAfter
edge PlanRep::newCopy(node v, adjEntry adAfter, edge eOrig)
{
	OGDF_ASSERT(eOrig->graphOf() == &(original()))
	OGDF_ASSERT(m_eCopy[eOrig].size() == 0)
	edge e;
	if (adAfter != nullptr)
		e = Graph::newEdge(v, adAfter);
	else
	{
		node w = copy(eOrig->opposite(original(v)));
		OGDF_ASSERT(w)
		e = Graph::newEdge(v, w);
	}//else
	m_eOrig[e] = eOrig;
	m_eIterator[e] = m_eCopy[eOrig].pushBack(e);
	//set type of copy
	if (m_pGraphAttributes != nullptr)
		setCopyType(e, eOrig);

	return e;
}