viewerCesiumInspectorMixin.js 1.4 KB

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