cesium
Version:
CesiumJS is a JavaScript library for creating 3D globes and 2D maps in a web browser without a plugin.
48 lines (42 loc) • 1.19 kB
JavaScript
import defined from "../Core/defined.js";
import CallbackProperty from "./CallbackProperty.js";
import GeometryUpdater from "./GeometryUpdater.js";
import TerrainOffsetProperty from "./TerrainOffsetProperty.js";
function heightReferenceOnEntityPropertyChanged(
entity,
propertyName,
newValue,
oldValue
) {
GeometryUpdater.prototype._onEntityPropertyChanged.call(
this,
entity,
propertyName,
newValue,
oldValue
);
if (this._observedPropertyNames.indexOf(propertyName) === -1) {
return;
}
var geometry = this._entity[this._geometryPropertyName];
if (!defined(geometry)) {
return;
}
if (defined(this._terrainOffsetProperty)) {
this._terrainOffsetProperty.destroy();
this._terrainOffsetProperty = undefined;
}
var heightReferenceProperty = geometry.heightReference;
if (defined(heightReferenceProperty)) {
var centerPosition = new CallbackProperty(
this._computeCenter.bind(this),
!this._dynamic
);
this._terrainOffsetProperty = new TerrainOffsetProperty(
this._scene,
centerPosition,
heightReferenceProperty
);
}
}
export default heightReferenceOnEntityPropertyChanged;