1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- import { defined, DeveloperError } from "@cesium/engine";
- import knockout from "../ThirdParty/knockout.js";
- import createCommand from "../createCommand.js";
- /**
- * The view model for {@link HomeButton}.
- * @alias HomeButtonViewModel
- * @constructor
- *
- * @param {Scene} scene The scene instance to use.
- * @param {number} [duration] The duration of the camera flight in seconds.
- */
- function HomeButtonViewModel(scene, duration) {
- //>>includeStart('debug', pragmas.debug);
- if (!defined(scene)) {
- throw new DeveloperError("scene is required.");
- }
- //>>includeEnd('debug');
- this._scene = scene;
- this._duration = duration;
- const that = this;
- this._command = createCommand(function () {
- that._scene.camera.flyHome(that._duration);
- });
- /**
- * Gets or sets the tooltip. This property is observable.
- *
- * @type {string}
- */
- this.tooltip = "View Home";
- knockout.track(this, ["tooltip"]);
- }
- Object.defineProperties(HomeButtonViewModel.prototype, {
- /**
- * Gets the scene to control.
- * @memberof HomeButtonViewModel.prototype
- *
- * @type {Scene}
- */
- scene: {
- get: function () {
- return this._scene;
- },
- },
- /**
- * Gets the Command that is executed when the button is clicked.
- * @memberof HomeButtonViewModel.prototype
- *
- * @type {Command}
- */
- command: {
- get: function () {
- return this._command;
- },
- },
- /**
- * Gets or sets the the duration of the camera flight in seconds.
- * A value of zero causes the camera to instantly switch to home view.
- * The duration will be computed based on the distance when undefined.
- * @memberof HomeButtonViewModel.prototype
- *
- * @type {number|undefined}
- */
- duration: {
- get: function () {
- return this._duration;
- },
- set: function (value) {
- //>>includeStart('debug', pragmas.debug);
- if (defined(value) && value < 0) {
- throw new DeveloperError("value must be positive.");
- }
- //>>includeEnd('debug');
- this._duration = value;
- },
- },
- });
- export default HomeButtonViewModel;
|