Clock - Cesium Documentation

# Clock

#### new Clock(options)

  A simple clock for keeping track of simulated time.

  Name | Type | Description
  --- | --- | ---

  `options`

  Object

  Object with the following properties:

  Name | Type | Default | Description
  --- | --- | --- | ---
  `startTime` | JulianDate |  | optional The start time of the clock.
  `stopTime` | JulianDate |  | optional The stop time of the clock.
  `currentTime` | JulianDate |  | optional The current time.
  `multiplier` | Number | `1.0` | optional Determines how much time advances when tick is called, negative values allow for advancing backwards.
  `clockStep` | ClockStep | `ClockStep.SYSTEM_CLOCK_MULTIPLIER` | optional Determines if calls to `tick` are frame dependent or system clock dependent.
  `clockRange` | ClockRange | `ClockRange.UNBOUNDED` | optional Determines how the clock should behave when `startTime` or `stopTime` is reached.
  `canAnimate` | Boolean | `true` | optional Indicates whether tick can advance time. This could be false if data is being buffered, for example. The clock will only tick when both `canAnimate` and `shouldAnimate` are true.
  `shouldAnimate` | Boolean | `true` | optional Indicates whether tick should attempt to advance time. The clock will only tick when both `canAnimate` and `shouldAnimate` are true.

  ##### Throws:

  - DeveloperError : startTime must come before stopTime.

  ##### Example:

      // Create a clock that loops on Christmas day 2013 and runs in real-time.
      var clock = new Cesium.Clock({
         startTime : Cesium.JulianDate.fromIso8601("2013-12-25"),
         currentTime : Cesium.JulianDate.fromIso8601("2013-12-25"),
         stopTime : Cesium.JulianDate.fromIso8601("2013-12-26"),
         clockRange : Cesium.ClockRange.LOOP_STOP,
         clockStep : Cesium.ClockStep.SYSTEM_CLOCK_MULTIPLIER
      });

  ##### See:

  - ClockStep
  - ClockRange
  - JulianDate
  Source: Core/Clock.js, line 54

### Members

#### canAnimate :Boolean

  Indicates whether tick can advance time. This could be false if data is being buffered, for example. The clock will only tick when both `canAnimate` and `shouldAnimate` are true.
  Default Value: `true`
  Source: Core/Clock.js, line 141

#### clockRange :ClockRange

  Determines how the clock should behave when `startTime` or `stopTime` is reached.
  Default Value: ``ClockRange.UNBOUNDED``
  Source: Core/Clock.js, line 133

#### clockStep :ClockStep

  Determines if calls to `tick` are frame dependent or system clock dependent.
  Default Value: ``ClockStep.SYSTEM_CLOCK_MULTIPLIER``
  Source: Core/Clock.js, line 126

#### currentTime :JulianDate

  The current time.
  Source: Core/Clock.js, line 109

#### multiplier :Number

  Determines how much time advances when tick is called, negative values allow for advancing backwards. If `clockStep` is set to ClockStep.TICK_DEPENDENT this is the number of seconds to advance. If `clockStep` is set to ClockStep.SYSTEM_CLOCK_MULTIPLIER this value is multiplied by the elapsed system time since the last call to tick.
  Default Value: `1.0`
  Source: Core/Clock.js, line 119

#### onTick

  An `Event` that is fired whenever `tick`.
  Source: Core/Clock.js, line 154

#### shouldAnimate :Boolean

  Indicates whether tick should attempt to advance time. The clock will only tick when both `canAnimate` and `shouldAnimate` are true.
  Default Value: `true`
  Source: Core/Clock.js, line 149

#### startTime :JulianDate

  The start time of the clock.
  Source: Core/Clock.js, line 97

#### stopTime :JulianDate

  The stop time of the clock.
  Source: Core/Clock.js, line 103

### Methods

#### tick() → JulianDate

  Advances the clock from the currentTime based on the current configuration options. tick should be called every frame, regardless of whether animation is taking place or not. To control animation, use the `shouldAnimate` property.

  ##### Returns:

  The new value of the `currentTime` property.
  Source: Core/Clock.js, line 166