function KmlTour(name, id) {
  /**
   * Id of kml gx:Tour entry
   * @type {string}
   */
  this.id = id;
  /**
   * Tour name
   * @type {string}
   */
  this.name = name;
  /**
   * Index of current entry from playlist
   * @type {number}
   */
  this.playlistIndex = 0;
  /**
   * Array of playlist entries
   * @type {Array}
   */
  this.playlist = [];
  /**
   * Event will be called when tour starts to play,
   * before any playlist entry starts to play.
   * @type Event
   */
  this.tourStart = new Event();
  /**
   * Event will be called when all playlist entries are
   * played, or tour playback being canceled.
   *
   * If tour playback was terminated, event callback will
   * be called with terminated=true parameter.
   * @type Event
   */
  this.tourEnd = new Event();
  /**
   * Event will be called when entry from playlist starts to play.
   *
   * Event callback will be called with curent entry as first parameter.
   * @type Event
   */
  this.entryStart = new Event();
  /**
   * Event will be called when entry from playlist ends to play.
   *
   * Event callback will be called with following parameters:
   * 1. entry - entry
   * 2. terminated - true if playback was terminated by calling {@link KmlTour#stop}
   * @type Event
   */
  this.entryEnd = new Event();

  this._activeEntries = [];
}
Describes a KmlTour, which uses KmlTourFlyTo, and KmlTourWait to
guide the camera to a specified destinations on given time intervals.

@alias KmlTour
@constructor

@param {string} name name parsed from KML
@param {string} id id parsed from KML
@param {Array} playlist array with KmlTourFlyTos and KmlTourWaits

@see KmlTourFlyTo
@see KmlTourWait

@demo {@link https://sandcastle.cesium.com/?src=KML%20Tours.html|KML Tours}