SampledProperty - Cesium Documentation

# SampledProperty

#### new SampledProperty(type, derivativeTypes)

  A `Property` whose value is interpolated for a given time from the provided set of samples and specified interpolation algorithm and degree.

  Name | Type | Description
  --- | --- | ---
  `type` | Number | Packable | The type of property.
  `derivativeTypes` | Array.<Packable> | optional When supplied, indicates that samples will contain derivative information of the specified types.

  ##### Examples:

      //Create a linearly interpolated Cartesian2
      var property = new Cesium.SampledProperty(Cesium.Cartesian2);

      //Populate it with data
      property.addSample(Cesium.JulianDate.fromIso8601(`2012-08-01T00:00:00.00Z`), new Cesium.Cartesian2(0, 0));
      property.addSample(Cesium.JulianDate.fromIso8601(`2012-08-02T00:00:00.00Z`), new Cesium.Cartesian2(4, 7));

      //Retrieve an interpolated value
      var result = property.getValue(Cesium.JulianDate.fromIso8601(`2012-08-01T12:00:00.00Z`));

      //Create a simple numeric SampledProperty that uses third degree Hermite Polynomial Approximation
      var property = new Cesium.SampledProperty(Number);
      property.setInterpolationOptions({
          interpolationDegree : 3,
          interpolationAlgorithm : Cesium.HermitePolynomialApproximation
      });

      //Populate it with data
      property.addSample(Cesium.JulianDate.fromIso8601(`2012-08-01T00:00:00.00Z`), 1.0);
      property.addSample(Cesium.JulianDate.fromIso8601(`2012-08-01T00:01:00.00Z`), 6.0);
      property.addSample(Cesium.JulianDate.fromIso8601(`2012-08-01T00:02:00.00Z`), 12.0);
      property.addSample(Cesium.JulianDate.fromIso8601(`2012-08-01T00:03:30.00Z`), 5.0);
      property.addSample(Cesium.JulianDate.fromIso8601(`2012-08-01T00:06:30.00Z`), 2.0);

      //Samples can be added in any order.
      property.addSample(Cesium.JulianDate.fromIso8601(`2012-08-01T00:00:30.00Z`), 6.2);

      //Retrieve an interpolated value
      var result = property.getValue(Cesium.JulianDate.fromIso8601(`2012-08-01T00:02:34.00Z`));

  ##### See:

  - SampledPositionProperty
  Source: DataSources/SampledProperty.js, line 167

### Members

#### backwardExtrapolationDuration :Number

  Gets or sets the amount of time to extrapolate backward before the property becomes undefined. A value of 0 will extrapolate forever.
  Default Value: `0`
  Source: DataSources/SampledProperty.js, line 353

#### backwardExtrapolationType :ExtrapolationType

  Gets or sets the type of extrapolation to perform when a value is requested at a time before any available samples.
  Default Value: `ExtrapolationType.NONE`
  Source: DataSources/SampledProperty.js, line 335

#### readonlydefinitionChanged :Event

  Gets the event that is raised whenever the definition of this property changes. The definition is considered to have changed if a call to getValue would return a different result for the same time.
  Source: DataSources/SampledProperty.js, line 245

#### derivativeTypes :Array.<Packable>

  Gets the derivative types used by this property.
  Source: DataSources/SampledProperty.js, line 265

#### forwardExtrapolationDuration :Number

  Gets or sets the amount of time to extrapolate forward before the property becomes undefined. A value of 0 will extrapolate forever.
  Default Value: `0`
  Source: DataSources/SampledProperty.js, line 317

#### forwardExtrapolationType :ExtrapolationType

  Gets or sets the type of extrapolation to perform when a value is requested at a time after any available samples.
  Default Value: `ExtrapolationType.NONE`
  Source: DataSources/SampledProperty.js, line 299

#### interpolationAlgorithm :InterpolationAlgorithm

  Gets the interpolation algorithm to use when retrieving a value.
  Default Value: `LinearApproximation`
  Source: DataSources/SampledProperty.js, line 287

#### interpolationDegree :Number

  Gets the degree of interpolation to perform when retrieving a value.
  Default Value: `1`
  Source: DataSources/SampledProperty.js, line 276

#### readonlyisConstant :Boolean

  Gets a value indicating if this property is constant. A property is considered constant if getValue always returns the same result for the current definition.
  Source: DataSources/SampledProperty.js, line 231

#### type :Object

  Gets the type of property.
  Source: DataSources/SampledProperty.js, line 255

### Methods

#### addSample(time, value, derivatives)

  Adds a new sample

  Name | Type | Description
  --- | --- | ---
  `time` | JulianDate | The sample time.
  `value` | Packable | The value at the provided time.
  `derivatives` | Array.<Packable> | optional The array of derivatives at the provided time.

  Source: DataSources/SampledProperty.js, line 544

#### addSamples(times, values, derivativeValues)

  Adds an array of samples

  Name | Type | Description
  --- | --- | ---
  `times` | Array.<JulianDate> | An array of JulianDate instances where each index is a sample time.
  `values` | Array.<Packable> | The array of values, where each value corresponds to the provided times index.
  `derivativeValues` | Array.<Array> | optional An array where each item is the array of derivatives at the equivalent time index.

  ##### Throws:

  - DeveloperError : times and values must be the same length.
  - DeveloperError : times and derivativeValues must be the same length.
  Source: DataSources/SampledProperty.js, line 586

#### addSamplesPackedArray(packedSamples, epoch)

  Adds samples as a single packed array where each new sample is represented as a date, followed by the packed representation of the corresponding value and derivatives.

  Name | Type | Description
  --- | --- | ---
  `packedSamples` | Array.<Number> | The array of packed samples.
  `epoch` | JulianDate | optional If any of the dates in packedSamples are numbers, they are considered an offset from this epoch, in seconds.

  Source: DataSources/SampledProperty.js, line 632

#### equals(other) → Boolean

  Compares this property to the provided property and returns `true` if they are equal, `false` otherwise.

  Name | Type | Description
  --- | --- | ---
  `other` | Property | optional The other property.

  ##### Returns:

  `true` if left and right are equal, `false` otherwise.
  Source: DataSources/SampledProperty.js, line 651

#### getValue(time, result) → Object

  Gets the value of the property at the provided time.

  Name | Type | Description
  --- | --- | ---
  `time` | JulianDate | The time for which to retrieve the value.
  `result` | Object | optional The object to store the value into, if omitted, a new instance is created and returned.

  ##### Returns:

  The modified result parameter or a new instance if the result parameter was not supplied.
  Source: DataSources/SampledProperty.js, line 373

#### setInterpolationOptions(options)

  Sets the algorithm and degree to use when interpolating a value.

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

  `options`

  Object

  optional Object with the following properties:

  Name | Type | Description
  --- | --- | ---
  `interpolationAlgorithm` | InterpolationAlgorithm | optional The new interpolation algorithm. If undefined, the existing property will be unchanged.
  `interpolationDegree` | Number | optional The new interpolation degree. If undefined, the existing property will be unchanged.

  Source: DataSources/SampledProperty.js, line 509