@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,132 @@
1
+ import { Externals, NS_THREE } from '../stage/externals';
2
+ import { EventHub } from './event-hub';
3
+ import { LruCache } from './lru-cache';
4
+
5
+ class TextureCache {
6
+ private textureLoader: NS_THREE.TextureLoader;
7
+
8
+ private textureCache: LruCache<NS_THREE.Texture>;
9
+
10
+ private workingTasks: Map<string, Promise<NS_THREE.Texture> >;
11
+
12
+ private static sharedHdFaceTextureCache: TextureCache;
13
+
14
+ private static sharedLdFaceTextureCache: TextureCache;
15
+
16
+ // public static hdFaceTexturesCache: TextureCache;
17
+
18
+ // public static ldFaceTexturesCache: TextureCache;
19
+
20
+ public static disposeAll(): void {
21
+ this.hdFaceTexturesCache.dispose();
22
+ this.ldFaceTexturesCache.dispose();
23
+ }
24
+
25
+ public static get hdFaceTexturesCache(): TextureCache {
26
+ if (!TextureCache.sharedHdFaceTextureCache) TextureCache.sharedHdFaceTextureCache = new TextureCache(32);
27
+ return TextureCache.sharedHdFaceTextureCache;
28
+ }
29
+
30
+ public static get ldFaceTexturesCache(): TextureCache {
31
+ if (!TextureCache.sharedLdFaceTextureCache) TextureCache.sharedLdFaceTextureCache = new TextureCache(32);
32
+ return TextureCache.sharedLdFaceTextureCache;
33
+ }
34
+
35
+ dispose(): void {
36
+ this.textureCache.clear((key: string, value: NS_THREE.Texture) => {
37
+ value.dispose();
38
+ });
39
+ }
40
+
41
+ constructor(capacity: number) {
42
+ const { THREE } = Externals.getInstance();
43
+ // if (!TextureCache.hdFaceTexturesCache) TextureCache.hdFaceTexturesCache = new TextureCache(32);
44
+ // if (!TextureCache.ldFaceTexturesCache) TextureCache.ldFaceTexturesCache = new TextureCache(64);
45
+ this.textureLoader = new THREE.TextureLoader();
46
+ this.textureCache = new LruCache<NS_THREE.Texture>(capacity);
47
+ this.workingTasks = new Map<string, Promise<NS_THREE.Texture> >();
48
+ }
49
+
50
+ /**
51
+ * @ignore
52
+ * 获取贴图,先从缓存中获取,若未命中则异步加载贴图
53
+ * @param textureURL 贴图的图像URL
54
+ */
55
+ public async loadTexture(textureURL: string, cacheAnyway: boolean|undefined = true): Promise<NS_THREE.Texture> {
56
+ const retTexture = this.textureCache.get(textureURL);
57
+ if (retTexture) {
58
+ // console.log(`#TiledCube# Use cached Texture:${textureURL}`);
59
+ return retTexture;
60
+ }
61
+
62
+ let workingTask = this.workingTasks.get(textureURL);
63
+ if (!workingTask) {
64
+ workingTask = new Promise((resolve, reject) => {
65
+ // console.log(`#PanoCtrl# Will load Texture:${textureURL}`);
66
+ this.textureLoader.load(textureURL,
67
+ (texture) => {
68
+ // console.info(`#TiledCube# Texture loaded for key '${textureURL}':`, texture);
69
+ // console.log(`#PanoCtrl# cacheAnyway=${cacheAnyway}`);
70
+ this.textureCache.put(textureURL, texture, (k: string, v: NS_THREE.Texture) => {
71
+ // 销毁立方体贴图资源
72
+ // console.log(`#PanoCtrl# By evicting retTexture with key '${k}', dispose it`);
73
+ v.dispose();
74
+ }, !cacheAnyway);
75
+ this.workingTasks.delete(textureURL);
76
+ resolve(texture);
77
+ },
78
+ () => {},
79
+ (event: ErrorEvent) => {
80
+ // console.log(`#PanoCtrl# Error with key '${textureURL}', event=${event}`);
81
+ EventHub.emit('error', `Loading '${textureURL}' failed.`);
82
+ this.workingTasks.delete(textureURL);
83
+ reject(event);
84
+ });
85
+ });
86
+ this.workingTasks.set(textureURL, workingTask);
87
+ }
88
+ return workingTask;
89
+ }
90
+
91
+ /**
92
+ * 获取一组贴图,若没命中则异步加载
93
+ * @param textureURLs 需要获取的贴图URL数组
94
+ * @param waitForReadyCount 指定函数必须在textureURLsArray中的前多少个贴图获取到以后才能返回
95
+ */
96
+ public async preloadTextures(
97
+ textureURLs: (string|undefined)[],
98
+ waitForReadyCount: number,
99
+ ): Promise<NS_THREE.Texture[]> {
100
+ const waitCount = waitForReadyCount > textureURLs.length ? textureURLs.length : waitForReadyCount;
101
+ // console.info('#TiledCube# preloadTextures:', textureURLs);
102
+ const promises: (Promise<NS_THREE.Texture>|undefined)[] = textureURLs.map(
103
+ (textureURL: string, index: number) => {
104
+ if (textureURL) {
105
+ return this.loadTexture(textureURL, index < waitForReadyCount);
106
+ }
107
+ return undefined;
108
+ },
109
+ );
110
+ const mustPromises: Promise<NS_THREE.Texture>[] = [];
111
+ for (let i = 0; i < waitCount; i += 1) {
112
+ const promise = promises[i];
113
+ if (promise) {
114
+ mustPromises.push(promise);
115
+ }
116
+ }
117
+ return Promise.all(mustPromises);
118
+ }
119
+
120
+ public recycleTexture(textureURL: string): boolean {
121
+ // console.log(`#TiledCube# TextureCache.recycleTexture(${textureURL})`);
122
+ return this.textureCache.recycle(textureURL, (key: string, value: NS_THREE.Texture) => {
123
+ value.dispose();
124
+ });
125
+ }
126
+
127
+ public getCapacity(): number { return this.textureCache.getCapacity(); }
128
+
129
+ public getTotalCost(): number { return this.textureCache.getTotalCost(); }
130
+ }
131
+
132
+ export { TextureCache };
@@ -0,0 +1,563 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import { NS_THREE, Externals } from '../stage/externals';
3
+
4
+ const TEXT_MAX = 16;
5
+ const TEXT_SEGMENT = 4;
6
+
7
+ // 默认配置值
8
+ const DEFAULT_TEXT_PIXEL = 512;
9
+ const DEFAULT_IMG_TEXT_PIXEL = 2048;
10
+
11
+ // 配置接口
12
+ interface TileConfig {
13
+ textPixel?: number;
14
+ imgTextPixel?: number;
15
+ }
16
+
17
+ // 全局配置对象
18
+ let tileConfig: TileConfig = {};
19
+
20
+ // 获取配置的 TEXT_PIXEL 值
21
+ function getTextPixel(): number {
22
+ return tileConfig.textPixel || DEFAULT_TEXT_PIXEL;
23
+ }
24
+
25
+ // 获取配置的 IMG_TEXT_PIXEL 值
26
+ function getImgTextPixel(): number {
27
+ return tileConfig.imgTextPixel || DEFAULT_IMG_TEXT_PIXEL;
28
+ }
29
+
30
+ // 设置瓦片配置
31
+ function setTileConfig(config: TileConfig): void {
32
+ tileConfig = { ...tileConfig, ...config };
33
+ }
34
+
35
+ // 导出常量(使用函数获取当前配置值)
36
+ export const TEXT_PIXEL = getTextPixel();
37
+ export const IMG_TEXT_PIXEL = getImgTextPixel();
38
+
39
+ // const IMG_TEXT_PIXEL = 4096;
40
+ // const IMG_URL = './imgs/';
41
+
42
+ const USE_CANVAS = false;
43
+ // const USE_TEXTURE_INDEX = true;
44
+ const USE_TEXTURE_BLACK = false;
45
+
46
+ // const testSides = ['right', 'left', 'up', 'down', 'front', 'back'];
47
+ // const sides = ['r', 'l', 't', 'd', 'f', 'b'];
48
+
49
+ const VertexShader = `
50
+ attribute vec3 uvi;
51
+ varying vec3 vUv;
52
+ uniform bool flipX;
53
+ uniform bool flipY;
54
+
55
+ void main(){
56
+ vUv = uvi;
57
+ bool useCanvas = ${USE_CANVAS};
58
+ if(flipX){
59
+ vUv.x = 1.0-vUv.x;
60
+ }
61
+ if(flipY){
62
+ vUv.y = 1.0-vUv.y;
63
+ }
64
+ if(useCanvas){
65
+ vUv.y = 1.0-vUv.y;
66
+ }
67
+ gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
68
+ }
69
+ `;
70
+ const FragmentShader = `
71
+ uniform sampler2D mTexture0;
72
+ uniform sampler2D mTexture1;
73
+ uniform sampler2D mTexture2;
74
+ uniform sampler2D mTexture3;
75
+ uniform sampler2D mTexture4;
76
+ uniform sampler2D mTexture5;
77
+ uniform sampler2D mTexture6;
78
+ uniform sampler2D mTexture7;
79
+ uniform sampler2D mTexture8;
80
+ uniform sampler2D mTexture9;
81
+ uniform sampler2D mTexture10;
82
+ uniform sampler2D mTexture11;
83
+ uniform sampler2D mTexture12;
84
+ uniform sampler2D mTexture13;
85
+ uniform sampler2D mTexture14;
86
+ uniform sampler2D mTexture15;
87
+
88
+ uniform int uvMax;
89
+ varying vec3 vUv;
90
+ uniform bool black;
91
+
92
+ int modi(int x, int y) {
93
+ int result = x - ((x / y) * y);
94
+ return result < 0 ? result + y : result;
95
+ }
96
+
97
+ float modf(float x, float y){
98
+ float result = x - y * floor(x/y);
99
+ return result < 0.0 ? result + y : result;
100
+ }
101
+
102
+ int getInt(float value) {
103
+ // 添加边界检查
104
+ if (value < 0.0) return 0;
105
+ if (value > float(0x7FFFFFFF)) return 0x7FFFFFFF;
106
+
107
+ float m = modf(value, 1.0);
108
+ return m < 1.0 && m > 0.6 ? int(value) + 1 : int(value);
109
+ }
110
+
111
+ vec4 getSample(int index, vec2 uv) {
112
+ if (index == 0) return texture2D(mTexture0, uv);
113
+ if (index == 1) return texture2D(mTexture1, uv);
114
+ if (index == 2) return texture2D(mTexture2, uv);
115
+ if (index == 3) return texture2D(mTexture3, uv);
116
+ if (index == 4) return texture2D(mTexture4, uv);
117
+ if (index == 5) return texture2D(mTexture5, uv);
118
+ if (index == 6) return texture2D(mTexture6, uv);
119
+ if (index == 7) return texture2D(mTexture7, uv);
120
+ if (index == 8) return texture2D(mTexture8, uv);
121
+ if (index == 9) return texture2D(mTexture9, uv);
122
+ if (index == 10) return texture2D(mTexture10, uv);
123
+ if (index == 11) return texture2D(mTexture11, uv);
124
+ if (index == 12) return texture2D(mTexture12, uv);
125
+ if (index == 13) return texture2D(mTexture13, uv);
126
+ if (index == 14) return texture2D(mTexture14, uv);
127
+ if (index == 15) return texture2D(mTexture15, uv);
128
+ return vec4(0.0, 0.0, 0.0, 1.0); // 默认返回透明黑色
129
+ }
130
+
131
+ vec2 getUv(vec2 uvs, int pos){
132
+ // 严格的边界保护
133
+ float min2 = 1.0 / 4096.0;
134
+ float max2 = 1.0 - min2;
135
+ vec2 clampedUvs = clamp(uvs, vec2(min2), vec2(max2));
136
+
137
+ vec2 tuv = clampedUvs / 4.0;
138
+ int x = modi(pos, 4);
139
+ int y = pos / 4;
140
+
141
+ float segment = 1.0 / 4.0;
142
+ vec2 base = vec2(float(x) * segment, float(y) * segment);
143
+
144
+ // 添加额外的边界检查
145
+ return clamp(tuv + base, vec2(0.0), vec2(1.0));
146
+ }
147
+
148
+ void main(){
149
+ vec2 tuv = vUv.xy;
150
+ int indexPos = getInt(vUv.z);
151
+ int index = indexPos / 100;
152
+ int pos = modi(indexPos, 100);
153
+ tuv = getUv(tuv, pos);
154
+ gl_FragColor = getSample(index, tuv);
155
+ }`;
156
+ /**
157
+ * 获取瓦片信息id
158
+ * @ignore
159
+ * @param pid pid
160
+ * @param level 等级
161
+ * @param index 下标
162
+ * @returns id字符串
163
+ */
164
+ function getTileInfoId(pid: number, level: number, index: number): string {
165
+ return `${pid}-${level}-${index}`;
166
+ }
167
+
168
+ interface FaceConfig {
169
+ normal: NS_THREE.Vector3;
170
+ trans: NS_THREE.Vector3;
171
+ euler?: NS_THREE.Euler;
172
+ face: number; // 0.1-0.6,是right,left, top, bottom, front, back,
173
+ flipX: boolean;
174
+ flipY: boolean;
175
+ revers: boolean;
176
+ }
177
+
178
+ /**
179
+ * 六面配置
180
+ */
181
+ const CubeFaceConfig: FaceConfig[] = [
182
+
183
+ {
184
+ normal: new NS_THREE.Vector3(0, 0, 1),
185
+ trans: new NS_THREE.Vector3(0, 0, 0.5),
186
+ euler: new NS_THREE.Euler(0, Math.PI / 2, -Math.PI / 2),
187
+ face: 0,
188
+ flipX: false,
189
+ flipY: false,
190
+ revers: false,
191
+ },
192
+ {
193
+ normal: new NS_THREE.Vector3(0, 0, 1),
194
+ trans: new NS_THREE.Vector3(0, 0, 0.5),
195
+ euler: new NS_THREE.Euler(0, -Math.PI / 2, -Math.PI / 2),
196
+ face: 1,
197
+ flipX: true,
198
+ flipY: true,
199
+ revers: false,
200
+ // revers: true,
201
+ },
202
+
203
+ {
204
+ normal: new NS_THREE.Vector3(0, 0, 1),
205
+ trans: new NS_THREE.Vector3(0, 0, 0.5),
206
+ face: 2,
207
+ flipX: false,
208
+ flipY: false,
209
+ revers: false,
210
+ },
211
+ {
212
+ normal: new NS_THREE.Vector3(0, 0, 1),
213
+ trans: new NS_THREE.Vector3(0, 0, -0.5),
214
+ face: 3,
215
+ flipX: false,
216
+ flipY: true,
217
+ revers: true,
218
+ },
219
+ {
220
+ normal: new NS_THREE.Vector3(0, 0, 1),
221
+ trans: new NS_THREE.Vector3(0, 0, -0.5),
222
+ euler: new NS_THREE.Euler(Math.PI / 2, 0, 0),
223
+ face: 4,
224
+ flipX: false,
225
+ flipY: true,
226
+ revers: true,
227
+ },
228
+ {
229
+ normal: new NS_THREE.Vector3(0, 0, 1),
230
+ trans: new NS_THREE.Vector3(0, 0, -0.5),
231
+ euler: new NS_THREE.Euler(-Math.PI / 2, 0, 0),
232
+ face: 5,
233
+ flipX: true,
234
+ flipY: false,
235
+ revers: true,
236
+ },
237
+ ];
238
+ /**
239
+ * 根据参数获取顶点数据
240
+ * @ignore
241
+ * @param level 等级
242
+ * @param index 下标
243
+ * @param revers 逆转
244
+ * @param flipX x翻转
245
+ * @param flipY y翻转
246
+ * @returns 顶点数组
247
+ */
248
+ function getVertices(level: number, index: number, revers: boolean, flipX: boolean, flipY: boolean):
249
+ NS_THREE.Vector3[] {
250
+ const { THREE } = Externals.getInstance();
251
+
252
+ const vertices = [] as NS_THREE.Vector3[];
253
+ const base = new THREE.Vector3(-0.5, -0.5, 0);
254
+ const segment = 2 ** level;
255
+ const segmentSize = 1 / segment;
256
+ let j = index % segment;
257
+ let i = Math.floor(index / segment);
258
+ if (!revers) {
259
+ j = segment - 1 - j;
260
+ i = segment - 1 - i;
261
+ }
262
+ if (flipX) {
263
+ i = segment - 1 - i;
264
+ }
265
+ if (flipY) {
266
+ j = segment - 1 - j;
267
+ }
268
+ const x0 = base.x + j * segmentSize;
269
+ const y0 = base.y + i * segmentSize;
270
+ const x1 = x0;
271
+ const y1 = y0 + segmentSize;
272
+ const x2 = x0 + segmentSize;
273
+ const y2 = y0 + segmentSize;
274
+ const x3 = x0 + segmentSize;
275
+ const y3 = y0;
276
+ vertices.push(new THREE.Vector3(x0, y0, 0));
277
+ vertices.push(new THREE.Vector3(x1, y1, 0));
278
+ vertices.push(new THREE.Vector3(x2, y2, 0));
279
+ vertices.push(new THREE.Vector3(x3, y3, 0));
280
+ return vertices;
281
+ }
282
+ /**
283
+ * info说明 TileTextureInfo
284
+ * pid pid.index // pid为全景id, index为0-5的该场景的面小标
285
+ * textureIndex index*100 + pos // index 为textures的下标, 该纹理的区域位置,以2048*2048算的话现在为0-15
286
+ * level 当前的level等级
287
+ * index 该level等级下的平面所在区域
288
+ */
289
+ class TileTextureInfo {
290
+ /** @ignore */
291
+ public pfid: number;
292
+
293
+ /** @ignore 纹理坐标 */
294
+ public textureIndex: number;
295
+
296
+ /** @ignore 等级 */
297
+ public level: number;
298
+
299
+ /** @ignore 坐标 */
300
+ public index: number;
301
+
302
+ /** @ignore 冻结 */
303
+ public frize: boolean;
304
+
305
+ /** @ignore 是否在相机内 */
306
+ public isInCamera: boolean;
307
+
308
+ /** @ignore 是否将要在相机内 */
309
+ public willIsInCamera: boolean;
310
+
311
+ /** @ignore 顶点 */
312
+ private _originVertices: NS_THREE.Vector3[];
313
+
314
+ /** @ignore */
315
+ public rootUrl: string;
316
+
317
+ /** @ignore */
318
+ public offLineRootUrl: string;
319
+
320
+ /** @ignore */
321
+ public offLineLevel = -1;
322
+
323
+ /** @ignore */
324
+ public time: number;
325
+
326
+ /** @ignore */
327
+ public centerDis: number;
328
+
329
+ /**
330
+ * 构造
331
+ * @ignore
332
+ * @param pfid 全景面id
333
+ * @param textureIndex 纹理下标
334
+ * @param level 等级
335
+ * @param index 下标
336
+ * @param rootUrl 根地址
337
+ */
338
+ constructor(pfid?: number, textureIndex?: number, level?: number, index?: number,
339
+ rootUrl?: string, offLineLevel?: number, offLineRootUrl?: string) {
340
+ this.pfid = pfid as number;
341
+ this.textureIndex = textureIndex as number;
342
+ this.level = level as number;
343
+ this.index = index as number;
344
+ this.isInCamera = false;
345
+ this.rootUrl = rootUrl || '';
346
+ this.offLineLevel = offLineLevel == null ? -1 : offLineLevel;
347
+ this.offLineRootUrl = offLineRootUrl || '';
348
+ }
349
+
350
+ /** @ignore */
351
+ public get id(): string {
352
+ return getTileInfoId(this.pfid, this.level, this.index);
353
+ }
354
+
355
+ /** @ignore */
356
+ public get originVertices(): NS_THREE.Vector3[] {
357
+ let vertices = this._originVertices;
358
+ if (!vertices) {
359
+ const face = (this.pfid * 10) % 10 - 1;
360
+ const config = CubeFaceConfig[face];
361
+ const { revers, flipX, flipY } = config;
362
+ vertices = this._originVertices = getVertices(this.level, this.index, revers, flipX, flipY);
363
+ }
364
+ return vertices;
365
+ }
366
+
367
+ /**
368
+ * 判定是否在相机内
369
+ * @ignore
370
+ * @param matrix 矩阵
371
+ * @param camera 相机
372
+ * @returns bool
373
+ */
374
+ public inCamera(matrix: NS_THREE.Matrix4, camera: NS_THREE.Camera): boolean {
375
+ const { THREE } = Externals.getInstance();
376
+ const vertices = this.originVertices;
377
+ const center = new THREE.Vector3(0, 0, 0);
378
+ center.applyMatrix4(matrix);
379
+ center.project(camera);
380
+ this.centerDis = center.length();
381
+ for (let i = 0; i < vertices.length; i++) {
382
+ const vertex = vertices[i].clone();
383
+ vertex.applyMatrix4(matrix);
384
+ vertex.project(camera);
385
+ if (vertex.x > -1 && vertex.x < 1 && vertex.y > -1 && vertex.y < 1 && vertex.z > -1 && vertex.z < 1) {
386
+ return true;
387
+ }
388
+ }
389
+ return false;
390
+ }
391
+
392
+ /**
393
+ * @ignore
394
+ * 目标id
395
+ */
396
+ public get targetTid(): number {
397
+ return Math.floor(this.pfid);
398
+ }
399
+ }
400
+ /**
401
+ * 瓦片工具类
402
+ */
403
+ class TileUtil {
404
+ /** 美帧最大纹理更新个数 */
405
+ public static updateTextureMax = 1;
406
+
407
+ /** 等级最小限制 */
408
+ public static levelMin = 0;
409
+
410
+ /** 等级最大限制 */
411
+ public static levelMax = 2;
412
+
413
+ /** 优先重置大小 */
414
+ public static resizeFirst = false;
415
+
416
+ /**
417
+ * 获取xy
418
+ * @ignore
419
+ * @param value 目标值
420
+ * @param segment 分段
421
+ * @returns {x,y}
422
+ */
423
+ public static getXY(value: number, segment: number): { x: number; y: number } {
424
+ const y = Math.floor(value / segment);
425
+ const x = value % segment;
426
+ return { x, y };
427
+ }
428
+
429
+ /**
430
+ * 根据level等级获取分段
431
+ * @ignore
432
+ * @param level 等级
433
+ * @returns 分段数
434
+ */
435
+ public static getSegment(level: number): number {
436
+ return 2 ** level;
437
+ }
438
+
439
+ /**
440
+ * 根据level等级获取总数量
441
+ * @ignore
442
+ * @param level 等级
443
+ * @returns 总数量
444
+ */
445
+ public static getCount(level: number): number {
446
+ const segment = TileUtil.getSegment(level);
447
+ return segment * segment;
448
+ }
449
+
450
+ /**
451
+ * 获取图片信息
452
+ * @ignore
453
+ * @param pid 全景id
454
+ * @param index 下标
455
+ * @param level 等级
456
+ * @returns {url, id}
457
+ */
458
+ public static getImageInfo2(
459
+ pfid: number, index: number, level: number, rootUrl: string,
460
+ ): {
461
+ url: string; id: string;
462
+ } {
463
+ // const tt = (pfid * 10) % 10 - 1;
464
+ // const type = testSides[tt];
465
+ const segment = TileUtil.getSegment(level);
466
+ const imgPx = getImgTextPixel() / segment;
467
+ let { x, y } = TileUtil.getXY(index, segment);
468
+ x = segment - 1 - x;
469
+ y = segment - 1 - y;
470
+ const crop = `/crop,x_${imgPx * x},y_${imgPx * y},w_${imgPx},h_${imgPx}`;
471
+ const resize = `/resize,m_lfit,w_${getTextPixel()},h_${getTextPixel()}`;
472
+ const url = `${rootUrl}?x-bce-process=image${crop}${resize}`;
473
+ // const url = `https://robot-vr-public.cdn.bcebos.com/image/panoramas/0/43_${sides[tt]}.jpg?x-bce-process=image${crop}${resize}`;
474
+ const id = `${pfid}-${level}-${x}-${y}`;
475
+ return { id, url };
476
+ }
477
+
478
+ /**
479
+ * 获取图片信息
480
+ * @param info
481
+ * @returns
482
+ */
483
+ public static getImageInfo(info: TileTextureInfo): { url: string; id: string } {
484
+ const {
485
+ pfid, index, level, rootUrl, offLineLevel, offLineRootUrl,
486
+ } = info;
487
+ const segment = TileUtil.getSegment(level);
488
+ const imgPx = getImgTextPixel() / segment;
489
+ let { x, y } = TileUtil.getXY(index, segment);
490
+ x = segment - 1 - x;
491
+ y = segment - 1 - y;
492
+ let url = '';
493
+ if (level <= offLineLevel) {
494
+ url = `${offLineRootUrl}_${level}_${index}.jpg`;
495
+ } else {
496
+ const crop = `/crop,x_${imgPx * x},y_${imgPx * y},w_${imgPx},h_${imgPx}`;
497
+ const resize = `/resize,m_lfit,w_${getTextPixel()},h_${getTextPixel()}`;
498
+ const fistR = TileUtil.resizeFirst ? `/resize,m_lfit,w_${getImgTextPixel()},h_${getImgTextPixel()}` : '';
499
+ url = `${rootUrl}?x-bce-process=image${fistR}${crop}${resize}`;
500
+ // const url = `https://robot-vr-public.cdn.bcebos.com/image/panoramas/0/43_${sides[tt]}.jpg?x-bce-process=image${crop}${resize}`;
501
+ }
502
+ const id = `${pfid}-${level}-${x}-${y}`;
503
+ return { id, url };
504
+ }
505
+
506
+ public static getTileInfoId = getTileInfoId;
507
+
508
+ public static getVertices = getVertices;
509
+
510
+ /**
511
+ * 防抖
512
+ * @param cb
513
+ * @param time
514
+ * @returns
515
+ */
516
+ public static antiShake(cb: Function, time: number): Function {
517
+ let timer: any;
518
+ return (...args: any[]): void => {
519
+ if (timer) {
520
+ clearTimeout(timer);
521
+ }
522
+ timer = setTimeout(() => {
523
+ cb(...args);
524
+ timer = null;
525
+ }, time);
526
+ };
527
+ }
528
+
529
+ /**
530
+ * 节流
531
+ * @param cb
532
+ * @param time
533
+ * @returns
534
+ */
535
+ public static throttle(cb: Function, time: number): Function {
536
+ let timer: any;
537
+ return (...args: any[]): void => {
538
+ if (timer) {
539
+ return;
540
+ }
541
+ timer = setTimeout(() => {
542
+ cb(...args);
543
+ timer = null;
544
+ }, time);
545
+ };
546
+ }
547
+ }
548
+ export {
549
+ TileUtil,
550
+ TileTextureInfo,
551
+ TEXT_MAX,
552
+ TEXT_SEGMENT,
553
+ VertexShader,
554
+ FragmentShader,
555
+ FaceConfig,
556
+ CubeFaceConfig,
557
+ USE_CANVAS,
558
+ USE_TEXTURE_BLACK,
559
+ getTextPixel,
560
+ getImgTextPixel,
561
+ setTileConfig,
562
+ TileConfig,
563
+ };