@antv/l7-map 2.21.11-beta.4 → 2.21.11-beta.6

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.
Files changed (358) hide show
  1. package/README.md +27 -6
  2. package/es/index.d.ts +3 -4
  3. package/es/index.js +2 -4
  4. package/es/map/camera.d.ts +690 -0
  5. package/es/map/camera.js +1138 -0
  6. package/{lib → es/map}/css/l7.css +41 -7
  7. package/es/map/events.d.ts +384 -0
  8. package/es/map/events.js +222 -0
  9. package/es/map/geo/edge_insets.d.ts +97 -0
  10. package/es/{geo → map/geo}/edge_insets.js +55 -33
  11. package/es/map/geo/lng_lat.d.ts +116 -0
  12. package/es/map/geo/lng_lat.js +159 -0
  13. package/es/map/geo/lng_lat_bounds.d.ts +217 -0
  14. package/es/map/geo/lng_lat_bounds.js +334 -0
  15. package/es/map/geo/mercator_coordinate.d.ts +113 -0
  16. package/es/map/geo/mercator_coordinate.js +142 -0
  17. package/es/map/geo/transform.d.ts +262 -0
  18. package/es/map/geo/transform.js +736 -0
  19. package/{lib → es/map}/handler/box_zoom.d.ts +30 -24
  20. package/es/map/handler/box_zoom.js +145 -0
  21. package/es/map/handler/click_zoom.d.ts +24 -0
  22. package/es/map/handler/click_zoom.js +47 -0
  23. package/es/map/handler/cooperative_gestures.d.ts +40 -0
  24. package/es/map/handler/cooperative_gestures.js +94 -0
  25. package/es/map/handler/drag_handler.d.ts +88 -0
  26. package/es/map/handler/drag_handler.js +89 -0
  27. package/es/map/handler/drag_move_state_manager.d.ts +30 -0
  28. package/es/map/handler/drag_move_state_manager.js +94 -0
  29. package/es/map/handler/handler_util.d.ts +3 -0
  30. package/es/{handler → map/handler}/handler_util.js +1 -2
  31. package/es/map/handler/keyboard.d.ts +88 -0
  32. package/es/map/handler/keyboard.js +197 -0
  33. package/es/map/handler/map_event.d.ts +46 -0
  34. package/es/map/handler/map_event.js +131 -0
  35. package/es/map/handler/mouse.d.ts +30 -0
  36. package/es/map/handler/mouse.js +85 -0
  37. package/es/map/handler/one_finger_touch_drag.d.ts +15 -0
  38. package/es/map/handler/one_finger_touch_drag.js +39 -0
  39. package/es/map/handler/scroll_zoom.d.ts +102 -0
  40. package/es/map/handler/scroll_zoom.js +312 -0
  41. package/es/{handler → map/handler}/shim/dblclick_zoom.d.ts +14 -10
  42. package/es/{handler → map/handler}/shim/dblclick_zoom.js +20 -16
  43. package/es/map/handler/shim/drag_pan.d.ts +79 -0
  44. package/es/map/handler/shim/drag_pan.js +77 -0
  45. package/es/{handler → map/handler}/shim/drag_rotate.d.ts +24 -16
  46. package/es/map/handler/shim/drag_rotate.js +66 -0
  47. package/es/map/handler/shim/two_fingers_touch.d.ts +74 -0
  48. package/es/map/handler/shim/two_fingers_touch.js +106 -0
  49. package/es/map/handler/tap_drag_zoom.d.ts +28 -0
  50. package/es/map/handler/tap_drag_zoom.js +92 -0
  51. package/es/map/handler/tap_recognizer.d.ts +35 -0
  52. package/es/map/handler/tap_recognizer.js +107 -0
  53. package/es/map/handler/tap_zoom.d.ts +28 -0
  54. package/es/map/handler/tap_zoom.js +87 -0
  55. package/es/map/handler/touch_pan.d.ts +40 -0
  56. package/es/map/handler/touch_pan.js +85 -0
  57. package/es/map/handler/transform-provider.d.ts +23 -0
  58. package/es/map/handler/transform-provider.js +35 -0
  59. package/es/map/handler/two_fingers_touch.d.ts +107 -0
  60. package/es/map/handler/two_fingers_touch.js +289 -0
  61. package/es/map/handler_inertia.d.ts +20 -0
  62. package/es/{handler → map}/handler_inertia.js +36 -50
  63. package/es/map/handler_manager.d.ts +154 -0
  64. package/es/map/handler_manager.js +466 -0
  65. package/es/map/map.d.ts +625 -0
  66. package/es/map/map.js +972 -0
  67. package/es/map/util/abort_error.d.ts +15 -0
  68. package/es/map/util/abort_error.js +21 -0
  69. package/es/map/util/browser.d.ts +10 -0
  70. package/es/map/util/browser.js +30 -0
  71. package/es/map/util/dom.d.ts +30 -0
  72. package/es/map/util/dom.js +105 -0
  73. package/es/map/util/evented.d.ts +75 -0
  74. package/es/map/util/evented.js +158 -0
  75. package/es/map/util/task_queue.d.ts +18 -0
  76. package/es/map/util/task_queue.js +54 -0
  77. package/es/map/util/util.d.ts +104 -0
  78. package/es/map/util/util.js +155 -0
  79. package/lib/index.d.ts +3 -4
  80. package/lib/index.js +12 -42
  81. package/lib/map/camera.d.ts +690 -0
  82. package/lib/map/camera.js +1145 -0
  83. package/{es → lib/map}/css/l7.css +41 -7
  84. package/lib/map/events.d.ts +384 -0
  85. package/lib/map/events.js +231 -0
  86. package/lib/map/geo/edge_insets.d.ts +97 -0
  87. package/lib/{geo → map/geo}/edge_insets.js +56 -35
  88. package/lib/map/geo/lng_lat.d.ts +116 -0
  89. package/lib/map/geo/lng_lat.js +166 -0
  90. package/lib/map/geo/lng_lat_bounds.d.ts +217 -0
  91. package/lib/map/geo/lng_lat_bounds.js +341 -0
  92. package/lib/map/geo/mercator_coordinate.d.ts +113 -0
  93. package/lib/map/geo/mercator_coordinate.js +157 -0
  94. package/lib/map/geo/transform.d.ts +262 -0
  95. package/lib/map/geo/transform.js +744 -0
  96. package/{es → lib/map}/handler/box_zoom.d.ts +30 -24
  97. package/lib/map/handler/box_zoom.js +153 -0
  98. package/lib/map/handler/click_zoom.d.ts +24 -0
  99. package/lib/map/handler/click_zoom.js +54 -0
  100. package/lib/map/handler/cooperative_gestures.d.ts +40 -0
  101. package/lib/map/handler/cooperative_gestures.js +101 -0
  102. package/lib/map/handler/drag_handler.d.ts +88 -0
  103. package/lib/map/handler/drag_handler.js +97 -0
  104. package/lib/map/handler/drag_move_state_manager.d.ts +30 -0
  105. package/lib/map/handler/drag_move_state_manager.js +103 -0
  106. package/lib/map/handler/handler_util.d.ts +3 -0
  107. package/lib/{handler → map/handler}/handler_util.js +1 -2
  108. package/lib/map/handler/keyboard.d.ts +88 -0
  109. package/lib/map/handler/keyboard.js +205 -0
  110. package/lib/map/handler/map_event.d.ts +46 -0
  111. package/lib/map/handler/map_event.js +140 -0
  112. package/lib/map/handler/mouse.d.ts +30 -0
  113. package/lib/map/handler/mouse.js +93 -0
  114. package/lib/map/handler/one_finger_touch_drag.d.ts +15 -0
  115. package/lib/map/handler/one_finger_touch_drag.js +47 -0
  116. package/lib/map/handler/scroll_zoom.d.ts +102 -0
  117. package/lib/map/handler/scroll_zoom.js +320 -0
  118. package/lib/{handler → map/handler}/shim/dblclick_zoom.d.ts +14 -10
  119. package/lib/{handler → map/handler}/shim/dblclick_zoom.js +21 -17
  120. package/lib/map/handler/shim/drag_pan.d.ts +79 -0
  121. package/lib/map/handler/shim/drag_pan.js +85 -0
  122. package/lib/{handler → map/handler}/shim/drag_rotate.d.ts +24 -16
  123. package/lib/map/handler/shim/drag_rotate.js +74 -0
  124. package/lib/map/handler/shim/two_fingers_touch.d.ts +74 -0
  125. package/lib/map/handler/shim/two_fingers_touch.js +114 -0
  126. package/lib/map/handler/tap_drag_zoom.d.ts +28 -0
  127. package/lib/map/handler/tap_drag_zoom.js +99 -0
  128. package/lib/map/handler/tap_recognizer.d.ts +35 -0
  129. package/lib/map/handler/tap_recognizer.js +116 -0
  130. package/lib/map/handler/tap_zoom.d.ts +28 -0
  131. package/lib/map/handler/tap_zoom.js +94 -0
  132. package/lib/map/handler/touch_pan.d.ts +40 -0
  133. package/lib/map/handler/touch_pan.js +92 -0
  134. package/lib/map/handler/transform-provider.d.ts +23 -0
  135. package/lib/map/handler/transform-provider.js +43 -0
  136. package/lib/map/handler/two_fingers_touch.d.ts +107 -0
  137. package/lib/map/handler/two_fingers_touch.js +296 -0
  138. package/lib/map/handler_inertia.d.ts +20 -0
  139. package/lib/{handler → map}/handler_inertia.js +38 -53
  140. package/lib/map/handler_manager.d.ts +154 -0
  141. package/lib/map/handler_manager.js +474 -0
  142. package/lib/map/map.d.ts +625 -0
  143. package/lib/map/map.js +979 -0
  144. package/lib/map/util/abort_error.d.ts +15 -0
  145. package/lib/map/util/abort_error.js +29 -0
  146. package/lib/map/util/browser.d.ts +10 -0
  147. package/lib/map/util/browser.js +36 -0
  148. package/lib/map/util/dom.d.ts +30 -0
  149. package/lib/map/util/dom.js +113 -0
  150. package/lib/map/util/evented.d.ts +75 -0
  151. package/lib/map/util/evented.js +167 -0
  152. package/lib/map/util/task_queue.d.ts +18 -0
  153. package/lib/map/util/task_queue.js +62 -0
  154. package/lib/map/util/util.d.ts +104 -0
  155. package/lib/map/util/util.js +171 -0
  156. package/package.json +6 -3
  157. package/es/camera.d.ts +0 -86
  158. package/es/camera.js +0 -639
  159. package/es/earthmap.d.ts +0 -69
  160. package/es/earthmap.js +0 -445
  161. package/es/geo/edge_insets.d.ts +0 -54
  162. package/es/geo/lng_lat.d.ts +0 -18
  163. package/es/geo/lng_lat.js +0 -59
  164. package/es/geo/lng_lat_bounds.d.ts +0 -25
  165. package/es/geo/lng_lat_bounds.js +0 -118
  166. package/es/geo/mercator.d.ts +0 -30
  167. package/es/geo/mercator.js +0 -72
  168. package/es/geo/point.d.ts +0 -40
  169. package/es/geo/point.js +0 -153
  170. package/es/geo/simple.d.ts +0 -30
  171. package/es/geo/simple.js +0 -75
  172. package/es/geo/transform.d.ts +0 -198
  173. package/es/geo/transform.js +0 -895
  174. package/es/handler/IHandler.d.ts +0 -34
  175. package/es/handler/IHandler.js +0 -1
  176. package/es/handler/blockable_map_event.d.ts +0 -17
  177. package/es/handler/blockable_map_event.js +0 -58
  178. package/es/handler/box_zoom.js +0 -162
  179. package/es/handler/click_zoom.d.ts +0 -16
  180. package/es/handler/click_zoom.js +0 -40
  181. package/es/handler/events/event.d.ts +0 -4
  182. package/es/handler/events/event.js +0 -12
  183. package/es/handler/events/index.d.ts +0 -4
  184. package/es/handler/events/index.js +0 -4
  185. package/es/handler/events/map_mouse_event.d.ts +0 -34
  186. package/es/handler/events/map_mouse_event.js +0 -45
  187. package/es/handler/events/map_touch_event.d.ts +0 -57
  188. package/es/handler/events/map_touch_event.js +0 -75
  189. package/es/handler/events/map_wheel_event.d.ts +0 -33
  190. package/es/handler/events/map_wheel_event.js +0 -33
  191. package/es/handler/events/render_event.d.ts +0 -6
  192. package/es/handler/events/render_event.js +0 -10
  193. package/es/handler/handler_inertia.d.ts +0 -23
  194. package/es/handler/handler_manager.d.ts +0 -61
  195. package/es/handler/handler_manager.js +0 -487
  196. package/es/handler/handler_util.d.ts +0 -4
  197. package/es/handler/keyboard.d.ts +0 -36
  198. package/es/handler/keyboard.js +0 -131
  199. package/es/handler/map_event.d.ts +0 -29
  200. package/es/handler/map_event.js +0 -89
  201. package/es/handler/mouse/index.d.ts +0 -4
  202. package/es/handler/mouse/index.js +0 -4
  203. package/es/handler/mouse/mouse_handler.d.ts +0 -22
  204. package/es/handler/mouse/mouse_handler.js +0 -99
  205. package/es/handler/mouse/mousepan_handler.d.ts +0 -10
  206. package/es/handler/mouse/mousepan_handler.js +0 -21
  207. package/es/handler/mouse/mousepitch_hander.d.ts +0 -9
  208. package/es/handler/mouse/mousepitch_hander.js +0 -24
  209. package/es/handler/mouse/mouserotate_hander.d.ts +0 -9
  210. package/es/handler/mouse/mouserotate_hander.js +0 -24
  211. package/es/handler/mouse/util.d.ts +0 -6
  212. package/es/handler/mouse/util.js +0 -12
  213. package/es/handler/scroll_zoom.d.ts +0 -93
  214. package/es/handler/scroll_zoom.js +0 -315
  215. package/es/handler/shim/drag_pan.d.ts +0 -61
  216. package/es/handler/shim/drag_pan.js +0 -75
  217. package/es/handler/shim/drag_rotate.js +0 -64
  218. package/es/handler/shim/touch_zoom_rotate.d.ts +0 -70
  219. package/es/handler/shim/touch_zoom_rotate.js +0 -104
  220. package/es/handler/tap/single_tap_recognizer.d.ts +0 -20
  221. package/es/handler/tap/single_tap_recognizer.js +0 -77
  222. package/es/handler/tap/tap_drag_zoom.d.ts +0 -22
  223. package/es/handler/tap/tap_drag_zoom.js +0 -89
  224. package/es/handler/tap/tap_recognizer.d.ts +0 -17
  225. package/es/handler/tap/tap_recognizer.js +0 -46
  226. package/es/handler/tap/tap_zoom.d.ts +0 -22
  227. package/es/handler/tap/tap_zoom.js +0 -81
  228. package/es/handler/touch/index.d.ts +0 -5
  229. package/es/handler/touch/index.js +0 -5
  230. package/es/handler/touch/touch_pan.d.ts +0 -30
  231. package/es/handler/touch/touch_pan.js +0 -91
  232. package/es/handler/touch/touch_pitch.d.ts +0 -13
  233. package/es/handler/touch/touch_pitch.js +0 -75
  234. package/es/handler/touch/touch_rotate.d.ts +0 -12
  235. package/es/handler/touch/touch_rotate.js +0 -57
  236. package/es/handler/touch/touch_zoom.d.ts +0 -12
  237. package/es/handler/touch/touch_zoom.js +0 -37
  238. package/es/handler/touch/two_touch.d.ts +0 -23
  239. package/es/handler/touch/two_touch.js +0 -98
  240. package/es/hash.d.ts +0 -14
  241. package/es/hash.js +0 -121
  242. package/es/interface.d.ts +0 -34
  243. package/es/interface.js +0 -1
  244. package/es/map.d.ts +0 -70
  245. package/es/map.js +0 -472
  246. package/es/util.d.ts +0 -25
  247. package/es/util.js +0 -70
  248. package/es/utils/Aabb.d.ts +0 -12
  249. package/es/utils/Aabb.js +0 -72
  250. package/es/utils/dom.d.ts +0 -4
  251. package/es/utils/dom.js +0 -117
  252. package/es/utils/performance.d.ts +0 -17
  253. package/es/utils/performance.js +0 -58
  254. package/es/utils/primitives.d.ts +0 -6
  255. package/es/utils/primitives.js +0 -37
  256. package/es/utils/task_queue.d.ts +0 -13
  257. package/es/utils/task_queue.js +0 -60
  258. package/lib/camera.d.ts +0 -86
  259. package/lib/camera.js +0 -648
  260. package/lib/earthmap.d.ts +0 -69
  261. package/lib/earthmap.js +0 -451
  262. package/lib/geo/edge_insets.d.ts +0 -54
  263. package/lib/geo/lng_lat.d.ts +0 -18
  264. package/lib/geo/lng_lat.js +0 -67
  265. package/lib/geo/lng_lat_bounds.d.ts +0 -25
  266. package/lib/geo/lng_lat_bounds.js +0 -126
  267. package/lib/geo/mercator.d.ts +0 -30
  268. package/lib/geo/mercator.js +0 -88
  269. package/lib/geo/point.d.ts +0 -40
  270. package/lib/geo/point.js +0 -161
  271. package/lib/geo/simple.d.ts +0 -30
  272. package/lib/geo/simple.js +0 -92
  273. package/lib/geo/transform.d.ts +0 -198
  274. package/lib/geo/transform.js +0 -906
  275. package/lib/handler/IHandler.d.ts +0 -34
  276. package/lib/handler/IHandler.js +0 -5
  277. package/lib/handler/blockable_map_event.d.ts +0 -17
  278. package/lib/handler/blockable_map_event.js +0 -66
  279. package/lib/handler/box_zoom.js +0 -168
  280. package/lib/handler/click_zoom.d.ts +0 -16
  281. package/lib/handler/click_zoom.js +0 -48
  282. package/lib/handler/events/event.d.ts +0 -4
  283. package/lib/handler/events/event.js +0 -20
  284. package/lib/handler/events/index.d.ts +0 -4
  285. package/lib/handler/events/index.js +0 -27
  286. package/lib/handler/events/map_mouse_event.d.ts +0 -34
  287. package/lib/handler/events/map_mouse_event.js +0 -53
  288. package/lib/handler/events/map_touch_event.d.ts +0 -57
  289. package/lib/handler/events/map_touch_event.js +0 -83
  290. package/lib/handler/events/map_wheel_event.d.ts +0 -33
  291. package/lib/handler/events/map_wheel_event.js +0 -41
  292. package/lib/handler/events/render_event.d.ts +0 -6
  293. package/lib/handler/events/render_event.js +0 -18
  294. package/lib/handler/handler_inertia.d.ts +0 -23
  295. package/lib/handler/handler_manager.d.ts +0 -61
  296. package/lib/handler/handler_manager.js +0 -495
  297. package/lib/handler/handler_util.d.ts +0 -4
  298. package/lib/handler/keyboard.d.ts +0 -36
  299. package/lib/handler/keyboard.js +0 -138
  300. package/lib/handler/map_event.d.ts +0 -29
  301. package/lib/handler/map_event.js +0 -97
  302. package/lib/handler/mouse/index.d.ts +0 -4
  303. package/lib/handler/mouse/index.js +0 -27
  304. package/lib/handler/mouse/mouse_handler.d.ts +0 -22
  305. package/lib/handler/mouse/mouse_handler.js +0 -107
  306. package/lib/handler/mouse/mousepan_handler.d.ts +0 -10
  307. package/lib/handler/mouse/mousepan_handler.js +0 -29
  308. package/lib/handler/mouse/mousepitch_hander.d.ts +0 -9
  309. package/lib/handler/mouse/mousepitch_hander.js +0 -32
  310. package/lib/handler/mouse/mouserotate_hander.d.ts +0 -9
  311. package/lib/handler/mouse/mouserotate_hander.js +0 -32
  312. package/lib/handler/mouse/util.d.ts +0 -6
  313. package/lib/handler/mouse/util.js +0 -19
  314. package/lib/handler/scroll_zoom.d.ts +0 -93
  315. package/lib/handler/scroll_zoom.js +0 -322
  316. package/lib/handler/shim/drag_pan.d.ts +0 -61
  317. package/lib/handler/shim/drag_pan.js +0 -83
  318. package/lib/handler/shim/drag_rotate.js +0 -72
  319. package/lib/handler/shim/touch_zoom_rotate.d.ts +0 -70
  320. package/lib/handler/shim/touch_zoom_rotate.js +0 -112
  321. package/lib/handler/tap/single_tap_recognizer.d.ts +0 -20
  322. package/lib/handler/tap/single_tap_recognizer.js +0 -86
  323. package/lib/handler/tap/tap_drag_zoom.d.ts +0 -22
  324. package/lib/handler/tap/tap_drag_zoom.js +0 -97
  325. package/lib/handler/tap/tap_recognizer.d.ts +0 -17
  326. package/lib/handler/tap/tap_recognizer.js +0 -56
  327. package/lib/handler/tap/tap_zoom.d.ts +0 -22
  328. package/lib/handler/tap/tap_zoom.js +0 -89
  329. package/lib/handler/touch/index.d.ts +0 -5
  330. package/lib/handler/touch/index.js +0 -34
  331. package/lib/handler/touch/touch_pan.d.ts +0 -30
  332. package/lib/handler/touch/touch_pan.js +0 -100
  333. package/lib/handler/touch/touch_pitch.d.ts +0 -13
  334. package/lib/handler/touch/touch_pitch.js +0 -83
  335. package/lib/handler/touch/touch_rotate.d.ts +0 -12
  336. package/lib/handler/touch/touch_rotate.js +0 -65
  337. package/lib/handler/touch/touch_zoom.d.ts +0 -12
  338. package/lib/handler/touch/touch_zoom.js +0 -45
  339. package/lib/handler/touch/two_touch.d.ts +0 -23
  340. package/lib/handler/touch/two_touch.js +0 -106
  341. package/lib/hash.d.ts +0 -14
  342. package/lib/hash.js +0 -129
  343. package/lib/interface.d.ts +0 -34
  344. package/lib/interface.js +0 -5
  345. package/lib/map.d.ts +0 -70
  346. package/lib/map.js +0 -478
  347. package/lib/util.d.ts +0 -25
  348. package/lib/util.js +0 -89
  349. package/lib/utils/Aabb.d.ts +0 -12
  350. package/lib/utils/Aabb.js +0 -80
  351. package/lib/utils/dom.d.ts +0 -4
  352. package/lib/utils/dom.js +0 -125
  353. package/lib/utils/performance.d.ts +0 -17
  354. package/lib/utils/performance.js +0 -64
  355. package/lib/utils/primitives.d.ts +0 -6
  356. package/lib/utils/primitives.js +0 -45
  357. package/lib/utils/task_queue.d.ts +0 -13
  358. package/lib/utils/task_queue.js +0 -67
