You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

48 lines
1.2 KiB
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;