@Override
 public void addScenarioActor(TimelineScenarioActor actor) {
   super.addScenarioActor(actor);
   if (this.lastActor != null) {
     super.addDependency(actor, this.lastActor);
   }
   this.lastActor = actor;
 }
    public void rendezvous() {
      // make all actors added since last rendezvous to wait for
      // all actors added prior to last rendezvous
      if (this.addedPriorToLastRendezvous.size() > 0) {
        for (TimelineScenarioActor sinceLast : this.addedSinceLastRendezvous) {
          for (TimelineScenarioActor beforeLast : this.addedPriorToLastRendezvous) {
            super.addDependency(sinceLast, beforeLast);
          }
        }
      }

      this.addedPriorToLastRendezvous.clear();
      this.addedPriorToLastRendezvous.addAll(this.addedSinceLastRendezvous);
      this.addedSinceLastRendezvous.clear();
    }
 @Override
 public void playLoop() {
   // add last implicit rendezvous
   this.rendezvous();
   super.playLoop();
 }
 @Override
 public void addScenarioActor(TimelineScenarioActor actor) {
   super.addScenarioActor(actor);
   this.addedSinceLastRendezvous.add(actor);
 }