Skip to content

KBE3D / KBCore / Cesium / SampledProperty

类: SampledProperty

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

Examples

ts
//Create a linearly interpolated Cartesian2
const 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
const result = property.getValue(Cesium.JulianDate.fromIso8601('2012-08-01T12:00:00.00Z'));
ts
//Create a simple numeric SampledProperty that uses third degree Hermite Polynomial Approximation
const 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
const result = property.getValue(Cesium.JulianDate.fromIso8601('2012-08-01T00:02:34.00Z'));

参数

The type of property.

参数

When supplied, indicates that samples will contain derivative information of the specified types.

属性

isConstant

readonly isConstant: 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.


definitionChanged

readonly definitionChanged: 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.


type

type: any

Gets the type of property.


derivativeTypes

derivativeTypes: Packable[]

Gets the derivative types used by this property.


interpolationDegree

interpolationDegree: number

Gets the degree of interpolation to perform when retrieving a value.


interpolationAlgorithm

interpolationAlgorithm: InterpolationAlgorithm

Gets the interpolation algorithm to use when retrieving a value.


forwardExtrapolationType

forwardExtrapolationType: ExtrapolationType

Gets or sets the type of extrapolation to perform when a value is requested at a time after any available samples.


forwardExtrapolationDuration

forwardExtrapolationDuration: number

Gets or sets the amount of time to extrapolate forward before the property becomes undefined. A value of 0 will extrapolate forever.


backwardExtrapolationType

backwardExtrapolationType: ExtrapolationType

Gets or sets the type of extrapolation to perform when a value is requested at a time before any available samples.


backwardExtrapolationDuration

backwardExtrapolationDuration: number

Gets or sets the amount of time to extrapolate backward before the property becomes undefined. A value of 0 will extrapolate forever.

方法

getValue()

getValue(time?: JulianDate, result?: any): any

Gets the value of the property at the provided time.

参数

time?

JulianDate

The time for which to retrieve the value. If omitted, the current system time is used.

result?

any

The object to store the value into, if omitted, a new instance is created and returned.

返回

any

The modified result parameter or a new instance if the result parameter was not supplied.


setInterpolationOptions()

setInterpolationOptions(options?: { interpolationAlgorithm?: InterpolationAlgorithm; interpolationDegree?: number; }): void

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

参数

options?

Object with the following properties:

interpolationAlgorithm?

InterpolationAlgorithm

The new interpolation algorithm. If undefined, the existing property will be unchanged.

interpolationDegree?

number

The new interpolation degree. If undefined, the existing property will be unchanged.

返回

void


addSample()

addSample(time: JulianDate, value: Packable, derivatives?: Packable[]): void

Adds a new sample.

参数

time

JulianDate

The sample time.

value

Packable

The value at the provided time.

derivatives?

Packable[]

The array of derivatives at the provided time.

返回

void


addSamples()

addSamples(times: JulianDate[], values: Packable[], derivativeValues?: any[][]): void

Adds an array of samples.

参数

times

JulianDate[]

An array of JulianDate instances where each index is a sample time.

values

Packable[]

The array of values, where each value corresponds to the provided times index.

derivativeValues?

any[][]

An array where each item is the array of derivatives at the equivalent time index.

返回

void


getSample()

getSample(index: number): JulianDate | undefined

Retrieves the time of the provided sample associated with the index. A negative index accesses the list of samples in reverse order.

参数

index

number

The index of samples list.

返回

JulianDate | undefined

The JulianDate time of the sample, or undefined if failed.


addSamplesPackedArray()

addSamplesPackedArray(packedSamples: number[], epoch?: JulianDate): void

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.

参数

packedSamples

number[]

The array of packed samples.

epoch?

JulianDate

If any of the dates in packedSamples are numbers, they are considered an offset from this epoch, in seconds.

返回

void


removeSample()

removeSample(time: JulianDate): boolean

Removes a sample at the given time, if present.

参数

time

JulianDate

The sample time.

返回

boolean

true if a sample at time was removed, false otherwise.


removeSamples()

removeSamples(time: TimeInterval): void

Removes all samples for the given time interval.

参数

time

TimeInterval

The time interval for which to remove all samples.

返回

void


equals()

equals(other?: Property): boolean

Compares this property to the provided property and returns <code>true</code> if they are equal, <code>false</code> otherwise.

参数

other?

Property

The other property.

返回

boolean

true if left and right are equal, false otherwise.

构造函数

构造函数

new SampledProperty(type: number | Packable, derivativeTypes?: Packable[]): SampledProperty

参数

type

number | Packable

derivativeTypes?

Packable[]

返回

SampledProperty

KBE3D @3.0.0 Copyright © 2024-present KBE3D