| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 | import Cartesian3 from "./Cartesian3.js";/** * @private */const TerrainExaggeration = {};/** * Scales a height relative to an offset. * * @param {Number} height The height. * @param {Number} scale A scalar used to exaggerate the terrain. If the value is 1.0 there will be no effect. * @param {Number} relativeHeight The height relative to which terrain is exaggerated. If the value is 0.0 terrain will be exaggerated relative to the ellipsoid surface. */TerrainExaggeration.getHeight = function (height, scale, relativeHeight) {  return (height - relativeHeight) * scale + relativeHeight;};const scratchCartographic = new Cartesian3();/** * Scales a position by exaggeration. */TerrainExaggeration.getPosition = function (  position,  ellipsoid,  terrainExaggeration,  terrainExaggerationRelativeHeight,  result) {  const cartographic = ellipsoid.cartesianToCartographic(    position,    scratchCartographic  );  const newHeight = TerrainExaggeration.getHeight(    cartographic.height,    terrainExaggeration,    terrainExaggerationRelativeHeight  );  return Cartesian3.fromRadians(    cartographic.longitude,    cartographic.latitude,    newHeight,    ellipsoid,    result  );};export default TerrainExaggeration;
 |