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; }
//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; }