deeptwins-engine-3d 0.1.10 → 0.1.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/esm/index.js CHANGED
@@ -48,7 +48,7 @@ loadCss(Cesium.buildModuleUrl('Widgets/widgets.css'));
48
48
  export var DeepTwinsEngine3D = /*#__PURE__*/_createClass(function DeepTwinsEngine3D() {
49
49
  _classCallCheck(this, DeepTwinsEngine3D);
50
50
  });
51
- _defineProperty(DeepTwinsEngine3D, "Version", "0.1.10");
51
+ _defineProperty(DeepTwinsEngine3D, "Version", "0.1.11");
52
52
  _defineProperty(DeepTwinsEngine3D, "Map", Map);
53
53
  _defineProperty(DeepTwinsEngine3D, "GroundSkyBox", GroundSkyBox);
54
54
  _defineProperty(DeepTwinsEngine3D, "RasterLayer", RasterLayer);
@@ -1,4 +1,6 @@
1
1
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2
4
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
3
5
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
4
6
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
@@ -8,6 +10,9 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
8
10
  import * as Cesium from 'deeptwins-cesium';
9
11
  import * as utils from "../tool/utils";
10
12
 
13
+ // 单机延迟
14
+ var CLICK_DELAY = 200;
15
+
11
16
  // 根据事件类型进行处理
12
17
  function dealWithMapType(type, event) {
13
18
  var _obj;
@@ -114,40 +119,55 @@ var Event = /*#__PURE__*/function () {
114
119
  value: function _subscribe(type, callback) {
115
120
  var _this = this;
116
121
  var self = this;
122
+ // 订阅器
123
+ var subscriber;
117
124
  // 如果没有注册过该类型的事件处理器,则创建一个
118
125
  if (!this._eventSubscriptions.has(type)) {
119
126
  // 注册事件
120
127
  var handler = new Cesium.ScreenSpaceEventHandler(this.getMap().scene.canvas);
121
- handler.setInputAction(function (e) {
122
- // 发布订阅
123
- _this._notifySubscribers(type, e);
124
- }, type);
128
+ // 单击特殊处理
129
+ if (type === Cesium.ScreenSpaceEventType.LEFT_CLICK) {
130
+ var lastClickTime = 0;
131
+ handler.setInputAction(function (e) {
132
+ var now = performance.now();
133
+ if (now - lastClickTime >= CLICK_DELAY) {
134
+ _this._notifySubscribers(type, e);
135
+ lastClickTime = now;
136
+ }
137
+ }, type);
138
+ } else {
139
+ handler.setInputAction(function (e) {
140
+ // 发布订阅
141
+ _this._notifySubscribers(type, e);
142
+ }, type);
143
+ }
125
144
  handler.__proto__.off = function () {
126
145
  handler.removeInputAction(type);
127
146
  };
128
147
  // 订阅器
129
- var subscriber = {
148
+ subscriber = {
130
149
  handler: handler,
131
150
  callbacks: new Set([callback])
132
151
  };
133
- subscriber.off = function () {
134
- subscriber.callbacks.delete(callback);
135
- // 如果没有订阅者了,移除处理器
136
- if (subscriber.callbacks.size === 0) {
137
- var _subscriber$handler;
138
- (_subscriber$handler = subscriber.handler) === null || _subscriber$handler === void 0 || _subscriber$handler.off();
139
- self._eventSubscriptions.delete(type);
140
- }
141
- };
142
152
  this._eventSubscriptions.set(type, subscriber);
143
- return subscriber;
144
153
  } else {
145
154
  // 订阅器
146
- var _subscriber = this._eventSubscriptions.get(type);
155
+ subscriber = this._eventSubscriptions.get(type);
147
156
  // 订阅列表
148
- _subscriber.callbacks.add(callback);
149
- return _subscriber;
157
+ subscriber.callbacks.add(callback);
150
158
  }
159
+ var off = function off() {
160
+ subscriber.callbacks.delete(callback);
161
+ if (subscriber.callbacks.size === 0) {
162
+ var _subscriber$handler;
163
+ // 如果没有订阅者了,移除处理器
164
+ (_subscriber$handler = subscriber.handler) === null || _subscriber$handler === void 0 || _subscriber$handler.off();
165
+ self._eventSubscriptions.delete(type);
166
+ }
167
+ };
168
+ return _objectSpread(_objectSpread({}, subscriber), {}, {
169
+ off: off
170
+ });
151
171
  }
152
172
 
153
173
  // 监听地图事件