getNodeAngularSpan method
Implementation
({double start, double end}) getNodeAngularSpan(Node node) {
List<Node> ancestors = [node];
Node? parent = _currentState.parentOf(node);
while (parent != null && !parent.isRoot) {
ancestors.insert(0, parent);
parent = _currentState.parentOf(parent);
}
/// start from Root, it has 2 * pi span
double startAngle = _currentState.radialAngleStart;
double endAngle = _currentState.radialAngleStart + 2 * pi;
for (int i = 0; i < ancestors.length; i++) {
final ancestor = ancestors[i];
if (ancestor.isRoot) {
continue;
}
final ancestorSpan = _getNodeAngularPanWithinParent(
ancestor,
parentStart: startAngle,
parentEnd: endAngle,
);
startAngle = ancestorSpan.start;
endAngle = ancestorSpan.end;
}
return (start: startAngle, end: endAngle);
}