runAlgorithm<T> method

  1. @override
Map<T, Offset> runAlgorithm<T>(
  1. Map<T, NodeOffset?> nodes,
  2. Set<Edge<T>> edges,
  3. Size size
)
override

Implementation

@override
Map<T, Offset> runAlgorithm<T>(
    Map<T, NodeOffset?> nodes, Set<Edge<T>> edges, Size size) {
  var temp = 0.1 * sqrt(size.width / 2 * size.height / 2);

  //initialize nodes with random positions and convert to MutableNodePosition
  var mutableNodePositions =
      nodes.map((key, value) => _offsetToMutablePostion<T>(key, value, size));

  for (var i = 0; i < iterations; i++) {
    _calculateIteration(mutableNodePositions, edges, size, temp);
    temp *= 1.0 - i / (iterations);
  }

  return mutableNodePositions
      .map((key, value) => MapEntry(key, value.position.toOffset(size)));
}