@aibee/owlly 1.0.25

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 (500) hide show
  1. package/README.external.md +75 -0
  2. package/README.md +28 -0
  3. package/lib/src/external/lines/line-geometry.d.ts +9 -0
  4. package/lib/src/external/lines/line-geometry.js +52 -0
  5. package/lib/src/external/lines/line-geometry.js.map +1 -0
  6. package/lib/src/external/lines/line-material.d.ts +10 -0
  7. package/lib/src/external/lines/line-material.js +377 -0
  8. package/lib/src/external/lines/line-material.js.map +1 -0
  9. package/lib/src/external/lines/line-segments-2.d.ts +7 -0
  10. package/lib/src/external/lines/line-segments-2.js +144 -0
  11. package/lib/src/external/lines/line-segments-2.js.map +1 -0
  12. package/lib/src/external/lines/line-segments-geometry.d.ts +15 -0
  13. package/lib/src/external/lines/line-segments-geometry.js +141 -0
  14. package/lib/src/external/lines/line-segments-geometry.js.map +1 -0
  15. package/lib/src/external/loaders/gltf-loader.d.ts +77 -0
  16. package/lib/src/external/loaders/gltf-loader.js +2319 -0
  17. package/lib/src/external/loaders/gltf-loader.js.map +1 -0
  18. package/lib/src/external/orbit-controls.d.ts +44 -0
  19. package/lib/src/external/orbit-controls.js +746 -0
  20. package/lib/src/external/orbit-controls.js.map +1 -0
  21. package/lib/src/external/renderers/css-2d-renderer.d.ts +16 -0
  22. package/lib/src/external/renderers/css-2d-renderer.js +122 -0
  23. package/lib/src/external/renderers/css-2d-renderer.js.map +1 -0
  24. package/lib/src/external/renderers/css-3d-renderer.d.ts +18 -0
  25. package/lib/src/external/renderers/css-3d-renderer.js +139 -0
  26. package/lib/src/external/renderers/css-3d-renderer.js.map +1 -0
  27. package/lib/src/external/transform-controls.d.ts +106 -0
  28. package/lib/src/external/transform-controls.js +1113 -0
  29. package/lib/src/external/transform-controls.js.map +1 -0
  30. package/lib/src/external/util/buffer-geometry-utils.d.ts +45 -0
  31. package/lib/src/external/util/buffer-geometry-utils.js +569 -0
  32. package/lib/src/external/util/buffer-geometry-utils.js.map +1 -0
  33. package/lib/src/owlly/controller/aerial-element-controller.d.ts +65 -0
  34. package/lib/src/owlly/controller/aerial-element-controller.js +236 -0
  35. package/lib/src/owlly/controller/aerial-element-controller.js.map +1 -0
  36. package/lib/src/owlly/controller/basic-controller.d.ts +324 -0
  37. package/lib/src/owlly/controller/basic-controller.js +1239 -0
  38. package/lib/src/owlly/controller/basic-controller.js.map +1 -0
  39. package/lib/src/owlly/controller/camera-controller.d.ts +37 -0
  40. package/lib/src/owlly/controller/camera-controller.js +138 -0
  41. package/lib/src/owlly/controller/camera-controller.js.map +1 -0
  42. package/lib/src/owlly/controller/controller.d.ts +61 -0
  43. package/lib/src/owlly/controller/controller.js +24 -0
  44. package/lib/src/owlly/controller/controller.js.map +1 -0
  45. package/lib/src/owlly/controller/index.d.ts +2 -0
  46. package/lib/src/owlly/controller/index.js +14 -0
  47. package/lib/src/owlly/controller/index.js.map +1 -0
  48. package/lib/src/owlly/controller/mouse-indicator-controller.d.ts +34 -0
  49. package/lib/src/owlly/controller/mouse-indicator-controller.js +119 -0
  50. package/lib/src/owlly/controller/mouse-indicator-controller.js.map +1 -0
  51. package/lib/src/owlly/controller/orbit-control.d.ts +147 -0
  52. package/lib/src/owlly/controller/orbit-control.js +265 -0
  53. package/lib/src/owlly/controller/orbit-control.js.map +1 -0
  54. package/lib/src/owlly/controller/panorama-adjust-controller.d.ts +45 -0
  55. package/lib/src/owlly/controller/panorama-adjust-controller.js +158 -0
  56. package/lib/src/owlly/controller/panorama-adjust-controller.js.map +1 -0
  57. package/lib/src/owlly/controller/panorama-controller.d.ts +441 -0
  58. package/lib/src/owlly/controller/panorama-controller.js +1944 -0
  59. package/lib/src/owlly/controller/panorama-controller.js.map +1 -0
  60. package/lib/src/owlly/controller/panorama-transform-controller.d.ts +66 -0
  61. package/lib/src/owlly/controller/panorama-transform-controller.js +137 -0
  62. package/lib/src/owlly/controller/panorama-transform-controller.js.map +1 -0
  63. package/lib/src/owlly/controller/plane-controller.d.ts +43 -0
  64. package/lib/src/owlly/controller/plane-controller.js +174 -0
  65. package/lib/src/owlly/controller/plane-controller.js.map +1 -0
  66. package/lib/src/owlly/controller/texture-controller.d.ts +181 -0
  67. package/lib/src/owlly/controller/texture-controller.js +876 -0
  68. package/lib/src/owlly/controller/texture-controller.js.map +1 -0
  69. package/lib/src/owlly/controller/tile-panorama-controller.d.ts +308 -0
  70. package/lib/src/owlly/controller/tile-panorama-controller.js +1354 -0
  71. package/lib/src/owlly/controller/tile-panorama-controller.js.map +1 -0
  72. package/lib/src/owlly/controller/transform-controller.d.ts +106 -0
  73. package/lib/src/owlly/controller/transform-controller.js +546 -0
  74. package/lib/src/owlly/controller/transform-controller.js.map +1 -0
  75. package/lib/src/owlly/element/bottom-nav-element.d.ts +65 -0
  76. package/lib/src/owlly/element/bottom-nav-element.js +258 -0
  77. package/lib/src/owlly/element/bottom-nav-element.js.map +1 -0
  78. package/lib/src/owlly/element/camera.d.ts +82 -0
  79. package/lib/src/owlly/element/camera.js +284 -0
  80. package/lib/src/owlly/element/camera.js.map +1 -0
  81. package/lib/src/owlly/element/dom-2d-element.d.ts +35 -0
  82. package/lib/src/owlly/element/dom-2d-element.js +49 -0
  83. package/lib/src/owlly/element/dom-2d-element.js.map +1 -0
  84. package/lib/src/owlly/element/dom-3d-element.d.ts +27 -0
  85. package/lib/src/owlly/element/dom-3d-element.js +34 -0
  86. package/lib/src/owlly/element/dom-3d-element.js.map +1 -0
  87. package/lib/src/owlly/element/dom-label-2d.d.ts +116 -0
  88. package/lib/src/owlly/element/dom-label-2d.js +383 -0
  89. package/lib/src/owlly/element/dom-label-2d.js.map +1 -0
  90. package/lib/src/owlly/element/element.d.ts +53 -0
  91. package/lib/src/owlly/element/element.js +76 -0
  92. package/lib/src/owlly/element/element.js.map +1 -0
  93. package/lib/src/owlly/element/floor-model.d.ts +83 -0
  94. package/lib/src/owlly/element/floor-model.js +228 -0
  95. package/lib/src/owlly/element/floor-model.js.map +1 -0
  96. package/lib/src/owlly/element/gif-kit/Gif.d.ts +96 -0
  97. package/lib/src/owlly/element/gif-kit/Gif.js +433 -0
  98. package/lib/src/owlly/element/gif-kit/Gif.js.map +1 -0
  99. package/lib/src/owlly/element/gif-kit/GifColor.d.ts +21 -0
  100. package/lib/src/owlly/element/gif-kit/GifColor.js +38 -0
  101. package/lib/src/owlly/element/gif-kit/GifColor.js.map +1 -0
  102. package/lib/src/owlly/element/gif-kit/GifCompressedCodesToByteArrayConverter.d.ts +20 -0
  103. package/lib/src/owlly/element/gif-kit/GifCompressedCodesToByteArrayConverter.js +51 -0
  104. package/lib/src/owlly/element/gif-kit/GifCompressedCodesToByteArrayConverter.js.map +1 -0
  105. package/lib/src/owlly/element/gif-kit/GifFrame.d.ts +31 -0
  106. package/lib/src/owlly/element/gif-kit/GifFrame.js +97 -0
  107. package/lib/src/owlly/element/gif-kit/GifFrame.js.map +1 -0
  108. package/lib/src/owlly/element/gif-kit/GifImage.d.ts +23 -0
  109. package/lib/src/owlly/element/gif-kit/GifImage.js +8 -0
  110. package/lib/src/owlly/element/gif-kit/GifImage.js.map +1 -0
  111. package/lib/src/owlly/element/gif-kit/GifParser.d.ts +17 -0
  112. package/lib/src/owlly/element/gif-kit/GifParser.js +197 -0
  113. package/lib/src/owlly/element/gif-kit/GifParser.js.map +1 -0
  114. package/lib/src/owlly/element/gif-kit/GifPresenter.d.ts +20 -0
  115. package/lib/src/owlly/element/gif-kit/GifPresenter.js +44 -0
  116. package/lib/src/owlly/element/gif-kit/GifPresenter.js.map +1 -0
  117. package/lib/src/owlly/element/gif-kit/GifVersion.d.ts +10 -0
  118. package/lib/src/owlly/element/gif-kit/GifVersion.js +13 -0
  119. package/lib/src/owlly/element/gif-kit/GifVersion.js.map +1 -0
  120. package/lib/src/owlly/element/gltf-mesh-element.d.ts +31 -0
  121. package/lib/src/owlly/element/gltf-mesh-element.js +137 -0
  122. package/lib/src/owlly/element/gltf-mesh-element.js.map +1 -0
  123. package/lib/src/owlly/element/index.d.ts +20 -0
  124. package/lib/src/owlly/element/index.js +25 -0
  125. package/lib/src/owlly/element/index.js.map +1 -0
  126. package/lib/src/owlly/element/map-kit/area.d.ts +24 -0
  127. package/lib/src/owlly/element/map-kit/area.js +218 -0
  128. package/lib/src/owlly/element/map-kit/area.js.map +1 -0
  129. package/lib/src/owlly/element/map-kit/block-set.d.ts +39 -0
  130. package/lib/src/owlly/element/map-kit/block-set.js +91 -0
  131. package/lib/src/owlly/element/map-kit/block-set.js.map +1 -0
  132. package/lib/src/owlly/element/map-kit/block.d.ts +77 -0
  133. package/lib/src/owlly/element/map-kit/block.js +339 -0
  134. package/lib/src/owlly/element/map-kit/block.js.map +1 -0
  135. package/lib/src/owlly/element/map-kit/index.d.ts +4 -0
  136. package/lib/src/owlly/element/map-kit/index.js +7 -0
  137. package/lib/src/owlly/element/map-kit/index.js.map +1 -0
  138. package/lib/src/owlly/element/map-kit/shape.d.ts +131 -0
  139. package/lib/src/owlly/element/map-kit/shape.js +190 -0
  140. package/lib/src/owlly/element/map-kit/shape.js.map +1 -0
  141. package/lib/src/owlly/element/mesh-element.d.ts +22 -0
  142. package/lib/src/owlly/element/mesh-element.js +64 -0
  143. package/lib/src/owlly/element/mesh-element.js.map +1 -0
  144. package/lib/src/owlly/element/mesh-line-2d.d.ts +82 -0
  145. package/lib/src/owlly/element/mesh-line-2d.js +888 -0
  146. package/lib/src/owlly/element/mesh-line-2d.js.map +1 -0
  147. package/lib/src/owlly/element/meshline-o.d.ts +64 -0
  148. package/lib/src/owlly/element/meshline-o.js +679 -0
  149. package/lib/src/owlly/element/meshline-o.js.map +1 -0
  150. package/lib/src/owlly/element/panorama-group.d.ts +241 -0
  151. package/lib/src/owlly/element/panorama-group.js +967 -0
  152. package/lib/src/owlly/element/panorama-group.js.map +1 -0
  153. package/lib/src/owlly/element/panorama.d.ts +132 -0
  154. package/lib/src/owlly/element/panorama.js +813 -0
  155. package/lib/src/owlly/element/panorama.js.map +1 -0
  156. package/lib/src/owlly/element/path-group.d.ts +69 -0
  157. package/lib/src/owlly/element/path-group.js +172 -0
  158. package/lib/src/owlly/element/path-group.js.map +1 -0
  159. package/lib/src/owlly/element/path.d.ts +99 -0
  160. package/lib/src/owlly/element/path.js +532 -0
  161. package/lib/src/owlly/element/path.js.map +1 -0
  162. package/lib/src/owlly/element/placeable-2d.d.ts +158 -0
  163. package/lib/src/owlly/element/placeable-2d.js +471 -0
  164. package/lib/src/owlly/element/placeable-2d.js.map +1 -0
  165. package/lib/src/owlly/element/polygon-mesh.d.ts +107 -0
  166. package/lib/src/owlly/element/polygon-mesh.js +308 -0
  167. package/lib/src/owlly/element/polygon-mesh.js.map +1 -0
  168. package/lib/src/owlly/element/ring-element.d.ts +79 -0
  169. package/lib/src/owlly/element/ring-element.js +384 -0
  170. package/lib/src/owlly/element/ring-element.js.map +1 -0
  171. package/lib/src/owlly/element/sphere-mesh.d.ts +28 -0
  172. package/lib/src/owlly/element/sphere-mesh.js +70 -0
  173. package/lib/src/owlly/element/sphere-mesh.js.map +1 -0
  174. package/lib/src/owlly/element/svg-floor-model.d.ts +22 -0
  175. package/lib/src/owlly/element/svg-floor-model.js +185 -0
  176. package/lib/src/owlly/element/svg-floor-model.js.map +1 -0
  177. package/lib/src/owlly/element/svg-floors.d.ts +27 -0
  178. package/lib/src/owlly/element/svg-floors.js +110 -0
  179. package/lib/src/owlly/element/svg-floors.js.map +1 -0
  180. package/lib/src/owlly/element/tile-panorama-group.d.ts +335 -0
  181. package/lib/src/owlly/element/tile-panorama-group.js +1007 -0
  182. package/lib/src/owlly/element/tile-panorama-group.js.map +1 -0
  183. package/lib/src/owlly/element/tile-panorama.d.ts +161 -0
  184. package/lib/src/owlly/element/tile-panorama.js +511 -0
  185. package/lib/src/owlly/element/tile-panorama.js.map +1 -0
  186. package/lib/src/owlly/element/tile-plane.d.ts +105 -0
  187. package/lib/src/owlly/element/tile-plane.js +361 -0
  188. package/lib/src/owlly/element/tile-plane.js.map +1 -0
  189. package/lib/src/owlly/element/video-element.d.ts +33 -0
  190. package/lib/src/owlly/element/video-element.js +160 -0
  191. package/lib/src/owlly/element/video-element.js.map +1 -0
  192. package/lib/src/owlly/geometries/ExtrudeGeometry2.d.ts +15 -0
  193. package/lib/src/owlly/geometries/ExtrudeGeometry2.js +211 -0
  194. package/lib/src/owlly/geometries/ExtrudeGeometry2.js.map +1 -0
  195. package/lib/src/owlly/index.d.ts +13 -0
  196. package/lib/src/owlly/index.js +17 -0
  197. package/lib/src/owlly/index.js.map +1 -0
  198. package/lib/src/owlly/overlay/canvas-overlay.d.ts +96 -0
  199. package/lib/src/owlly/overlay/canvas-overlay.js +511 -0
  200. package/lib/src/owlly/overlay/canvas-overlay.js.map +1 -0
  201. package/lib/src/owlly/overlay/css-2d-overlay.d.ts +14 -0
  202. package/lib/src/owlly/overlay/css-2d-overlay.js +36 -0
  203. package/lib/src/owlly/overlay/css-2d-overlay.js.map +1 -0
  204. package/lib/src/owlly/overlay/css-3d-overlay.d.ts +16 -0
  205. package/lib/src/owlly/overlay/css-3d-overlay.js +37 -0
  206. package/lib/src/owlly/overlay/css-3d-overlay.js.map +1 -0
  207. package/lib/src/owlly/overlay/index.d.ts +6 -0
  208. package/lib/src/owlly/overlay/index.js +12 -0
  209. package/lib/src/owlly/overlay/index.js.map +1 -0
  210. package/lib/src/owlly/overlay/label-overlay.d.ts +62 -0
  211. package/lib/src/owlly/overlay/label-overlay.js +329 -0
  212. package/lib/src/owlly/overlay/label-overlay.js.map +1 -0
  213. package/lib/src/owlly/overlay/overlay.d.ts +14 -0
  214. package/lib/src/owlly/overlay/overlay.js +5 -0
  215. package/lib/src/owlly/overlay/overlay.js.map +1 -0
  216. package/lib/src/owlly/overlay/path-overlay.d.ts +39 -0
  217. package/lib/src/owlly/overlay/path-overlay.js +125 -0
  218. package/lib/src/owlly/overlay/path-overlay.js.map +1 -0
  219. package/lib/src/owlly/overlay/path-overlay2.d.ts +35 -0
  220. package/lib/src/owlly/overlay/path-overlay2.js +119 -0
  221. package/lib/src/owlly/overlay/path-overlay2.js.map +1 -0
  222. package/lib/src/owlly/overlay/poi-overlay-3d.d.ts +278 -0
  223. package/lib/src/owlly/overlay/poi-overlay-3d.js +1433 -0
  224. package/lib/src/owlly/overlay/poi-overlay-3d.js.map +1 -0
  225. package/lib/src/owlly/overlay/poi-overlay.d.ts +277 -0
  226. package/lib/src/owlly/overlay/poi-overlay.js +1412 -0
  227. package/lib/src/owlly/overlay/poi-overlay.js.map +1 -0
  228. package/lib/src/owlly/owlly-2d/index.d.ts +28 -0
  229. package/lib/src/owlly/owlly-2d/index.js +93 -0
  230. package/lib/src/owlly/owlly-2d/index.js.map +1 -0
  231. package/lib/src/owlly/screen/index.d.ts +1 -0
  232. package/lib/src/owlly/screen/index.js +2 -0
  233. package/lib/src/owlly/screen/index.js.map +1 -0
  234. package/lib/src/owlly/screen/screen.d.ts +73 -0
  235. package/lib/src/owlly/screen/screen.js +237 -0
  236. package/lib/src/owlly/screen/screen.js.map +1 -0
  237. package/lib/src/owlly/stage/__test__/stage.spec.d.ts +1 -0
  238. package/lib/src/owlly/stage/__test__/stage.spec.js +15 -0
  239. package/lib/src/owlly/stage/__test__/stage.spec.js.map +1 -0
  240. package/lib/src/owlly/stage/externals.d.ts +19 -0
  241. package/lib/src/owlly/stage/externals.js +25 -0
  242. package/lib/src/owlly/stage/externals.js.map +1 -0
  243. package/lib/src/owlly/stage/index.d.ts +4 -0
  244. package/lib/src/owlly/stage/index.js +7 -0
  245. package/lib/src/owlly/stage/index.js.map +1 -0
  246. package/lib/src/owlly/stage/owlly.d.ts +38 -0
  247. package/lib/src/owlly/stage/owlly.js +168 -0
  248. package/lib/src/owlly/stage/owlly.js.map +1 -0
  249. package/lib/src/owlly/stage/stage.d.ts +108 -0
  250. package/lib/src/owlly/stage/stage.js +235 -0
  251. package/lib/src/owlly/stage/stage.js.map +1 -0
  252. package/lib/src/owlly/utils/alignment-utils.d.ts +20 -0
  253. package/lib/src/owlly/utils/alignment-utils.js +64 -0
  254. package/lib/src/owlly/utils/alignment-utils.js.map +1 -0
  255. package/lib/src/owlly/utils/basic-calc.d.ts +18 -0
  256. package/lib/src/owlly/utils/basic-calc.js +130 -0
  257. package/lib/src/owlly/utils/basic-calc.js.map +1 -0
  258. package/lib/src/owlly/utils/basic-tools.d.ts +71 -0
  259. package/lib/src/owlly/utils/basic-tools.js +236 -0
  260. package/lib/src/owlly/utils/basic-tools.js.map +1 -0
  261. package/lib/src/owlly/utils/bvh-tree.d.ts +105 -0
  262. package/lib/src/owlly/utils/bvh-tree.js +540 -0
  263. package/lib/src/owlly/utils/bvh-tree.js.map +1 -0
  264. package/lib/src/owlly/utils/camera.d.ts +37 -0
  265. package/lib/src/owlly/utils/camera.js +51 -0
  266. package/lib/src/owlly/utils/camera.js.map +1 -0
  267. package/lib/src/owlly/utils/cube-texture-cache.d.ts +25 -0
  268. package/lib/src/owlly/utils/cube-texture-cache.js +144 -0
  269. package/lib/src/owlly/utils/cube-texture-cache.js.map +1 -0
  270. package/lib/src/owlly/utils/device-utils.d.ts +18 -0
  271. package/lib/src/owlly/utils/device-utils.js +42 -0
  272. package/lib/src/owlly/utils/device-utils.js.map +1 -0
  273. package/lib/src/owlly/utils/environment-utils.d.ts +37 -0
  274. package/lib/src/owlly/utils/environment-utils.js +74 -0
  275. package/lib/src/owlly/utils/environment-utils.js.map +1 -0
  276. package/lib/src/owlly/utils/event-hub.d.ts +50 -0
  277. package/lib/src/owlly/utils/event-hub.js +107 -0
  278. package/lib/src/owlly/utils/event-hub.js.map +1 -0
  279. package/lib/src/owlly/utils/events.d.ts +219 -0
  280. package/lib/src/owlly/utils/events.js +220 -0
  281. package/lib/src/owlly/utils/events.js.map +1 -0
  282. package/lib/src/owlly/utils/geometry-utils.d.ts +119 -0
  283. package/lib/src/owlly/utils/geometry-utils.js +623 -0
  284. package/lib/src/owlly/utils/geometry-utils.js.map +1 -0
  285. package/lib/src/owlly/utils/helper.d.ts +6 -0
  286. package/lib/src/owlly/utils/helper.js +25 -0
  287. package/lib/src/owlly/utils/helper.js.map +1 -0
  288. package/lib/src/owlly/utils/index.d.ts +14 -0
  289. package/lib/src/owlly/utils/index.js +18 -0
  290. package/lib/src/owlly/utils/index.js.map +1 -0
  291. package/lib/src/owlly/utils/lru-cache.d.ts +26 -0
  292. package/lib/src/owlly/utils/lru-cache.js +110 -0
  293. package/lib/src/owlly/utils/lru-cache.js.map +1 -0
  294. package/lib/src/owlly/utils/map-utils.d.ts +7 -0
  295. package/lib/src/owlly/utils/map-utils.js +53 -0
  296. package/lib/src/owlly/utils/map-utils.js.map +1 -0
  297. package/lib/src/owlly/utils/number-utils.d.ts +8 -0
  298. package/lib/src/owlly/utils/number-utils.js +73 -0
  299. package/lib/src/owlly/utils/number-utils.js.map +1 -0
  300. package/lib/src/owlly/utils/panorama-model-util.d.ts +46 -0
  301. package/lib/src/owlly/utils/panorama-model-util.js +246 -0
  302. package/lib/src/owlly/utils/panorama-model-util.js.map +1 -0
  303. package/lib/src/owlly/utils/path-utils.d.ts +80 -0
  304. package/lib/src/owlly/utils/path-utils.js +729 -0
  305. package/lib/src/owlly/utils/path-utils.js.map +1 -0
  306. package/lib/src/owlly/utils/svgutils.d.ts +138 -0
  307. package/lib/src/owlly/utils/svgutils.js +562 -0
  308. package/lib/src/owlly/utils/svgutils.js.map +1 -0
  309. package/lib/src/owlly/utils/texture-cache.d.ts +29 -0
  310. package/lib/src/owlly/utils/texture-cache.js +116 -0
  311. package/lib/src/owlly/utils/texture-cache.js.map +1 -0
  312. package/lib/src/owlly/utils/tile-util.d.ts +187 -0
  313. package/lib/src/owlly/utils/tile-util.js +457 -0
  314. package/lib/src/owlly/utils/tile-util.js.map +1 -0
  315. package/lib/src/owlly/utils/time-profiler.d.ts +21 -0
  316. package/lib/src/owlly/utils/time-profiler.js +49 -0
  317. package/lib/src/owlly/utils/time-profiler.js.map +1 -0
  318. package/lib/src/owlly/view/__test__/perspective-view.spec.d.ts +0 -0
  319. package/lib/src/owlly/view/__test__/perspective-view.spec.js +22 -0
  320. package/lib/src/owlly/view/__test__/perspective-view.spec.js.map +1 -0
  321. package/lib/src/owlly/view/camera-view.d.ts +35 -0
  322. package/lib/src/owlly/view/camera-view.js +102 -0
  323. package/lib/src/owlly/view/camera-view.js.map +1 -0
  324. package/lib/src/owlly/view/index.d.ts +3 -0
  325. package/lib/src/owlly/view/index.js +6 -0
  326. package/lib/src/owlly/view/index.js.map +1 -0
  327. package/lib/src/owlly/view/orthographic-view.d.ts +40 -0
  328. package/lib/src/owlly/view/orthographic-view.js +95 -0
  329. package/lib/src/owlly/view/orthographic-view.js.map +1 -0
  330. package/lib/src/owlly/view/perspective-view.d.ts +40 -0
  331. package/lib/src/owlly/view/perspective-view.js +96 -0
  332. package/lib/src/owlly/view/perspective-view.js.map +1 -0
  333. package/lib/src/owlly/view/svg-map-view.d.ts +46 -0
  334. package/lib/src/owlly/view/svg-map-view.js +145 -0
  335. package/lib/src/owlly/view/svg-map-view.js.map +1 -0
  336. package/lib/src/owlly/view/view.d.ts +146 -0
  337. package/lib/src/owlly/view/view.js +318 -0
  338. package/lib/src/owlly/view/view.js.map +1 -0
  339. package/lib/src/web/main.centroid.d.ts +0 -0
  340. package/lib/src/web/main.centroid.js +74 -0
  341. package/lib/src/web/main.centroid.js.map +1 -0
  342. package/lib/src/web/main.hyma.meshline2d.d.ts +1 -0
  343. package/lib/src/web/main.hyma.meshline2d.js +76 -0
  344. package/lib/src/web/main.hyma.meshline2d.js.map +1 -0
  345. package/lib/src/web/main.jyfang.sample.d.ts +0 -0
  346. package/lib/src/web/main.jyfang.sample.js +122 -0
  347. package/lib/src/web/main.jyfang.sample.js.map +1 -0
  348. package/lib/src/web/main.rpeng.extrude.d.ts +1 -0
  349. package/lib/src/web/main.rpeng.extrude.js +180 -0
  350. package/lib/src/web/main.rpeng.extrude.js.map +1 -0
  351. package/lib/src/web/main.rpeng.mes.plane.d.ts +1 -0
  352. package/lib/src/web/main.rpeng.mes.plane.js +135 -0
  353. package/lib/src/web/main.rpeng.mes.plane.js.map +1 -0
  354. package/lib/src/web/main.rpeng.sample.d.ts +0 -0
  355. package/lib/src/web/main.rpeng.sample.js +318 -0
  356. package/lib/src/web/main.rpeng.sample.js.map +1 -0
  357. package/lib/src/web/main.rpeng.vr.d.ts +1 -0
  358. package/lib/src/web/main.rpeng.vr.js +141 -0
  359. package/lib/src/web/main.rpeng.vr.js.map +1 -0
  360. package/lib/src/web/main.sample.d.ts +1 -0
  361. package/lib/src/web/main.sample.js +52 -0
  362. package/lib/src/web/main.sample.js.map +1 -0
  363. package/lib/src/web/quattree.hyma.d.ts +0 -0
  364. package/lib/src/web/quattree.hyma.js +150 -0
  365. package/lib/src/web/quattree.hyma.js.map +1 -0
  366. package/lib/src/web/sensor-vr-plugin.d.ts +0 -0
  367. package/lib/src/web/sensor-vr-plugin.js +166 -0
  368. package/lib/src/web/sensor-vr-plugin.js.map +1 -0
  369. package/package.json +142 -0
  370. package/src/@types/SceneUtils.d.ts +9 -0
  371. package/src/@types/chaikin-smooth.d.ts +5 -0
  372. package/src/@types/global.d.ts +3 -0
  373. package/src/@types/snapsvg.d.ts +11 -0
  374. package/src/@types/svgson.d.ts +30 -0
  375. package/src/assets/favicon.ico +0 -0
  376. package/src/external/lines/line-geometry.ts +70 -0
  377. package/src/external/lines/line-material.ts +453 -0
  378. package/src/external/lines/line-segments-2.ts +194 -0
  379. package/src/external/lines/line-segments-geometry.ts +197 -0
  380. package/src/external/loaders/gltf-loader.ts +3004 -0
  381. package/src/external/orbit-controls.ts +1070 -0
  382. package/src/external/renderers/css-2d-renderer.ts +185 -0
  383. package/src/external/renderers/css-3d-renderer.ts +245 -0
  384. package/src/external/transform-controls.ts +1532 -0
  385. package/src/external/util/buffer-geometry-utils.ts +783 -0
  386. package/src/owlly/controller/aerial-element-controller.ts +277 -0
  387. package/src/owlly/controller/basic-controller.ts +1509 -0
  388. package/src/owlly/controller/camera-controller.ts +155 -0
  389. package/src/owlly/controller/controller.ts +76 -0
  390. package/src/owlly/controller/index.ts +15 -0
  391. package/src/owlly/controller/mouse-indicator-controller.ts +157 -0
  392. package/src/owlly/controller/orbit-control.ts +310 -0
  393. package/src/owlly/controller/panorama-adjust-controller.ts +183 -0
  394. package/src/owlly/controller/panorama-controller.ts +2234 -0
  395. package/src/owlly/controller/panorama-transform-controller.ts +151 -0
  396. package/src/owlly/controller/plane-controller.ts +222 -0
  397. package/src/owlly/controller/texture-controller.ts +949 -0
  398. package/src/owlly/controller/tile-panorama-controller.ts +1633 -0
  399. package/src/owlly/controller/transform-controller.ts +684 -0
  400. package/src/owlly/element/bottom-nav-element.ts +352 -0
  401. package/src/owlly/element/camera.ts +389 -0
  402. package/src/owlly/element/dom-2d-element.ts +88 -0
  403. package/src/owlly/element/dom-3d-element.ts +87 -0
  404. package/src/owlly/element/dom-label-2d.ts +497 -0
  405. package/src/owlly/element/element.ts +117 -0
  406. package/src/owlly/element/floor-model.ts +290 -0
  407. package/src/owlly/element/gif-kit/Gif.ts +509 -0
  408. package/src/owlly/element/gif-kit/GifColor.ts +44 -0
  409. package/src/owlly/element/gif-kit/GifCompressedCodesToByteArrayConverter.ts +56 -0
  410. package/src/owlly/element/gif-kit/GifFrame.ts +207 -0
  411. package/src/owlly/element/gif-kit/GifImage.ts +26 -0
  412. package/src/owlly/element/gif-kit/GifParser.ts +254 -0
  413. package/src/owlly/element/gif-kit/GifPresenter.ts +46 -0
  414. package/src/owlly/element/gif-kit/GifVersion.ts +12 -0
  415. package/src/owlly/element/gltf-mesh-element.ts +184 -0
  416. package/src/owlly/element/index.ts +25 -0
  417. package/src/owlly/element/map-kit/area.ts +232 -0
  418. package/src/owlly/element/map-kit/block-set.ts +102 -0
  419. package/src/owlly/element/map-kit/block.ts +417 -0
  420. package/src/owlly/element/map-kit/index.ts +6 -0
  421. package/src/owlly/element/map-kit/shape.ts +285 -0
  422. package/src/owlly/element/mesh-element.ts +94 -0
  423. package/src/owlly/element/mesh-line-2d.ts +1032 -0
  424. package/src/owlly/element/meshline-o.ts +802 -0
  425. package/src/owlly/element/panorama-group.ts +1250 -0
  426. package/src/owlly/element/panorama.ts +1044 -0
  427. package/src/owlly/element/path-group.ts +212 -0
  428. package/src/owlly/element/path.ts +727 -0
  429. package/src/owlly/element/placeable-2d.ts +627 -0
  430. package/src/owlly/element/polygon-mesh.ts +344 -0
  431. package/src/owlly/element/ring-element.ts +517 -0
  432. package/src/owlly/element/sphere-mesh.ts +96 -0
  433. package/src/owlly/element/svg-floor-model.ts +200 -0
  434. package/src/owlly/element/svg-floors.ts +121 -0
  435. package/src/owlly/element/tile-panorama-group.ts +1314 -0
  436. package/src/owlly/element/tile-panorama.ts +636 -0
  437. package/src/owlly/element/tile-plane.ts +430 -0
  438. package/src/owlly/element/video-element.ts +190 -0
  439. package/src/owlly/geometries/ExtrudeGeometry2.ts +255 -0
  440. package/src/owlly/index.ts +19 -0
  441. package/src/owlly/overlay/canvas-overlay.ts +642 -0
  442. package/src/owlly/overlay/css-2d-overlay.ts +48 -0
  443. package/src/owlly/overlay/css-3d-overlay.ts +50 -0
  444. package/src/owlly/overlay/index.ts +11 -0
  445. package/src/owlly/overlay/label-overlay.ts +419 -0
  446. package/src/owlly/overlay/overlay.ts +17 -0
  447. package/src/owlly/overlay/path-overlay.ts +170 -0
  448. package/src/owlly/overlay/path-overlay2.ts +149 -0
  449. package/src/owlly/overlay/poi-overlay-3d.ts +1759 -0
  450. package/src/owlly/overlay/poi-overlay.ts +1739 -0
  451. package/src/owlly/owlly-2d/index.ts +108 -0
  452. package/src/owlly/screen/index.ts +1 -0
  453. package/src/owlly/screen/screen.ts +323 -0
  454. package/src/owlly/stage/__test__/stage.spec.ts +15 -0
  455. package/src/owlly/stage/externals.ts +45 -0
  456. package/src/owlly/stage/index.ts +12 -0
  457. package/src/owlly/stage/owlly.ts +223 -0
  458. package/src/owlly/stage/stage.ts +274 -0
  459. package/src/owlly/utils/alignment-utils.ts +84 -0
  460. package/src/owlly/utils/basic-calc.ts +141 -0
  461. package/src/owlly/utils/basic-tools.ts +286 -0
  462. package/src/owlly/utils/bvh-tree.ts +695 -0
  463. package/src/owlly/utils/camera.ts +72 -0
  464. package/src/owlly/utils/cube-texture-cache.ts +155 -0
  465. package/src/owlly/utils/device-utils.ts +53 -0
  466. package/src/owlly/utils/environment-utils.ts +81 -0
  467. package/src/owlly/utils/event-hub.ts +120 -0
  468. package/src/owlly/utils/events.ts +266 -0
  469. package/src/owlly/utils/geometry-utils.ts +749 -0
  470. package/src/owlly/utils/helper.ts +33 -0
  471. package/src/owlly/utils/index.ts +17 -0
  472. package/src/owlly/utils/lru-cache.ts +126 -0
  473. package/src/owlly/utils/map-utils.ts +55 -0
  474. package/src/owlly/utils/number-utils.ts +75 -0
  475. package/src/owlly/utils/panorama-model-util.ts +255 -0
  476. package/src/owlly/utils/path-utils.ts +837 -0
  477. package/src/owlly/utils/svgutils.ts +732 -0
  478. package/src/owlly/utils/texture-cache.ts +132 -0
  479. package/src/owlly/utils/tile-util.ts +563 -0
  480. package/src/owlly/utils/time-profiler.ts +57 -0
  481. package/src/owlly/view/__test__/perspective-view.spec.ts +23 -0
  482. package/src/owlly/view/camera-view.ts +114 -0
  483. package/src/owlly/view/index.ts +5 -0
  484. package/src/owlly/view/orthographic-view.ts +124 -0
  485. package/src/owlly/view/perspective-view.ts +125 -0
  486. package/src/owlly/view/svg-map-view.ts +187 -0
  487. package/src/owlly/view/view.ts +409 -0
  488. package/src/public/js/jsmpeg.min.js +3129 -0
  489. package/src/web/index.html +52 -0
  490. package/src/web/main.centroid.ts +85 -0
  491. package/src/web/main.hyma.meshline2d.ts +84 -0
  492. package/src/web/main.jyfang.sample.ts +139 -0
  493. package/src/web/main.rpeng.extrude.ts +194 -0
  494. package/src/web/main.rpeng.mes.plane.ts +161 -0
  495. package/src/web/main.rpeng.sample.ts +345 -0
  496. package/src/web/main.rpeng.vr.ts +159 -0
  497. package/src/web/main.sample.ts +59 -0
  498. package/src/web/quattree.hyma.ts +163 -0
  499. package/src/web/sensor-vr-plugin.ts +201 -0
  500. package/src/web/testPixel.png +0 -0