package/lib/utils/Aabb.js DELETED
@@ -1,80 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = void 0;
8
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
- var _glMatrix = require("gl-matrix");
10
- class Aabb {
11
- constructor(min, max) {
12
- (0, _defineProperty2.default)(this, "min", void 0);
13
- (0, _defineProperty2.default)(this, "max", void 0);
14
- (0, _defineProperty2.default)(this, "center", void 0);
15
- this.min = min;
16
- this.max = max;
17
- this.center = _glMatrix.vec3.scale(new Float32Array(3), _glMatrix.vec3.add(new Float32Array(3), this.min, this.max), 0.5);
18
- }
19
- quadrant(index) {
20
- const split = [index % 2 === 0, index < 2];
21
- const qMin = _glMatrix.vec3.clone(this.min);
22
- const qMax = _glMatrix.vec3.clone(this.max);
23
- for (let axis = 0; axis < split.length; axis++) {
24
- qMin[axis] = split[axis] ? this.min[axis] : this.center[axis];
25
- qMax[axis] = split[axis] ? this.center[axis] : this.max[axis];
26
- }
27
- // Elevation is always constant, hence quadrant.max.z = this.max.z
28
- qMax[2] = this.max[2];
29
- return new Aabb(qMin, qMax);
30
- }
31
- distanceX(point) {
32
- const pointOnAabb = Math.max(Math.min(this.max[0], point[0]), this.min[0]);
33
- return pointOnAabb - point[0];
34
- }
35
- distanceY(point) {
36
- const pointOnAabb = Math.max(Math.min(this.max[1], point[1]), this.min[1]);
37
- return pointOnAabb - point[1];
38
- }
39
-
40
- // Performs a frustum-aabb intersection test. Returns 0 if there's no intersection,
41
- // 1 if shapes are intersecting and 2 if the aabb if fully inside the frustum.
42
- intersects(frustum) {
43
- // Execute separating axis test between two convex objects to find intersections
44
- // Each frustum plane together with 3 major axes define the separating axes
45
- // Note: test only 4 points as both min and max points have equal elevation
46
-
47
- const aabbPoints = [[this.min[0], this.min[1], 0.0, 1], [this.max[0], this.min[1], 0.0, 1], [this.max[0], this.max[1], 0.0, 1], [this.min[0], this.max[1], 0.0, 1]];
48
- let fullyInside = true;
49
- for (const plane of frustum.planes) {
50
- let pointsInside = 0;
51
- for (const i of aabbPoints) {
52
- // @ts-ignore
53
- pointsInside += _glMatrix.vec4.dot(plane, i) >= 0;
54
- }
55
- if (pointsInside === 0) {
56
- return 0;
57
- }
58
- if (pointsInside !== aabbPoints.length) {
59
- fullyInside = false;
60
- }
61
- }
62
- if (fullyInside) {
63
- return 2;
64
- }
65
- for (let axis = 0; axis < 3; axis++) {
66
- let projMin = Number.MAX_VALUE;
67
- let projMax = -Number.MAX_VALUE;
68
- for (const p of frustum.points) {
69
- const projectedPoint = p[axis] - this.min[axis];
70
- projMin = Math.min(projMin, projectedPoint);
71
- projMax = Math.max(projMax, projectedPoint);
72
- }
73
- if (projMax < 0 || projMin > this.max[axis] - this.min[axis]) {
74
- return 0;
75
- }
76
- }
77
- return 1;
78
- }
79
- }
80
- exports.default = Aabb;
@@ -1,4 +0,0 @@
1
- declare const DOM: {
2
- [key: string]: (...arg: any[]) => any;
3
- };
4
- export default DOM;
package/lib/utils/dom.js DELETED
@@ -1,125 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = void 0;
8
- var _point = _interopRequireDefault(require("../geo/point"));
9
- // @ts-ignore
10
-
11
- const DOM = {};
12
- var _default = exports.default = DOM;
13
- DOM.create = (tagName, className, container) => {
14
- const el = window.document.createElement(tagName);
15
- if (className !== undefined) {
16
- el.className = className;
17
- }
18
- if (container) {
19
- container.appendChild(el);
20
- }
21
- return el;
22
- };
23
- DOM.createNS = (namespaceURI, tagName) => {
24
- const el = window.document.createElementNS(namespaceURI, tagName);
25
- return el;
26
- };
27
- const docStyle = window.document && window.document.documentElement.style;
28
- function testProp(props) {
29
- if (!docStyle) {
30
- return props[0];
31
- }
32
- for (const i of props) {
33
- if (i in docStyle) {
34
- return i;
35
- }
36
- }
37
- return props[0];
38
- }
39
- const selectProp = testProp(['userSelect', 'MozUserSelect', 'WebkitUserSelect', 'msUserSelect']);
40
- let userSelect;
41
- DOM.disableDrag = () => {
42
- if (docStyle && selectProp) {
43
- userSelect = docStyle[selectProp];
44
- docStyle[selectProp] = 'none';
45
- }
46
- };
47
- DOM.enableDrag = () => {
48
- if (docStyle && selectProp) {
49
- docStyle[selectProp] = userSelect;
50
- }
51
- };
52
- const transformProp = testProp(['transform', 'WebkitTransform']);
53
- DOM.setTransform = (el, value) => {
54
- // https://github.com/facebook/flow/issues/7754
55
- // $FlowFixMe
56
- el.style[transformProp] = value;
57
- };
58
-
59
- // Feature detection for {passive: false} support in add/removeEventListener.
60
- let passiveSupported = false;
61
- try {
62
- // https://github.com/facebook/flow/issues/285
63
- // $FlowFixMe
64
- const options = Object.defineProperty({}, 'passive', {
65
- get() {
66
- // eslint-disable-line
67
- passiveSupported = true;
68
- }
69
- });
70
- // @ts-ignore
71
- window.addEventListener('test', options, options);
72
- // @ts-ignore
73
- window.removeEventListener('test', options, options);
74
- } catch (err) {
75
- passiveSupported = false;
76
- }
77
- DOM.addEventListener = (target, type, callback, options = {}) => {
78
- if ('passive' in options && passiveSupported) {
79
- target.addEventListener(type, callback, options);
80
- } else {
81
- target.addEventListener(type, callback, options.capture);
82
- }
83
- };
84
- DOM.removeEventListener = (target, type, callback, options = {}) => {
85
- if ('passive' in options && passiveSupported) {
86
- target.removeEventListener(type, callback, options);
87
- } else {
88
- target.removeEventListener(type, callback, options.capture);
89
- }
90
- };
91
-
92
- // Suppress the next click, but only if it's immediate.
93
- const suppressClick = e => {
94
- e.preventDefault();
95
- e.stopPropagation();
96
- window.removeEventListener('click', suppressClick, true);
97
- };
98
- DOM.suppressClick = () => {
99
- window.addEventListener('click', suppressClick, true);
100
- setTimeout(() => {
101
- window.removeEventListener('click', suppressClick, true);
102
- }, 0);
103
- };
104
- DOM.mousePos = (el, e) => {
105
- // 暂时从 el 上获取 top/left, 后面需要动态获取
106
- const rect = el.getBoundingClientRect();
107
- return new _point.default(e.clientX - rect.left - el.clientLeft, e.clientY - rect.top - el.clientTop);
108
- };
109
- DOM.touchPos = (el, touches) => {
110
- // 暂时从 el 上获取 top/left, 后面需要动态获取
111
- const rect = el.getBoundingClientRect();
112
- const points = [];
113
- for (const touche of touches) {
114
- points.push(new _point.default(touche.clientX - rect.left - el.clientLeft, touche.clientY - rect.top - el.clientTop));
115
- }
116
- return points;
117
- };
118
- DOM.mouseButton = e => {
119
- return e.button;
120
- };
121
- DOM.remove = node => {
122
- if (node.parentNode) {
123
- node.parentNode.removeChild(node);
124
- }
125
- };
@@ -1,17 +0,0 @@
1
- export interface IPerformanceMetrics {
2
- loadTime: number;
3
- fullLoadTime: number;
4
- fps: number;
5
- percentDroppedFrames: number;
6
- }
7
- export declare const PerformanceMarkers: {
8
- create: string;
9
- load: string;
10
- fullLoad: string;
11
- };
12
- export declare const PerformanceUtils: {
13
- mark(marker: string): void;
14
- frame(timestamp: number): void;
15
- clearMetrics(): void;
16
- getPerformanceMetrics(): IPerformanceMetrics;
17
- };
@@ -1,64 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.PerformanceUtils = exports.PerformanceMarkers = void 0;
7
- let lastFrameTime = null;
8
- let frameTimes = [];
9
- const minFramerateTarget = 30;
10
- const frameTimeTarget = 1000 / minFramerateTarget;
11
- const performance = window.performance;
12
- const PerformanceMarkers = exports.PerformanceMarkers = {
13
- create: 'create',
14
- load: 'load',
15
- fullLoad: 'fullLoad'
16
- };
17
- const PerformanceUtils = exports.PerformanceUtils = {
18
- mark(marker) {
19
- performance.mark(marker);
20
- },
21
- frame(timestamp) {
22
- const currTimestamp = timestamp;
23
- if (lastFrameTime != null) {
24
- const frameTime = currTimestamp - lastFrameTime;
25
- frameTimes.push(frameTime);
26
- }
27
- lastFrameTime = currTimestamp;
28
- },
29
- clearMetrics() {
30
- lastFrameTime = null;
31
- frameTimes = [];
32
- performance.clearMeasures('loadTime');
33
- performance.clearMeasures('fullLoadTime');
34
- // @ts-ignore
35
- // tslint:disable-next-line:forin
36
- for (const marker in PerformanceMarkers) {
37
- // @ts-ignore
38
- performance.clearMarks(PerformanceMarkers[marker]);
39
- }
40
- },
41
- getPerformanceMetrics() {
42
- const loadTime = performance.measure('loadTime', PerformanceMarkers.create, PerformanceMarkers.load
43
- // @ts-ignore
44
- ).duration;
45
- const fullLoadTime = performance.measure('fullLoadTime', PerformanceMarkers.create, PerformanceMarkers.fullLoad
46
- // @ts-ignore
47
- ).duration;
48
- const totalFrames = frameTimes.length;
49
- const avgFrameTime = frameTimes.reduce((prev, curr) => prev + curr, 0) / totalFrames / 1000;
50
- const fps = 1 / avgFrameTime;
51
-
52
- // count frames that missed our framerate target
53
- const droppedFrames = frameTimes.filter(frameTime => frameTime > frameTimeTarget).reduce((acc, curr) => {
54
- return acc + (curr - frameTimeTarget) / frameTimeTarget;
55
- }, 0);
56
- const percentDroppedFrames = droppedFrames / (totalFrames + droppedFrames) * 100;
57
- return {
58
- loadTime,
59
- fullLoadTime,
60
- fps,
61
- percentDroppedFrames
62
- };
63
- }
64
- };
@@ -1,6 +0,0 @@
1
- export default class Frustum {
2
- static fromInvProjectionMatrix(invProj: Float32Array, worldSize: number, zoom: number): Frustum;
3
- points: number[][];
4
- planes: number[][];
5
- constructor(points: number[][], planes: number[][]);
6
- }
@@ -1,45 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = void 0;
8
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
- var _glMatrix = require("gl-matrix");
10
- class Frustum {
11
- static fromInvProjectionMatrix(invProj, worldSize, zoom) {
12
- const clipSpaceCorners = [[-1, 1, -1, 1], [1, 1, -1, 1], [1, -1, -1, 1], [-1, -1, -1, 1], [-1, 1, 1, 1], [1, 1, 1, 1], [1, -1, 1, 1], [-1, -1, 1, 1]];
13
- const scale = Math.pow(2, zoom);
14
-
15
- // Transform frustum corner points from clip space to tile space
16
- const frustumCoords = clipSpaceCorners.map(v => _glMatrix.vec4.transformMat4(new Float32Array([]), v, invProj)).map(v => _glMatrix.vec4.scale(new Float32Array([]), v, 1.0 / v[3] / worldSize * scale));
17
- const frustumPlanePointIndices = [[0, 1, 2],
18
- // near
19
- [6, 5, 4],
20
- // far
21
- [0, 3, 7],
22
- // left
23
- [2, 1, 5],
24
- // right
25
- [3, 2, 6],
26
- // bottom
27
- [0, 4, 5] // top
28
- ];
29
- const frustumPlanes = frustumPlanePointIndices.map(p => {
30
- const a = _glMatrix.vec3.sub(new Float32Array(3), new Float32Array(frustumCoords[p[0]]), new Float32Array(frustumCoords[p[1]]));
31
- const b = _glMatrix.vec3.sub(new Float32Array(3), new Float32Array(frustumCoords[p[2]]), new Float32Array(frustumCoords[p[1]]));
32
- const n = _glMatrix.vec3.normalize(new Float32Array(3), _glMatrix.vec3.cross(new Float32Array(3), a, b));
33
- const d = -_glMatrix.vec3.dot(n, new Float32Array(frustumCoords[p[1]]));
34
- return n.concat(d);
35
- });
36
- return new Frustum(frustumCoords, frustumPlanes);
37
- }
38
- constructor(points, planes) {
39
- (0, _defineProperty2.default)(this, "points", void 0);
40
- (0, _defineProperty2.default)(this, "planes", void 0);
41
- this.points = points;
42
- this.planes = planes;
43
- }
44
- }
45
- exports.default = Frustum;
@@ -1,13 +0,0 @@
1
- export type TaskID = number;
2
- declare class TaskQueue {
3
- private queue;
4
- private id;
5
- private cleared;
6
- private currentlyRunning;
7
- constructor();
8
- add(callback: (timeStamp: number) => void): TaskID;
9
- remove(id: TaskID): void;
10
- run(timeStamp?: number): void;
11
- clear(): void;
12
- }
13
- export default TaskQueue;
@@ -1,67 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = void 0;
8
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
- // can't mark opaque due to https://github.com/flowtype/flow-remove-types/pull/61
10
-
11
- class TaskQueue {
12
- constructor() {
13
- (0, _defineProperty2.default)(this, "queue", void 0);
14
- (0, _defineProperty2.default)(this, "id", void 0);
15
- (0, _defineProperty2.default)(this, "cleared", void 0);
16
- (0, _defineProperty2.default)(this, "currentlyRunning", void 0);
17
- this.queue = [];
18
- this.id = 0;
19
- this.cleared = false;
20
- this.currentlyRunning = false;
21
- }
22
- add(callback) {
23
- const id = ++this.id;
24
- const queue = this.queue;
25
- queue.push({
26
- callback,
27
- id,
28
- cancelled: false
29
- });
30
- return id;
31
- }
32
- remove(id) {
33
- const running = this.currentlyRunning;
34
- const queue = running ? this.queue.concat(running) : this.queue;
35
- for (const task of queue) {
36
- if (task.id === id) {
37
- task.cancelled = true;
38
- return;
39
- }
40
- }
41
- }
42
- run(timeStamp = 0) {
43
- const queue = this.currentlyRunning = this.queue;
44
-
45
- // Tasks queued by callbacks in the current queue should be executed
46
- // on the next run, not the current run.
47
- this.queue = [];
48
- for (const task of queue) {
49
- if (task.cancelled) {
50
- continue;
51
- }
52
- task.callback(timeStamp);
53
- if (this.cleared) {
54
- break;
55
- }
56
- }
57
- this.cleared = false;
58
- this.currentlyRunning = false;
59
- }
60
- clear() {
61
- if (this.currentlyRunning) {
62
- this.cleared = true;
63
- }
64
- this.queue = [];
65
- }
66
- }
67
- var _default = exports.default = TaskQueue;