# CallbackPositionProperty

#### new Cesium.CallbackPositionProperty(callback, isConstant, referenceFrame)
engine/Source/DataSources/CallbackPositionProperty.js 20

A `PositionProperty` whose value is lazily evaluated by a callback function.

Name | Type | Default | Description
--- | --- | --- | ---
`callback` | CallbackPositionProperty.Callback |  | The function to be called when the position property is evaluated.
`isConstant` | boolean |  | `true` when the callback function returns the same value every time, `false` if the value will change.
`referenceFrame` | ReferenceFrame | `ReferenceFrame.FIXED` | optional The reference frame in which the position is defined.

##### Demo:

- Cesium Sandcastle Callback Position Property Demo

### Members

#### readonly definitionChanged : Event
engine/Source/DataSources/CallbackPositionProperty.js 50

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.

#### readonly isConstant : boolean
engine/Source/DataSources/CallbackPositionProperty.js 36

Gets a value indicating if this property is constant.

#### referenceFrame : ReferenceFrame
engine/Source/DataSources/CallbackPositionProperty.js 61

Gets the reference frame in which the position is defined.

Default Value: `ReferenceFrame.FIXED;`

### Methods

#### equals(other) → boolean
engine/Source/DataSources/CallbackPositionProperty.js 154

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.

#### getValue(time, result) → Cartesian3|undefined
engine/Source/DataSources/CallbackPositionProperty.js 77

Gets the value of the property at the provided time in the fixed frame.

Name | Type | Default | Description
--- | --- | --- | ---
`time` | JulianDate | `JulianDate.now()` | optional The time for which to retrieve the value. If omitted, the current system time is used.
`result` | Cartesian3 |  | 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.

#### getValueInReferenceFrame(time, referenceFrame, result) → Cartesian3|undefined
engine/Source/DataSources/CallbackPositionProperty.js 122

Gets the value of the property at the provided time and in the provided reference frame.

Name | Type | Description
--- | --- | ---
`time` | JulianDate | The time for which to retrieve the value.
`referenceFrame` | ReferenceFrame | The desired referenceFrame of the result.
`result` | Cartesian3 | 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.

#### setCallback(callback, isConstant)
engine/Source/DataSources/CallbackPositionProperty.js 90

Sets the callback to be used.

Name | Type | Description
--- | --- | ---
`callback` | CallbackPositionProperty.Callback | The function to be called when the property is evaluated.
`isConstant` | boolean | `true` when the callback function returns the same value every time, `false` if the value will change.

### Type Definitions

#### Cesium.CallbackPositionProperty.Callback(time, result) → Cartesian3|undefined
engine/Source/DataSources/CallbackPositionProperty.js 164

A function that returns the value of the position property.

Name | Type | Default | Description
--- | --- | --- | ---
`time` | JulianDate | `JulianDate.now()` | optional The time for which to retrieve the value. If omitted, the current system time is used.
`result` | Cartesian3 |  | optional The object to store the value into. If omitted, the function must create and return a new instance.

##### Returns:

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

Need help? The fastest way to get answers is from the community and team on the Cesium Forum.