heightReferenceOnEntityPropertyChanged.js 1.2 KB

1234567891011121314151617181920212223242526272829
  1. import defined from '../Core/defined.js';
  2. import CallbackProperty from './CallbackProperty.js';
  3. import GeometryUpdater from './GeometryUpdater.js';
  4. import TerrainOffsetProperty from './TerrainOffsetProperty.js';
  5. function heightReferenceOnEntityPropertyChanged(entity, propertyName, newValue, oldValue) {
  6. GeometryUpdater.prototype._onEntityPropertyChanged.call(this, entity, propertyName, newValue, oldValue);
  7. if (this._observedPropertyNames.indexOf(propertyName) === -1) {
  8. return;
  9. }
  10. var geometry = this._entity[this._geometryPropertyName];
  11. if (!defined(geometry)) {
  12. return;
  13. }
  14. if (defined(this._terrainOffsetProperty)) {
  15. this._terrainOffsetProperty.destroy();
  16. this._terrainOffsetProperty = undefined;
  17. }
  18. var heightReferenceProperty = geometry.heightReference;
  19. if (defined(heightReferenceProperty)) {
  20. var centerPosition = new CallbackProperty(this._computeCenter.bind(this), !this._dynamic);
  21. this._terrainOffsetProperty = new TerrainOffsetProperty(this._scene, centerPosition, heightReferenceProperty);
  22. }
  23. }
  24. export default heightReferenceOnEntityPropertyChanged;