/**
   * Compute the animation table for a connector.
   *
   * @param connector Connector.
   * @param engine Colouring engine.
   * @param cache Colouring cache.
   * @param monitor Monitor.
   * @return The compiled animation table.
   */
  public static AnimationTable computeAnimations(
      Connector connector, ColouringEngine engine, ColouringCache cache, IProgressMonitor monitor) {

    List<Colourable> elements = new ArrayList<Colourable>();
    elements.addAll(connector.getPrimitives());
    elements.addAll(connector.getNodes());

    List<Connectable> border = new ArrayList<Connectable>();
    border.addAll(connector.getForeignPrimitives());
    border.addAll(connector.getForeignNodes());

    return computeAnimations(elements, border, engine, cache, monitor);
  }