@@ -0,0 +1,746 @@
1
+ /* eslint-disable max-len, no-continue, @typescript-eslint/no-explicit-any, no-underscore-dangle, func-names, @typescript-eslint/no-this-alias, no-console */
2
+ import { Externals, NS_THREE } from '../owlly/stage/externals';
3
+ class OrbitControls extends NS_THREE.EventDispatcher {
4
+ constructor(object, domElement) {
5
+ super();
6
+ const { THREE } = Externals.getInstance();
7
+ if (domElement === undefined)
8
+ console.warn('THREE.OrbitControls: The second parameter "domElement" is now mandatory.');
9
+ if (domElement === document)
10
+ console.error('THREE.OrbitControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.');
11
+ this.object = object;
12
+ this.domElement = domElement;
13
+ // Set to false to disable this control
14
+ this.enabled = true;
15
+ // "target" sets the location of focus, where the object orbits around
16
+ this.target = new THREE.Vector3();
17
+ // How far you can dolly in and out ( PerspectiveCamera only )
18
+ this.minDistance = 0;
19
+ this.maxDistance = Infinity;
20
+ // How far you can zoom in and out ( OrthographicCamera only )
21
+ this.minZoom = 0;
22
+ this.maxZoom = Infinity;
23
+ // How far you can orbit vertically, upper and lower limits.
24
+ // Range is 0 to Math.PI radians.
25
+ this.minPolarAngle = 0; // radians
26
+ this.maxPolarAngle = Math.PI; // radians
27
+ // How far you can orbit horizontally, upper and lower limits.
28
+ // If set, the interval [ min, max ] must be a sub-interval of [ - 2 PI, 2 PI ], with ( max - min < 2 PI )
29
+ this.minAzimuthAngle = -Infinity; // radians
30
+ this.maxAzimuthAngle = Infinity; // radians
31
+ // Set to true to enable damping (inertia)
32
+ // If damping is enabled, you must call controls.update() in your animation loop
33
+ this.enableDamping = false;
34
+ this.dampingFactor = 0.05;
35
+ // This option actually enables dollying in and out; left as "zoom" for backwards compatibility.
36
+ // Set to false to disable zooming
37
+ this.enableZoom = true;
38
+ this.zoomSpeed = 1.0;
39
+ // Set to false to disable rotating
40
+ this.enableRotate = true;
41
+ this.rotateSpeed = 1.0;
42
+ // Set to false to disable panning
43
+ this.enablePan = true;
44
+ this.panSpeed = 1.0;
45
+ this.screenSpacePanning = true; // if false, pan orthogonal to world-space direction camera.up
46
+ this.keyPanSpeed = 7.0; // pixels moved per arrow key push
47
+ // Set to true to automatically rotate around the target
48
+ // If auto-rotate is enabled, you must call controls.update() in your animation loop
49
+ this.autoRotate = false;
50
+ this.autoRotateSpeed = 2.0; // 30 seconds per orbit when fps is 60
51
+ this.enableKeys = false;
52
+ // The four arrow keys
53
+ this.keys = {
54
+ LEFT: 37, UP: 38, RIGHT: 39, BOTTOM: 40,
55
+ };
56
+ // Mouse buttons
57
+ this.mouseButtons = { LEFT: THREE.MOUSE.ROTATE, MIDDLE: THREE.MOUSE.DOLLY, RIGHT: THREE.MOUSE.PAN };
58
+ // Touch fingers
59
+ this.touches = { ONE: THREE.TOUCH.ROTATE, TWO: THREE.TOUCH.DOLLY_PAN };
60
+ // for reset
61
+ this.target0 = this.target.clone();
62
+ this.position0 = this.object.position.clone();
63
+ this.zoom0 = this.object.zoom;
64
+ // the target DOM element for key events
65
+ this._domElementKeyEvents = null;
66
+ //
67
+ // internals
68
+ //
69
+ const scope = this;
70
+ const changeEvent = { type: 'change' };
71
+ const startEvent = { type: 'start' };
72
+ const endEvent = { type: 'end' };
73
+ const STATE = {
74
+ NONE: -1,
75
+ ROTATE: 0,
76
+ DOLLY: 1,
77
+ PAN: 2,
78
+ TOUCH_ROTATE: 3,
79
+ TOUCH_PAN: 4,
80
+ TOUCH_DOLLY_PAN: 5,
81
+ TOUCH_DOLLY_ROTATE: 6,
82
+ };
83
+ let state = STATE.NONE;
84
+ const EPS = 0.000001;
85
+ // current position in spherical coordinates
86
+ const spherical = new THREE.Spherical();
87
+ const sphericalDelta = new THREE.Spherical();
88
+ let scale = 1;
89
+ const panOffset = new THREE.Vector3();
90
+ let zoomChanged = false;
91
+ const rotateStart = new THREE.Vector2();
92
+ const rotateEnd = new THREE.Vector2();
93
+ const rotateDelta = new THREE.Vector2();
94
+ const panStart = new THREE.Vector2();
95
+ const panEnd = new THREE.Vector2();
96
+ const panDelta = new THREE.Vector2();
97
+ const dollyStart = new THREE.Vector2();
98
+ const dollyEnd = new THREE.Vector2();
99
+ const dollyDelta = new THREE.Vector2();
100
+ function getAutoRotationAngle() {
101
+ return 2 * Math.PI / 60 / 60 * scope.autoRotateSpeed;
102
+ }
103
+ function getZoomScale() {
104
+ return Math.pow(0.95, scope.zoomSpeed); // eslint-disable-line
105
+ }
106
+ function rotateLeft(angle) {
107
+ sphericalDelta.theta -= angle;
108
+ }
109
+ function rotateUp(angle) {
110
+ sphericalDelta.phi -= angle;
111
+ }
112
+ const panLeft = (function () {
113
+ const v = new THREE.Vector3();
114
+ return function (distance, objectMatrix) {
115
+ v.setFromMatrixColumn(objectMatrix, 0); // get X column of objectMatrix
116
+ v.multiplyScalar(-distance);
117
+ panOffset.add(v);
118
+ };
119
+ }());
120
+ const panUp = (function () {
121
+ const v = new THREE.Vector3();
122
+ return function (distance, objectMatrix) {
123
+ if (scope.screenSpacePanning === true) {
124
+ v.setFromMatrixColumn(objectMatrix, 1);
125
+ }
126
+ else {
127
+ v.setFromMatrixColumn(objectMatrix, 0);
128
+ v.crossVectors(scope.object.up, v);
129
+ }
130
+ v.multiplyScalar(distance);
131
+ panOffset.add(v);
132
+ };
133
+ }());
134
+ // deltaX and deltaY are in pixels; right and down are positive
135
+ const pan = (function () {
136
+ const offset = new THREE.Vector3();
137
+ return function (deltaX, deltaY) {
138
+ const element = scope.domElement;
139
+ if (scope.object.isPerspectiveCamera) {
140
+ // perspective
141
+ const { position } = scope.object;
142
+ offset.copy(position).sub(scope.target);
143
+ let targetDistance = offset.length();
144
+ // half of the fov is center to top of screen
145
+ targetDistance *= Math.tan((scope.object.fov / 2) * Math.PI / 180.0);
146
+ // we use only clientHeight here so aspect ratio does not distort speed
147
+ panLeft(2 * deltaX * targetDistance / element.clientHeight, scope.object.matrix);
148
+ panUp(2 * deltaY * targetDistance / element.clientHeight, scope.object.matrix);
149
+ }
150
+ else if (scope.object.isOrthographicCamera) {
151
+ const ortho = scope.object;
152
+ // orthographic
153
+ panLeft(deltaX * (ortho.right - ortho.left) / ortho.zoom / element.clientWidth, ortho.matrix);
154
+ panUp(deltaY * (ortho.top - ortho.bottom) / ortho.zoom / element.clientHeight, ortho.matrix);
155
+ }
156
+ else {
157
+ // camera neither orthographic nor perspective
158
+ console.warn('WARNING: OrbitControls.js encountered an unknown camera type - pan disabled.');
159
+ scope.enablePan = false;
160
+ }
161
+ };
162
+ }());
163
+ function dollyOut(dollyScale) {
164
+ if (scope.object.isPerspectiveCamera) {
165
+ scale /= dollyScale;
166
+ }
167
+ else if (scope.object.isOrthographicCamera) {
168
+ scope.object.zoom = Math.max(scope.minZoom, Math.min(scope.maxZoom, scope.object.zoom * dollyScale));
169
+ scope.object.updateProjectionMatrix();
170
+ zoomChanged = true;
171
+ }
172
+ else {
173
+ console.warn('WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.');
174
+ scope.enableZoom = false;
175
+ }
176
+ }
177
+ function dollyIn(dollyScale) {
178
+ if (scope.object.isPerspectiveCamera) {
179
+ scale *= dollyScale;
180
+ }
181
+ else if (scope.object.isOrthographicCamera) {
182
+ scope.object.zoom = Math.max(scope.minZoom, Math.min(scope.maxZoom, scope.object.zoom / dollyScale));
183
+ scope.object.updateProjectionMatrix();
184
+ zoomChanged = true;
185
+ }
186
+ else {
187
+ console.warn('WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.');
188
+ scope.enableZoom = false;
189
+ }
190
+ }
191
+ //
192
+ // event callbacks - update the object state
193
+ //
194
+ function handleMouseDownRotate(event) {
195
+ rotateStart.set(event.clientX, event.clientY);
196
+ }
197
+ function handleMouseDownDolly(event) {
198
+ dollyStart.set(event.clientX, event.clientY);
199
+ }
200
+ function handleMouseDownPan(event) {
201
+ panStart.set(event.clientX, event.clientY);
202
+ }
203
+ function handleMouseMoveRotate(event) {
204
+ rotateEnd.set(event.clientX, event.clientY);
205
+ rotateDelta.subVectors(rotateEnd, rotateStart).multiplyScalar(scope.rotateSpeed);
206
+ const element = scope.domElement;
207
+ rotateLeft(2 * Math.PI * rotateDelta.x / element.clientHeight); // yes, height
208
+ rotateUp(2 * Math.PI * rotateDelta.y / element.clientHeight);
209
+ rotateStart.copy(rotateEnd);
210
+ scope.update();
211
+ }
212
+ function handleMouseMoveDolly(event) {
213
+ dollyEnd.set(event.clientX, event.clientY);
214
+ dollyDelta.subVectors(dollyEnd, dollyStart);
215
+ if (dollyDelta.y > 0) {
216
+ dollyOut(getZoomScale());
217
+ }
218
+ else if (dollyDelta.y < 0) {
219
+ dollyIn(getZoomScale());
220
+ }
221
+ dollyStart.copy(dollyEnd);
222
+ scope.update();
223
+ }
224
+ function handleMouseMovePan(event) {
225
+ panEnd.set(event.clientX, event.clientY);
226
+ panDelta.subVectors(panEnd, panStart).multiplyScalar(scope.panSpeed);
227
+ pan(panDelta.x, panDelta.y);
228
+ panStart.copy(panEnd);
229
+ scope.update();
230
+ }
231
+ function handleMouseUp( /* event */) {
232
+ // no-op
233
+ }
234
+ function handleMouseWheel(event) {
235
+ if (event.deltaY < 0) {
236
+ dollyIn(getZoomScale());
237
+ }
238
+ else if (event.deltaY > 0) {
239
+ dollyOut(getZoomScale());
240
+ }
241
+ scope.update();
242
+ }
243
+ function handleKeyDown(event) {
244
+ let needsUpdate = false;
245
+ switch (event.keyCode) {
246
+ case scope.keys.UP:
247
+ pan(0, scope.keyPanSpeed);
248
+ needsUpdate = true;
249
+ break;
250
+ case scope.keys.BOTTOM:
251
+ pan(0, -scope.keyPanSpeed);
252
+ needsUpdate = true;
253
+ break;
254
+ case scope.keys.LEFT:
255
+ pan(scope.keyPanSpeed, 0);
256
+ needsUpdate = true;
257
+ break;
258
+ case scope.keys.RIGHT:
259
+ pan(-scope.keyPanSpeed, 0);
260
+ needsUpdate = true;
261
+ break;
262
+ default: break;
263
+ }
264
+ if (needsUpdate) {
265
+ // prevent the browser from scrolling on cursor keys
266
+ event.preventDefault();
267
+ scope.update();
268
+ }
269
+ }
270
+ function handleTouchStartRotate(event) {
271
+ if (event.touches.length === 1) {
272
+ rotateStart.set(event.touches[0].pageX, event.touches[0].pageY);
273
+ }
274
+ else {
275
+ const x = 0.5 * (event.touches[0].pageX + event.touches[1].pageX);
276
+ const y = 0.5 * (event.touches[0].pageY + event.touches[1].pageY);
277
+ rotateStart.set(x, y);
278
+ }
279
+ }
280
+ function handleTouchStartPan(event) {
281
+ if (event.touches.length === 1) {
282
+ panStart.set(event.touches[0].pageX, event.touches[0].pageY);
283
+ }
284
+ else {
285
+ const x = 0.5 * (event.touches[0].pageX + event.touches[1].pageX);
286
+ const y = 0.5 * (event.touches[0].pageY + event.touches[1].pageY);
287
+ panStart.set(x, y);
288
+ }
289
+ }
290
+ function handleTouchStartDolly(event) {
291
+ const dx = event.touches[0].pageX - event.touches[1].pageX;
292
+ const dy = event.touches[0].pageY - event.touches[1].pageY;
293
+ const distance = Math.sqrt(dx * dx + dy * dy);
294
+ dollyStart.set(0, distance);
295
+ }
296
+ function handleTouchStartDollyPan(event) {
297
+ if (scope.enableZoom)
298
+ handleTouchStartDolly(event);
299
+ if (scope.enablePan)
300
+ handleTouchStartPan(event);
301
+ }
302
+ function handleTouchStartDollyRotate(event) {
303
+ if (scope.enableZoom)
304
+ handleTouchStartDolly(event);
305
+ if (scope.enableRotate)
306
+ handleTouchStartRotate(event);
307
+ }
308
+ function handleTouchMoveRotate(event) {
309
+ if (event.touches.length === 1) {
310
+ rotateEnd.set(event.touches[0].pageX, event.touches[0].pageY);
311
+ }
312
+ else {
313
+ const x = 0.5 * (event.touches[0].pageX + event.touches[1].pageX);
314
+ const y = 0.5 * (event.touches[0].pageY + event.touches[1].pageY);
315
+ rotateEnd.set(x, y);
316
+ }
317
+ rotateDelta.subVectors(rotateEnd, rotateStart).multiplyScalar(scope.rotateSpeed);
318
+ const element = scope.domElement;
319
+ rotateLeft(2 * Math.PI * rotateDelta.x / element.clientHeight); // yes, height
320
+ rotateUp(2 * Math.PI * rotateDelta.y / element.clientHeight);
321
+ rotateStart.copy(rotateEnd);
322
+ }
323
+ function handleTouchMovePan(event) {
324
+ if (event.touches.length === 1) {
325
+ panEnd.set(event.touches[0].pageX, event.touches[0].pageY);
326
+ }
327
+ else {
328
+ const x = 0.5 * (event.touches[0].pageX + event.touches[1].pageX);
329
+ const y = 0.5 * (event.touches[0].pageY + event.touches[1].pageY);
330
+ panEnd.set(x, y);
331
+ }
332
+ panDelta.subVectors(panEnd, panStart).multiplyScalar(scope.panSpeed);
333
+ pan(panDelta.x, panDelta.y);
334
+ panStart.copy(panEnd);
335
+ }
336
+ function handleTouchMoveDolly(event) {
337
+ const dx = event.touches[0].pageX - event.touches[1].pageX;
338
+ const dy = event.touches[0].pageY - event.touches[1].pageY;
339
+ const distance = Math.sqrt(dx * dx + dy * dy);
340
+ dollyEnd.set(0, distance);
341
+ // eslint-disable-next-line
342
+ dollyDelta.set(0, Math.pow(dollyEnd.y / dollyStart.y, scope.zoomSpeed));
343
+ dollyOut(dollyDelta.y);
344
+ dollyStart.copy(dollyEnd);
345
+ }
346
+ function handleTouchMoveDollyPan(event) {
347
+ if (scope.enableZoom)
348
+ handleTouchMoveDolly(event);
349
+ if (scope.enablePan)
350
+ handleTouchMovePan(event);
351
+ }
352
+ function handleTouchMoveDollyRotate(event) {
353
+ if (scope.enableZoom)
354
+ handleTouchMoveDolly(event);
355
+ if (scope.enableRotate)
356
+ handleTouchMoveRotate(event);
357
+ }
358
+ function handleTouchEnd( /* event */) {
359
+ // no-op
360
+ }
361
+ //
362
+ // event handlers - FSM: listen for events and reset state
363
+ //
364
+ function onPointerDown(event) {
365
+ if (scope.enabled === false)
366
+ return;
367
+ switch (event.pointerType) {
368
+ case 'mouse':
369
+ case 'pen':
370
+ onMouseDown(event); // eslint-disable-line @typescript-eslint/no-use-before-define
371
+ break;
372
+ // TODO touch
373
+ default: break;
374
+ }
375
+ }
376
+ function onPointerMove(event) {
377
+ if (scope.enabled === false)
378
+ return;
379
+ switch (event.pointerType) {
380
+ case 'mouse':
381
+ case 'pen':
382
+ onMouseMove(event); // eslint-disable-line @typescript-eslint/no-use-before-define
383
+ break;
384
+ // TODO touch
385
+ default: break;
386
+ }
387
+ }
388
+ function onPointerUp(event) {
389
+ switch (event.pointerType) {
390
+ case 'mouse':
391
+ case 'pen':
392
+ onMouseUp(); // eslint-disable-line @typescript-eslint/no-use-before-define
393
+ break;
394
+ // TODO touch
395
+ default: break;
396
+ }
397
+ }
398
+ function onMouseDown(event) {
399
+ // Prevent the browser from scrolling.
400
+ event.preventDefault();
401
+ // Manually set the focus since calling preventDefault above
402
+ // prevents the browser from setting it automatically.
403
+ // eslint-disable-next-line
404
+ scope.domElement.focus ? scope.domElement.focus() : window.focus();
405
+ let mouseAction;
406
+ switch (event.button) {
407
+ case 0:
408
+ mouseAction = scope.mouseButtons.LEFT;
409
+ break;
410
+ case 1:
411
+ mouseAction = scope.mouseButtons.MIDDLE;
412
+ break;
413
+ case 2:
414
+ mouseAction = scope.mouseButtons.RIGHT;
415
+ break;
416
+ default:
417
+ mouseAction = -1;
418
+ }
419
+ switch (mouseAction) {
420
+ case THREE.MOUSE.DOLLY:
421
+ if (scope.enableZoom === false)
422
+ return;
423
+ handleMouseDownDolly(event);
424
+ state = STATE.DOLLY;
425
+ break;
426
+ case THREE.MOUSE.ROTATE:
427
+ if (event.ctrlKey || event.metaKey || event.shiftKey) {
428
+ if (scope.enablePan === false)
429
+ return;
430
+ handleMouseDownPan(event);
431
+ state = STATE.PAN;
432
+ }
433
+ else {
434
+ if (scope.enableRotate === false)
435
+ return;
436
+ handleMouseDownRotate(event);
437
+ state = STATE.ROTATE;
438
+ }
439
+ break;
440
+ case THREE.MOUSE.PAN:
441
+ if (event.ctrlKey || event.metaKey || event.shiftKey) {
442
+ if (scope.enableRotate === false)
443
+ return;
444
+ handleMouseDownRotate(event);
445
+ state = STATE.ROTATE;
446
+ }
447
+ else {
448
+ if (scope.enablePan === false)
449
+ return;
450
+ handleMouseDownPan(event);
451
+ state = STATE.PAN;
452
+ }
453
+ break;
454
+ default:
455
+ state = STATE.NONE;
456
+ }
457
+ if (state !== STATE.NONE) {
458
+ scope.domElement.ownerDocument.addEventListener('pointermove', onPointerMove);
459
+ scope.domElement.ownerDocument.addEventListener('pointerup', onPointerUp);
460
+ scope.dispatchEvent(startEvent);
461
+ }
462
+ }
463
+ function onMouseMove(event) {
464
+ if (scope.enabled === false)
465
+ return;
466
+ event.preventDefault();
467
+ switch (state) {
468
+ case STATE.ROTATE:
469
+ if (scope.enableRotate === false)
470
+ return;
471
+ handleMouseMoveRotate(event);
472
+ break;
473
+ case STATE.DOLLY:
474
+ if (scope.enableZoom === false)
475
+ return;
476
+ handleMouseMoveDolly(event);
477
+ break;
478
+ case STATE.PAN:
479
+ if (scope.enablePan === false)
480
+ return;
481
+ handleMouseMovePan(event);
482
+ break;
483
+ default: break;
484
+ }
485
+ }
486
+ function onMouseUp() {
487
+ scope.domElement.ownerDocument.removeEventListener('pointermove', onPointerMove);
488
+ scope.domElement.ownerDocument.removeEventListener('pointerup', onPointerUp);
489
+ if (scope.enabled === false)
490
+ return;
491
+ handleMouseUp();
492
+ scope.dispatchEvent(endEvent);
493
+ state = STATE.NONE;
494
+ }
495
+ function onMouseWheel(event) {
496
+ if (scope.enabled === false || scope.enableZoom === false || (state !== STATE.NONE && state !== STATE.ROTATE))
497
+ return;
498
+ event.preventDefault();
499
+ scope.dispatchEvent(startEvent);
500
+ handleMouseWheel(event);
501
+ scope.dispatchEvent(endEvent);
502
+ }
503
+ function onKeyDown(event) {
504
+ if (scope.enabled === false || scope.enablePan === false || scope.enableKeys === false)
505
+ return;
506
+ handleKeyDown(event);
507
+ }
508
+ function onTouchStart(event) {
509
+ if (scope.enabled === false)
510
+ return;
511
+ event.preventDefault(); // prevent scrolling
512
+ switch (event.touches.length) {
513
+ case 1:
514
+ switch (scope.touches.ONE) {
515
+ case THREE.TOUCH.ROTATE:
516
+ if (scope.enableRotate === false)
517
+ return;
518
+ handleTouchStartRotate(event);
519
+ state = STATE.TOUCH_ROTATE;
520
+ break;
521
+ case THREE.TOUCH.PAN:
522
+ if (scope.enablePan === false)
523
+ return;
524
+ handleTouchStartPan(event);
525
+ state = STATE.TOUCH_PAN;
526
+ break;
527
+ default:
528
+ state = STATE.NONE;
529
+ }
530
+ break;
531
+ case 2:
532
+ switch (scope.touches.TWO) {
533
+ case THREE.TOUCH.DOLLY_PAN:
534
+ if (scope.enableZoom === false && scope.enablePan === false)
535
+ return;
536
+ handleTouchStartDollyPan(event);
537
+ state = STATE.TOUCH_DOLLY_PAN;
538
+ break;
539
+ case THREE.TOUCH.DOLLY_ROTATE:
540
+ if (scope.enableZoom === false && scope.enableRotate === false)
541
+ return;
542
+ handleTouchStartDollyRotate(event);
543
+ state = STATE.TOUCH_DOLLY_ROTATE;
544
+ break;
545
+ default:
546
+ state = STATE.NONE;
547
+ }
548
+ break;
549
+ default:
550
+ state = STATE.NONE;
551
+ }
552
+ if (state !== STATE.NONE) {
553
+ scope.dispatchEvent(startEvent);
554
+ }
555
+ }
556
+ function onTouchMove(event) {
557
+ if (scope.enabled === false)
558
+ return;
559
+ event.preventDefault(); // prevent scrolling
560
+ switch (state) {
561
+ case STATE.TOUCH_ROTATE:
562
+ if (scope.enableRotate === false)
563
+ return;
564
+ handleTouchMoveRotate(event);
565
+ scope.update();
566
+ break;
567
+ case STATE.TOUCH_PAN:
568
+ if (scope.enablePan === false)
569
+ return;
570
+ handleTouchMovePan(event);
571
+ scope.update();
572
+ break;
573
+ case STATE.TOUCH_DOLLY_PAN:
574
+ if (scope.enableZoom === false && scope.enablePan === false)
575
+ return;
576
+ handleTouchMoveDollyPan(event);
577
+ scope.update();
578
+ break;
579
+ case STATE.TOUCH_DOLLY_ROTATE:
580
+ if (scope.enableZoom === false && scope.enableRotate === false)
581
+ return;
582
+ handleTouchMoveDollyRotate(event);
583
+ scope.update();
584
+ break;
585
+ default:
586
+ state = STATE.NONE;
587
+ }
588
+ }
589
+ function onTouchEnd() {
590
+ if (scope.enabled === false)
591
+ return;
592
+ handleTouchEnd();
593
+ scope.dispatchEvent(endEvent);
594
+ state = STATE.NONE;
595
+ }
596
+ function onContextMenu(event) {
597
+ if (scope.enabled === false)
598
+ return;
599
+ event.preventDefault();
600
+ }
601
+ //
602
+ scope.domElement.addEventListener('contextmenu', onContextMenu);
603
+ scope.domElement.addEventListener('pointerdown', onPointerDown);
604
+ scope.domElement.addEventListener('wheel', onMouseWheel);
605
+ scope.domElement.addEventListener('touchstart', onTouchStart);
606
+ scope.domElement.addEventListener('touchend', onTouchEnd);
607
+ scope.domElement.addEventListener('touchmove', onTouchMove);
608
+ //
609
+ // public methods
610
+ //
611
+ this.getPolarAngle = function () {
612
+ return spherical.phi;
613
+ };
614
+ this.getAzimuthalAngle = function () {
615
+ return spherical.theta;
616
+ };
617
+ // eslint-disable-next-line no-shadow
618
+ this.listenToKeyEvents = function (domElement) {
619
+ domElement.addEventListener('keydown', onKeyDown);
620
+ this._domElementKeyEvents = domElement;
621
+ };
622
+ this.saveState = function () {
623
+ scope.target0.copy(scope.target);
624
+ scope.position0.copy(scope.object.position);
625
+ scope.zoom0 = scope.object.zoom;
626
+ };
627
+ this.reset = function () {
628
+ scope.target.copy(scope.target0);
629
+ scope.object.position.copy(scope.position0);
630
+ scope.object.zoom = scope.zoom0;
631
+ scope.object.updateProjectionMatrix();
632
+ scope.dispatchEvent(changeEvent);
633
+ scope.update();
634
+ state = STATE.NONE;
635
+ };
636
+ // this method is exposed, but perhaps it would be better if we can make it private...
637
+ this.update = (function () {
638
+ const offset = new THREE.Vector3();
639
+ // so camera.up is the orbit axis
640
+ const quat = new THREE.Quaternion().setFromUnitVectors(object.up, new THREE.Vector3(0, 1, 0));
641
+ const quatInverse = quat.clone().invert();
642
+ const lastPosition = new THREE.Vector3();
643
+ const lastQuaternion = new THREE.Quaternion();
644
+ const twoPI = 2 * Math.PI;
645
+ return function update() {
646
+ const { position } = scope.object;
647
+ offset.copy(position).sub(scope.target);
648
+ // rotate offset to "y-axis-is-up" space
649
+ offset.applyQuaternion(quat);
650
+ // angle from z-axis around y-axis
651
+ spherical.setFromVector3(offset);
652
+ if (scope.autoRotate && state === STATE.NONE) {
653
+ rotateLeft(getAutoRotationAngle());
654
+ }
655
+ if (scope.enableDamping) {
656
+ spherical.theta += sphericalDelta.theta * scope.dampingFactor;
657
+ spherical.phi += sphericalDelta.phi * scope.dampingFactor;
658
+ }
659
+ else {
660
+ spherical.theta += sphericalDelta.theta;
661
+ spherical.phi += sphericalDelta.phi;
662
+ }
663
+ // restrict theta to be between desired limits
664
+ let min = scope.minAzimuthAngle;
665
+ let max = scope.maxAzimuthAngle;
666
+ if (Number.isFinite(min) && Number.isFinite(max)) {
667
+ if (min < -Math.PI)
668
+ min += twoPI;
669
+ else if (min > Math.PI)
670
+ min -= twoPI;
671
+ if (max < -Math.PI)
672
+ max += twoPI;
673
+ else if (max > Math.PI)
674
+ max -= twoPI;
675
+ if (min <= max) {
676
+ spherical.theta = Math.max(min, Math.min(max, spherical.theta));
677
+ }
678
+ else {
679
+ spherical.theta = (spherical.theta > (min + max) / 2)
680
+ ? Math.max(min, spherical.theta)
681
+ : Math.min(max, spherical.theta);
682
+ }
683
+ }
684
+ // restrict phi to be between desired limits
685
+ spherical.phi = Math.max(scope.minPolarAngle, Math.min(scope.maxPolarAngle, spherical.phi));
686
+ spherical.makeSafe();
687
+ spherical.radius *= scale;
688
+ // restrict radius to be between desired limits
689
+ spherical.radius = Math.max(scope.minDistance, Math.min(scope.maxDistance, spherical.radius));
690
+ // move target to panned location
691
+ if (scope.enableDamping === true) {
692
+ scope.target.addScaledVector(panOffset, scope.dampingFactor);
693
+ }
694
+ else {
695
+ scope.target.add(panOffset);
696
+ }
697
+ offset.setFromSpherical(spherical);
698
+ // rotate offset back to "camera-up-vector-is-up" space
699
+ offset.applyQuaternion(quatInverse);
700
+ position.copy(scope.target).add(offset);
701
+ scope.object.lookAt(scope.target);
702
+ if (scope.enableDamping === true) {
703
+ sphericalDelta.theta *= (1 - scope.dampingFactor);
704
+ sphericalDelta.phi *= (1 - scope.dampingFactor);
705
+ panOffset.multiplyScalar(1 - scope.dampingFactor);
706
+ }
707
+ else {
708
+ sphericalDelta.set(0, 0, 0);
709
+ panOffset.set(0, 0, 0);
710
+ }
711
+ scale = 1;
712
+ // update condition is:
713
+ // min(camera displacement, camera rotation in radians)^2 > EPS
714
+ // using small-angle approximation cos(x/2) = 1 - x^2 / 8
715
+ if (zoomChanged
716
+ || lastPosition.distanceToSquared(scope.object.position) > EPS
717
+ || 8 * (1 - lastQuaternion.dot(scope.object.quaternion)) > EPS) {
718
+ scope.dispatchEvent(changeEvent);
719
+ lastPosition.copy(scope.object.position);
720
+ lastQuaternion.copy(scope.object.quaternion);
721
+ zoomChanged = false;
722
+ return true;
723
+ }
724
+ return false;
725
+ };
726
+ }());
727
+ this.dispose = function () {
728
+ scope.domElement.removeEventListener('contextmenu', onContextMenu);
729
+ scope.domElement.removeEventListener('pointerdown', onPointerDown);
730
+ scope.domElement.removeEventListener('wheel', onMouseWheel);
731
+ scope.domElement.removeEventListener('touchstart', onTouchStart);
732
+ scope.domElement.removeEventListener('touchend', onTouchEnd);
733
+ scope.domElement.removeEventListener('touchmove', onTouchMove);
734
+ scope.domElement.ownerDocument.removeEventListener('pointermove', onPointerMove);
735
+ scope.domElement.ownerDocument.removeEventListener('pointerup', onPointerUp);
736
+ if (scope._domElementKeyEvents !== null) {
737
+ scope._domElementKeyEvents.removeEventListener('keydown', onKeyDown);
738
+ }
739
+ // scope.dispatchEvent( { type: 'dispose' } ); // should this be added here?
740
+ };
741
+ // force an update at start
742
+ this.update();
743
+ }
744
+ }
745
+ export { OrbitControls };
746
+ //# sourceMappingURL=orbit-controls.js.map