A position property backed by a WASM propagator plugin.
Extends the SampledPositionProperty interface so that PathVisualizer
can detect it via `instanceof SampledPositionProperty` and use
advanced adaptive sampling (true anomaly stepping, epoch hypersampling).
| Name | Type | Description | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
propagatorPlugin |
object | string | number |
The initialized propagator plugin, or a propagator name/id from Propagators. |
||||||||
entityIndex |
number | The entity index within the propagator. | ||||||||
options |
object |
optional
Options.
|
Example:
const propagator = new Cesium.PropagatorPlugin(plugin);
await propagator.initFromOMM(ommArray);
const position = new Cesium.PropagatedPositionProperty(propagator, 0);
entity.position = position;
Members
Coverage end in Julian Days.
Coverage start in Julian Days.
The entity index within the propagator.
Orbital period in seconds.
The propagator plugin backing this property.
Velocity property using native WASM velocity output.
SGP4 computes position and velocity in a single call — the velocity
is cached from the most recent propagation. No extra WASM calls needed.
The WASM entity handle for shared-buffer mode.
When set, getValueInReferenceFrame reads directly from
the wasm-engine HEAPF64 position buffer instead of calling
the propagator.
Methods
Get a registered propagator by name or id.
| Name | Type | Description |
|---|---|---|
nameOrId |
string | number | Registry key or id (e.g. "sgp4", 1). |
Returns:
The propagator instance, or undefined if not registered.
Get all registered propagators as a name→instance map.
Returns:
Shallow copy of the registry.
Register a propagator plugin by name.
Plugins with `type === "Propagator"` can be registered here so that
any consumer can discover and swap backends without importing plugins directly.
| Name | Type | Description |
|---|---|---|
name |
string | Registry key (e.g. "sgp4", "hpop"). |
propagator |
object | Propagator instance (must have propagate, propagatePath, etc.). |
id |
number | optional Optional enum id. If omitted, uses existing id or auto-allocates from 256+. |
Unregister a propagator by name or id.
| Name | Type | Description |
|---|---|---|
nameOrId |
string | number | Registry key or id. |
Add a single OMM to this entity's multi-OMM map.
Delegates to the propagator's addOMM method.
| Name | Type | Description |
|---|---|---|
ommRecord |
Object | OMM JSON object (SpaceDataStandards format). |
Returns:
Epoch JD on success, -1 on error.
Clear all maneuver records and destroy transient backend sources.
Compares this property to the provided property.
| Name | Type | Description |
|---|---|---|
other |
Property | optional The other property. |
Returns:
True if the properties are equal.
Returns default lead/trail times for path visualization, computed from
this property's orbital period and eccentricity.
Returns:
Times in seconds.
Returns eccentricity-adaptive path resolution settings computed from
this property's orbital elements. The returned object can be passed
directly as `entity.path.resolution`.
Returns:
Resolution settings object.
Get a sorted copy of the current maneuver records.
Returns:
Maneuver records.
Get propagation mode for this entity.
Returns:
0=nearest_epoch, 1=interpolated_epoch.
getValue(time, result) → Cartesian3|undefined
Gets the value of the property at the provided time in the FIXED (ECEF)
frame. This matches the upstream SampledPositionProperty contract where
getValue always returns FIXED regardless of this.referenceFrame.
The referenceFrame property only affects getValueInReferenceFrame(),
which PathVisualizer uses for sampling orbit paths in ICRF.
| Name | Type | Description |
|---|---|---|
time |
JulianDate | The time for which to retrieve the value. |
result |
Cartesian3 | optional The object to store the value into. |
Returns:
The position in FIXED frame, or undefined.
getValueInReferenceFrame(time, referenceFrame, result) → Cartesian3|undefined
Gets the value of the property at the provided time in the provided reference frame.
| Name | Type | Description |
|---|---|---|
time |
JulianDate | The time for which to retrieve the value. |
referenceFrame |
ReferenceFrame | The desired reference frame of the result. |
result |
Cartesian3 | optional The object to store the value into. |
Returns:
The position, or undefined if not available.
List all OMM epoch JDs for this entity, sorted chronologically.
Returns:
Array of epoch Julian Dates.
propagateAt(time, result) → Cartesian3|undefined
Force a direct propagator call, bypassing the shared buffer.
Used by EntityView for camera tracking velocity computation, where we
need positions at arbitrary times (not just the current frame time).
| Name | Type | Description |
|---|---|---|
time |
JulianDate | The time for which to propagate. |
result |
Cartesian3 | optional The object to store the value into. |
Returns:
The position in FIXED frame, or undefined.
Remove a single OMM by its epoch JD.
| Name | Type | Description |
|---|---|---|
epochJD |
number | Julian Date of the OMM to remove. |
Returns:
0 on success, -1 on error.
Batch-sample the orbital path in a single WASM call.
When adaptive settings are provided (samplesPerPeriod, method, etc.),
uses WASM-side true anomaly stepping with epoch hypersampling.
Otherwise falls back to uniform time-step sampling.
All orbital mechanics (eccentricity vector, true anomaly stepping,
TEME→ECEF conversion) are computed in WASM to minimize JS↔WASM
boundary crossings.
| Name | Type | Description |
|---|---|---|
start |
JulianDate | Start time. |
stop |
JulianDate | Stop time. |
stepOrSettings |
number | object | Time step in seconds, or adaptive settings object. |
updateTime |
JulianDate | Current clock time (for epoch hypersampling). |
referenceFrame |
ReferenceFrame | Target reference frame. |
result |
Array.<Cartesian3> | Output array (reused across frames). |
Returns:
Number of positions written, or -1 if batch not available.
Set maneuver records owned and sequenced by this property.
| Name | Type | Description | ||||||
|---|---|---|---|---|---|---|---|---|
maneuvers |
Array.<object> | Maneuvers with a time/epoch and deltaV. | ||||||
options |
object |
optional
Options.
|
Set propagation mode for this entity.
| Name | Type | Description |
|---|---|---|
mode |
number | 0=nearest_epoch, 1=interpolated_epoch. |
Returns:
0 on success, -1 on error.