viewerCesiumInspectorMixin.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import { defined, DeveloperError } from "@cesium/engine";
  2. import CesiumInspector from "../CesiumInspector/CesiumInspector.js";
  3. /**
  4. * A mixin which adds the CesiumInspector widget to the Viewer widget.
  5. * Rather than being called directly, this function is normally passed as
  6. * a parameter to {@link Viewer#extend}, as shown in the example below.
  7. * @function
  8. *
  9. * @param {Viewer} viewer The viewer instance.
  10. *
  11. * @exception {DeveloperError} viewer is required.
  12. *
  13. * @demo {@link https://sandcastle.cesium.com/index.html?src=Cesium%20Inspector.html|Cesium Sandcastle Cesium Inspector Demo}
  14. *
  15. * @example
  16. * const viewer = new Cesium.Viewer('cesiumContainer');
  17. * viewer.extend(Cesium.viewerCesiumInspectorMixin);
  18. */
  19. function viewerCesiumInspectorMixin(viewer) {
  20. //>>includeStart('debug', pragmas.debug);
  21. if (!defined(viewer)) {
  22. throw new DeveloperError("viewer is required.");
  23. }
  24. //>>includeEnd('debug');
  25. const cesiumInspectorContainer = document.createElement("div");
  26. cesiumInspectorContainer.className = "cesium-viewer-cesiumInspectorContainer";
  27. viewer.container.appendChild(cesiumInspectorContainer);
  28. const cesiumInspector = new CesiumInspector(
  29. cesiumInspectorContainer,
  30. viewer.scene
  31. );
  32. Object.defineProperties(viewer, {
  33. cesiumInspector: {
  34. get: function () {
  35. return cesiumInspector;
  36. },
  37. },
  38. });
  39. }
  40. export default viewerCesiumInspectorMixin;