ohzi-core 6.14.2 → 6.15.0

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 (438) hide show
  1. package/README.md +9 -9
  2. package/build/index.module.js +1 -1
  3. package/build/index.module.js.map +1 -1
  4. package/package.json +51 -51
  5. package/src/.vscode/settings.json +2 -2
  6. package/src/BaseApplication.js +23 -23
  7. package/src/Browser.js +79 -79
  8. package/src/CameraManager.js +19 -19
  9. package/src/Capabilities.js +11 -11
  10. package/src/Configuration.js +22 -22
  11. package/src/CustomBezierCurve.js +44 -44
  12. package/src/Debug.js +260 -260
  13. package/src/EventManager.js +150 -150
  14. package/src/Graphics.js +337 -337
  15. package/src/Initializer.js +57 -57
  16. package/src/Input.js +66 -66
  17. package/src/KeyboardInput.js +135 -135
  18. package/src/OS.js +58 -58
  19. package/src/OScreen.js +74 -74
  20. package/src/OrthographicCamera.js +13 -13
  21. package/src/PerspectiveCamera.js +13 -13
  22. package/src/ReflectionPlaneContext.js +17 -17
  23. package/src/RenderLayers.js +28 -28
  24. package/src/RenderLoop.js +97 -97
  25. package/src/RenderOrder.js +38 -38
  26. package/src/ResourceContainer.js +39 -39
  27. package/src/SceneManager.js +44 -44
  28. package/src/Screen.js +54 -54
  29. package/src/Time.js +57 -57
  30. package/src/UI.js +90 -90
  31. package/src/action_sequencer/ActionEvent.js +15 -15
  32. package/src/action_sequencer/ActionInterpolator.js +23 -23
  33. package/src/action_sequencer/ActionSequencer.js +246 -246
  34. package/src/action_sequencer/NumberInterpolator.js +25 -25
  35. package/src/action_sequencer/VectorInterpolator.js +20 -20
  36. package/src/blitter_index.js +13 -13
  37. package/src/canvas_drawer/CanvasDrawer.js +111 -111
  38. package/src/canvas_drawer/MultiLineTextDrawer.js +49 -49
  39. package/src/canvas_drawer/SimpleTextDrawer.js +47 -47
  40. package/src/components/AudioClip.js +55 -55
  41. package/src/components/AxisHelper.js +58 -58
  42. package/src/components/BaseObject.js +45 -45
  43. package/src/components/EdgeMesh.js +151 -151
  44. package/src/components/GeometryEdgeVisualizer.js +45 -45
  45. package/src/components/Grid.js +33 -33
  46. package/src/components/Line.js +199 -199
  47. package/src/components/MultiLinePath.js +19 -19
  48. package/src/components/MultiLineText2D.js +62 -62
  49. package/src/components/ObjectAxis.js +20 -20
  50. package/src/components/ObjectOrientedBoundingBox.js +201 -201
  51. package/src/components/PlaneHelper.js +36 -36
  52. package/src/components/Shape2D.js +42 -42
  53. package/src/components/Shape3D.js +38 -38
  54. package/src/components/Text2D.js +39 -39
  55. package/src/components/UIElement.js +208 -208
  56. package/src/components/UpdatableMaterialMesh.js +16 -16
  57. package/src/components/WorldImage.js +91 -91
  58. package/src/components/mouse_interactors/ObjectRotator.js +61 -61
  59. package/src/components/sdf_text/SDFText.js +154 -154
  60. package/src/components/sdf_text/SDFTextBatch.js +193 -193
  61. package/src/components/sdf_text/TextGlyph.js +15 -15
  62. package/src/data_textures/CustomDataTexture.js +51 -51
  63. package/src/data_textures/RGBADataTexture.js +12 -12
  64. package/src/data_textures/RGBAFloatDataTexture.js +12 -12
  65. package/src/data_textures/RGBDataTexture.js +12 -12
  66. package/src/data_textures/RGBFloatDataTexture.js +12 -12
  67. package/src/editor/ManipulatorHandle.js +70 -70
  68. package/src/editor/ObjectEditor.js +66 -66
  69. package/src/editor/ObjectManipulator.js +118 -118
  70. package/src/editor/ObjectPicker.js +75 -75
  71. package/src/editor/shaders/object_picker.frag +5 -5
  72. package/src/editor/shaders/object_picker.vert +7 -7
  73. package/src/gpu_particles/GPUParticleSystem.js +87 -87
  74. package/src/gpu_particles/ParticleAttribute.js +83 -83
  75. package/src/gpu_particles/ParticlePositionAttribute.js +20 -20
  76. package/src/html_utilities/CSSAnimator.js +64 -64
  77. package/src/html_utilities/css_animator_states/Animating.js +45 -45
  78. package/src/html_utilities/css_animator_states/Idle.js +25 -25
  79. package/src/index.js +217 -217
  80. package/src/materials/AddMaterial.js +17 -17
  81. package/src/materials/AlphaFilterMaterial.js +20 -20
  82. package/src/materials/BaseShaderMaterial.js +19 -19
  83. package/src/materials/BlitMaterial.js +28 -28
  84. package/src/materials/BloomComposeMaterial.js +22 -22
  85. package/src/materials/BoxBlurMaterial.js +13 -13
  86. package/src/materials/ClearAlphaMaterial.js +13 -13
  87. package/src/materials/ClearColorMaterial.js +31 -31
  88. package/src/materials/ClearDepthNormalMaterial.js +13 -13
  89. package/src/materials/DeferredRendererComposeMaterial.js +32 -32
  90. package/src/materials/DepthNormalMaterial.js +28 -28
  91. package/src/materials/DisplayNormalTextureMaterial.js +15 -15
  92. package/src/materials/DualFilteringBlurMaterial.js +11 -11
  93. package/src/materials/FXAAMaterial.js +10 -10
  94. package/src/materials/GaussianBlurMaterial.js +28 -28
  95. package/src/materials/LuminosityHighPassMaterial.js +15 -15
  96. package/src/materials/MedianFilterMaterial.js +42 -42
  97. package/src/materials/NormalMaterial.js +17 -17
  98. package/src/materials/SDFScreenTextMaterial.js +31 -31
  99. package/src/materials/SDFTextMaterial.js +37 -37
  100. package/src/materials/SSAOComposeMaterial.js +11 -11
  101. package/src/materials/SSAOMaterial.js +66 -66
  102. package/src/materials/ScreenSpaceTextureMaterial.js +65 -65
  103. package/src/materials/UIElementMaterial.js +27 -27
  104. package/src/materials/UnrealBloomComposeMaterial.js +95 -95
  105. package/src/materials/UnrealBlurMaterial.js +17 -17
  106. package/src/materials/UnrealComposeMaterial.js +24 -24
  107. package/src/materials/ViewPositionMaterial.js +17 -17
  108. package/src/materials/deferred/DeferredPointLightMaterial.js +39 -39
  109. package/src/materials/gpu_particles/AttributeUpdateMaterial.js +33 -33
  110. package/src/materials/gpu_particles/BasicParticleMaterial.js +23 -23
  111. package/src/materials/gpu_particles/ParticleStorageMaterial.js +27 -27
  112. package/src/materials/gpu_particles/PositionStorageMaterial.js +10 -10
  113. package/src/object_pool/Pool.js +73 -73
  114. package/src/primitives/Arrow.js +57 -57
  115. package/src/primitives/Cube.js +17 -17
  116. package/src/primitives/HorizontalPlane.js +18 -18
  117. package/src/primitives/Sphere.js +15 -15
  118. package/src/primitives/VerticalPlane.js +17 -17
  119. package/src/raycast/GroupRaycaster.js +41 -41
  120. package/src/raycast/PlaneDragResolver.js +89 -89
  121. package/src/raycast/PlaneRaycastResolver.js +22 -22
  122. package/src/raycast/PlaneRaycaster.js +23 -23
  123. package/src/raycast/RaycastResolver.js +22 -22
  124. package/src/raycast/SurfaceDragResolver.js +77 -77
  125. package/src/raycast/states/BaseState.js +16 -16
  126. package/src/raycast/states/IdleState.js +17 -17
  127. package/src/raycast/states/OnRaycastEnter.js +15 -15
  128. package/src/raycast/states/OnRaycastExit.js +16 -16
  129. package/src/raycast/states/OnRaycastHover.js +25 -25
  130. package/src/render_mode/BaseRender.js +32 -32
  131. package/src/render_mode/BloomRender.js +61 -61
  132. package/src/render_mode/DebugNormalsRender.js +20 -20
  133. package/src/render_mode/DeferredRender.js +112 -112
  134. package/src/render_mode/NormalAORender.js +71 -71
  135. package/src/render_mode/NormalRender.js +36 -36
  136. package/src/render_mode/OutlineRender.js +154 -154
  137. package/src/render_mode/PlanarReflectionsRender.js +118 -118
  138. package/src/render_mode/TransparencyMixRender.js +143 -143
  139. package/src/render_mode/UnrealBloomRender.js +109 -109
  140. package/src/render_utilities/Blitter.js +99 -99
  141. package/src/render_utilities/Blurrer.js +29 -29
  142. package/src/render_utilities/DepthAndNormalsRenderer.js +45 -45
  143. package/src/render_utilities/DualFilteringBlurrer.js +56 -56
  144. package/src/render_utilities/GaussianBlurrer.js +146 -146
  145. package/src/render_utilities/MedianFilter.js +66 -66
  146. package/src/render_utilities/ViewPositionRenderer.js +48 -48
  147. package/src/resource_loader/BasisLoader.js +49 -49
  148. package/src/resource_loader/FontLoader.js +46 -46
  149. package/src/resource_loader/GLTFDRACOLoader.js +2 -8
  150. package/src/resource_loader/JSONLoader.js +30 -30
  151. package/src/resource_loader/OBJLoader.js +46 -46
  152. package/src/resource_loader/PointArrayLoader.js +70 -70
  153. package/src/resource_loader/RGBETextureLoader.js +49 -49
  154. package/src/resource_loader/VideoLoader.js +30 -30
  155. package/src/shaders/add/add.frag +8 -8
  156. package/src/shaders/anti_aliasing/fxaa.frag +71 -71
  157. package/src/shaders/basic_color/basic_color.frag +5 -5
  158. package/src/shaders/basic_color/basic_color.vert +9 -9
  159. package/src/shaders/basic_line/basic_line.frag +36 -36
  160. package/src/shaders/basic_line/basic_line.vert +36 -36
  161. package/src/shaders/basic_texture/basic_texture.frag +9 -9
  162. package/src/shaders/basic_texture/basic_texture.vert +16 -16
  163. package/src/shaders/bloom/bloom_compose_frag.glsl +22 -22
  164. package/src/shaders/bloom/cheap_bloom_compose_frag.glsl +13 -13
  165. package/src/shaders/box_blur/box_blur.frag +24 -24
  166. package/src/shaders/box_blur/compose.frag +31 -31
  167. package/src/shaders/clear/clear_depth_normal.frag +24 -24
  168. package/src/shaders/copy/copy.frag +6 -6
  169. package/src/shaders/copy/copy.vert +5 -5
  170. package/src/shaders/deferred/blit_copy.vert +11 -11
  171. package/src/shaders/deferred/deferred_compose.frag +59 -59
  172. package/src/shaders/deferred/point_light.frag +66 -66
  173. package/src/shaders/deferred/point_light.vert +13 -13
  174. package/src/shaders/depth_normals/debug_normals.frag +47 -47
  175. package/src/shaders/depth_normals/depth_normals.frag +30 -30
  176. package/src/shaders/depth_normals/depth_normals.vert +12 -12
  177. package/src/shaders/dual_filter_blur/alpha_filter.frag +14 -14
  178. package/src/shaders/dual_filter_blur/downsample.frag +21 -21
  179. package/src/shaders/dual_filter_blur/upsample.frag +24 -24
  180. package/src/shaders/edge_visualizer/edge_visualizer.frag +17 -17
  181. package/src/shaders/edge_visualizer/edge_visualizer.vert +15 -15
  182. package/src/shaders/edges/corners.frag +10 -10
  183. package/src/shaders/edges/corners.vert +30 -30
  184. package/src/shaders/edges/edges.frag +6 -6
  185. package/src/shaders/edges/edges.vert +27 -27
  186. package/src/shaders/gaussian_blur/gaussian_blur.frag +24 -24
  187. package/src/shaders/gaussian_blur/unreal_bloom_compose.frag +24 -24
  188. package/src/shaders/gpu_particles/common_utils.glsl +12 -12
  189. package/src/shaders/gpu_particles/generic_storage.frag +7 -7
  190. package/src/shaders/gpu_particles/store/store_position.vert +14 -14
  191. package/src/shaders/gpu_particles/update/basic_update.frag +20 -20
  192. package/src/shaders/gpu_particles/visualize/visualize.frag +10 -10
  193. package/src/shaders/gpu_particles/visualize/visualize.vert +12 -12
  194. package/src/shaders/grid/grid.frag +16 -16
  195. package/src/shaders/grid/grid.vert +9 -9
  196. package/src/shaders/luminosity_high_pass/luminosity_high_pass.frag +22 -22
  197. package/src/shaders/median_filter/median_filter.frag +134 -134
  198. package/src/shaders/normal/normal.frag +6 -6
  199. package/src/shaders/normal/normal.vert +6 -6
  200. package/src/shaders/sdf_text/sdf_screen_text.frag +51 -51
  201. package/src/shaders/sdf_text/sdf_screen_text.vert +41 -41
  202. package/src/shaders/sdf_text/sdf_text.frag +53 -53
  203. package/src/shaders/sdf_text/sdf_text.vert +41 -41
  204. package/src/shaders/ssao/hbao.frag +264 -264
  205. package/src/shaders/ssao/ssao.frag +95 -95
  206. package/src/shaders/ssao/ssao.vert +10 -10
  207. package/src/shaders/ssao/ssao_compose.frag +14 -14
  208. package/src/shaders/transparent_mix/copy.frag +6 -6
  209. package/src/shaders/transparent_mix/transparent_mix.frag +18 -18
  210. package/src/shaders/transparent_mix/transparent_mix.vert +7 -7
  211. package/src/shaders/ui/ss_texture.frag +10 -10
  212. package/src/shaders/ui/ss_texture.vert +31 -31
  213. package/src/shaders/ui/ws_texture.vert +38 -38
  214. package/src/shaders/ui_element/ui_element.frag +11 -11
  215. package/src/shaders/ui_element/ui_element.vert +32 -32
  216. package/src/shaders/unreal_blur/unreal_blur.frag +24 -24
  217. package/src/shaders/unreal_blur/unreal_compose.frag +23 -23
  218. package/src/shaders/write_view_position/write_view_position.frag +6 -6
  219. package/src/shaders/write_view_position/write_view_position.vert +8 -8
  220. package/src/static_batcher/BatchedMesh.js +54 -54
  221. package/src/static_batcher/GeometryBatch.js +312 -312
  222. package/src/static_batcher/GeometryBatcher.js +63 -63
  223. package/src/static_batcher/MeshBatcher.js +56 -56
  224. package/src/ui/ui_element_position/ScreenSpacePosition.js +14 -14
  225. package/src/ui/ui_element_position/WorldSpacePosition.js +21 -21
  226. package/src/ui/ui_element_state/OnIdle.js +17 -17
  227. package/src/ui/ui_element_state/OnMouseEnter.js +26 -26
  228. package/src/ui/ui_element_state/OnMouseExit.js +15 -15
  229. package/src/ui/ui_element_state/OnMouseHover.js +31 -31
  230. package/src/ui/ui_element_state/UIElementState.js +18 -18
  231. package/src/utilities/ArrayUtilities.js +55 -55
  232. package/src/utilities/CameraUtilities.js +210 -210
  233. package/src/utilities/EasingFunctions.js +226 -226
  234. package/src/utilities/FrustumPointFitter.js +255 -255
  235. package/src/utilities/GeometryUtilities.js +74 -74
  236. package/src/utilities/HTMLUtilities.js +44 -44
  237. package/src/utilities/ImageUtilities.js +26 -26
  238. package/src/utilities/MeshSampler.js +152 -152
  239. package/src/utilities/ModelUtilities.js +161 -161
  240. package/src/utilities/OMath.js +155 -155
  241. package/src/utilities/OrthographicFrustumPointFitter.js +47 -47
  242. package/src/utilities/PerspectiveFrustumPointFitter.js +250 -250
  243. package/src/utilities/StringUtilities.js +32 -32
  244. package/src/utilities/TimeUtilities.js +22 -22
  245. package/src/utilities/Validation.js +34 -34
  246. package/src/view_components/ApplicationView.js +75 -75
  247. package/src/view_components/ViewComponent.js +72 -72
  248. package/src/view_components/ViewComponentManager.js +68 -68
  249. package/src/view_components/ViewContext.js +14 -14
  250. package/src/view_components/ViewManager.js +180 -180
  251. package/src/view_components/ViewState.js +54 -54
  252. package/src/view_components/transition/ActionSequencerBuilder.js +106 -106
  253. package/src/view_components/transition/DrawIOAnimationSheet.js +90 -90
  254. package/src/view_components/transition/TransitionTable.js +54 -54
  255. package/src/view_components/transition/ViewStateTransitionHandler.js +96 -96
  256. package/types/BaseApplication.d.ts +8 -8
  257. package/types/Browser.d.ts +12 -12
  258. package/types/CameraManager.d.ts +8 -8
  259. package/types/Capabilities.d.ts +6 -6
  260. package/types/Configuration.d.ts +6 -6
  261. package/types/Debug.d.ts +38 -38
  262. package/types/EventManager.d.ts +42 -42
  263. package/types/Graphics.d.ts +35 -35
  264. package/types/Initializer.d.ts +4 -4
  265. package/types/Input.d.ts +170 -170
  266. package/types/OS.d.ts +18 -18
  267. package/types/OScreen.d.ts +18 -18
  268. package/types/OrthographicCamera.d.ts +5 -5
  269. package/types/PerspectiveCamera.d.ts +5 -5
  270. package/types/ReflectionPlaneContext.d.ts +6 -6
  271. package/types/RenderLayers.d.ts +6 -6
  272. package/types/RenderLoop.d.ts +12 -12
  273. package/types/ResourceContainer.d.ts +8 -8
  274. package/types/SceneManager.d.ts +10 -10
  275. package/types/Screen.d.ts +17 -17
  276. package/types/Time.d.ts +11 -11
  277. package/types/UI.d.ts +15 -15
  278. package/types/action_sequencer/ActionEvent.d.ts +6 -6
  279. package/types/action_sequencer/ActionInterpolator.d.ts +5 -5
  280. package/types/action_sequencer/ActionSequencer.d.ts +30 -30
  281. package/types/action_sequencer/NumberInterpolator.d.ts +8 -8
  282. package/types/action_sequencer/VectorInterpolator.d.ts +7 -7
  283. package/types/canvas_drawer/CanvasDrawer.d.ts +13 -13
  284. package/types/canvas_drawer/MultiLineTextDrawer.d.ts +5 -5
  285. package/types/canvas_drawer/SimpleTextDrawer.d.ts +5 -5
  286. package/types/components/AudioClip.d.ts +12 -12
  287. package/types/components/AxisHelper.d.ts +6 -6
  288. package/types/components/BaseObject.d.ts +5 -5
  289. package/types/components/EdgeMesh.d.ts +13 -13
  290. package/types/components/GeometryEdgeVisualizer.d.ts +4 -4
  291. package/types/components/Grid.d.ts +2 -2
  292. package/types/components/Line.d.ts +16 -16
  293. package/types/components/MultiLinePath.d.ts +4 -4
  294. package/types/components/MultiLineText2D.d.ts +10 -10
  295. package/types/components/ObjectAxis.d.ts +3 -3
  296. package/types/components/ObjectOrientedBoundingBox.d.ts +18 -18
  297. package/types/components/PlaneHelper.d.ts +6 -6
  298. package/types/components/Shape2D.d.ts +4 -4
  299. package/types/components/Shape3D.d.ts +3 -3
  300. package/types/components/Text2D.d.ts +13 -13
  301. package/types/components/UIElement.d.ts +52 -52
  302. package/types/components/UpdatableMaterialMesh.d.ts +4 -4
  303. package/types/components/WorldImage.d.ts +13 -13
  304. package/types/components/sdf_text/SDFText.d.ts +30 -30
  305. package/types/components/sdf_text/SDFTextBatch.d.ts +12 -12
  306. package/types/components/sdf_text/TextGlyph.d.ts +6 -6
  307. package/types/editor/ManipulatorHandle.d.ts +14 -14
  308. package/types/editor/ObjectEditor.d.ts +16 -16
  309. package/types/editor/ObjectManipulator.d.ts +19 -19
  310. package/types/editor/ObjectPicker.d.ts +16 -16
  311. package/types/gpu_particles/GPUParticleSystem.d.ts +12 -12
  312. package/types/gpu_particles/ParticleAttribute.d.ts +15 -15
  313. package/types/gpu_particles/ParticlePositionAttribute.d.ts +4 -4
  314. package/types/html_utilities/CSSAnimator.d.ts +30 -30
  315. package/types/html_utilities/css_animator_states/Animating.d.ts +8 -8
  316. package/types/html_utilities/css_animator_states/Idle.d.ts +6 -6
  317. package/types/index.d.ts +90 -90
  318. package/types/materials/AddMaterial.d.ts +5 -5
  319. package/types/materials/AlphaFilterMaterial.d.ts +6 -6
  320. package/types/materials/BaseShaderMaterial.d.ts +3 -3
  321. package/types/materials/BlitMaterial.d.ts +3 -3
  322. package/types/materials/BloomComposeMaterial.d.ts +7 -7
  323. package/types/materials/BoxBlurMaterial.d.ts +4 -4
  324. package/types/materials/ClearAlphaMaterial.d.ts +3 -3
  325. package/types/materials/ClearColorMaterial.d.ts +7 -7
  326. package/types/materials/ClearDepthNormalMaterial.d.ts +4 -4
  327. package/types/materials/DeferredRendererComposeMaterial.d.ts +7 -7
  328. package/types/materials/DepthNormalMaterial.d.ts +4 -4
  329. package/types/materials/DisplayNormalTextureMaterial.d.ts +4 -4
  330. package/types/materials/DualFilteringBlurMaterial.d.ts +4 -4
  331. package/types/materials/FXAAMaterial.d.ts +3 -3
  332. package/types/materials/GaussianBlurMaterial.d.ts +6 -6
  333. package/types/materials/LuminosityHighPassMaterial.d.ts +4 -4
  334. package/types/materials/MedianFilterMaterial.d.ts +6 -6
  335. package/types/materials/NormalMaterial.d.ts +2 -2
  336. package/types/materials/SDFScreenTextMaterial.d.ts +11 -11
  337. package/types/materials/SDFTextMaterial.d.ts +12 -12
  338. package/types/materials/SSAOComposeMaterial.d.ts +4 -4
  339. package/types/materials/SSAOMaterial.d.ts +6 -6
  340. package/types/materials/ScreenSpaceTextureMaterial.d.ts +7 -7
  341. package/types/materials/UIElementMaterial.d.ts +7 -7
  342. package/types/materials/UnrealBloomComposeMaterial.d.ts +17 -17
  343. package/types/materials/UnrealBlurMaterial.d.ts +4 -4
  344. package/types/materials/UnrealComposeMaterial.d.ts +4 -4
  345. package/types/materials/ViewPositionMaterial.d.ts +3 -3
  346. package/types/materials/deferred/DeferredPointLightMaterial.d.ts +10 -10
  347. package/types/materials/gpu_particles/ParticleStorageMaterial.d.ts +3 -3
  348. package/types/materials/gpu_particles/PositionStorageMaterial.d.ts +4 -4
  349. package/types/object_pool/Pool.d.ts +10 -10
  350. package/types/primitives/Arrow.d.ts +8 -8
  351. package/types/primitives/Cube.d.ts +3 -3
  352. package/types/primitives/HorizontalPlane.d.ts +3 -3
  353. package/types/primitives/Sphere.d.ts +3 -3
  354. package/types/primitives/VerticalPlane.d.ts +3 -3
  355. package/types/raycast/GroupRaycaster.d.ts +13 -13
  356. package/types/raycast/PlaneDragResolver.d.ts +14 -14
  357. package/types/raycast/PlaneRaycastResolver.d.ts +5 -5
  358. package/types/raycast/PlaneRaycaster.d.ts +7 -7
  359. package/types/raycast/RaycastResolver.d.ts +5 -5
  360. package/types/raycast/SurfaceDragResolver.d.ts +13 -13
  361. package/types/raycast/states/BaseState.d.ts +5 -5
  362. package/types/raycast/states/IdleState.d.ts +5 -5
  363. package/types/raycast/states/OnRaycastEnter.d.ts +5 -5
  364. package/types/raycast/states/OnRaycastExit.d.ts +4 -4
  365. package/types/raycast/states/OnRaycastHover.d.ts +4 -4
  366. package/types/render_mode/BaseRender.d.ts +7 -7
  367. package/types/render_mode/BloomRender.d.ts +10 -10
  368. package/types/render_mode/DebugNormalsRender.d.ts +4 -4
  369. package/types/render_mode/DeferredRender.d.ts +9 -9
  370. package/types/render_mode/NormalAORender.d.ts +16 -16
  371. package/types/render_mode/NormalRender.d.ts +4 -4
  372. package/types/render_mode/OutlineRender.d.ts +20 -20
  373. package/types/render_mode/PlanarReflectionsRender.d.ts +13 -13
  374. package/types/render_mode/TransparencyMixRender.d.ts +21 -21
  375. package/types/render_mode/UnrealBloomRender.d.ts +19 -19
  376. package/types/render_utilities/Blitter.d.ts +16 -16
  377. package/types/render_utilities/Blurrer.d.ts +9 -9
  378. package/types/render_utilities/DepthAndNormalsRenderer.d.ts +12 -12
  379. package/types/render_utilities/DualFilteringBlurrer.d.ts +19 -19
  380. package/types/render_utilities/GaussianBlurrer.d.ts +27 -27
  381. package/types/render_utilities/MedianFilter.d.ts +10 -10
  382. package/types/render_utilities/ViewPositionRenderer.d.ts +9 -9
  383. package/types/resource_loader/AbstractLoader.d.ts +18 -18
  384. package/types/resource_loader/AsyncTextureLoader.ts +6 -6
  385. package/types/resource_loader/AudioLoader.d.ts +8 -8
  386. package/types/resource_loader/BasisLoader.d.ts +6 -6
  387. package/types/resource_loader/CubemapLoader.d.ts +7 -7
  388. package/types/resource_loader/DAELoader.d.ts +6 -6
  389. package/types/resource_loader/DDSLoader.d.ts +6 -6
  390. package/types/resource_loader/FileLoader.d.ts +6 -6
  391. package/types/resource_loader/FontLoader.d.ts +6 -6
  392. package/types/resource_loader/GLTFDRACOLoader.d.ts +6 -7
  393. package/types/resource_loader/GLTFLoader.d.ts +5 -5
  394. package/types/resource_loader/HDRCubeTextureLoader.d.ts +7 -7
  395. package/types/resource_loader/JSONLoader.d.ts +6 -6
  396. package/types/resource_loader/OBJLoader.d.ts +6 -6
  397. package/types/resource_loader/PointArrayLoader.d.ts +7 -7
  398. package/types/resource_loader/RGBETextureLoader.d.ts +6 -6
  399. package/types/resource_loader/ResourceBatch.d.ts +13 -13
  400. package/types/resource_loader/SVGLoader.d.ts +6 -6
  401. package/types/resource_loader/TextLoader.d.ts +6 -6
  402. package/types/resource_loader/TextureLoader.d.ts +6 -6
  403. package/types/resource_loader/VideoLoader.d.ts +6 -6
  404. package/types/static_batcher/GeometryBatch.d.ts +37 -37
  405. package/types/static_batcher/GeometryBatcher.d.ts +7 -7
  406. package/types/ui/ui_element_position/ScreenSpacePosition.d.ts +4 -4
  407. package/types/ui/ui_element_position/WorldSpacePosition.d.ts +5 -5
  408. package/types/ui/ui_element_state/OnIdle.d.ts +5 -5
  409. package/types/ui/ui_element_state/OnMouseEnter.d.ts +5 -5
  410. package/types/ui/ui_element_state/OnMouseExit.d.ts +5 -5
  411. package/types/ui/ui_element_state/OnMouseHover.d.ts +5 -5
  412. package/types/ui/ui_element_state/UIElementState.d.ts +5 -5
  413. package/types/utilities/ArrayUtilities.d.ts +7 -7
  414. package/types/utilities/CameraUtilities.d.ts +24 -24
  415. package/types/utilities/EasingFunctions.d.ts +35 -35
  416. package/types/utilities/FrustumPointFitter.d.ts +14 -14
  417. package/types/utilities/GeometryUtilities.d.ts +4 -4
  418. package/types/utilities/HTMLUtilities.d.ts +10 -10
  419. package/types/utilities/ImageUtilities.d.ts +4 -4
  420. package/types/utilities/MeshSampler.d.ts +14 -14
  421. package/types/utilities/ModelUtilities.d.ts +13 -13
  422. package/types/utilities/OMath.d.ts +21 -21
  423. package/types/utilities/ObjectUtilities.d.ts +16 -16
  424. package/types/utilities/OrthographicFrustumPointFitter.d.ts +7 -7
  425. package/types/utilities/PerspectiveFrustumPointFitter.d.ts +12 -12
  426. package/types/utilities/StringUtilities.d.ts +5 -5
  427. package/types/utilities/TimeUtilities.d.ts +3 -3
  428. package/types/utilities/Validation.d.ts +6 -6
  429. package/types/view_components/ApplicationView.d.ts +20 -20
  430. package/types/view_components/ViewComponent.d.ts +15 -15
  431. package/types/view_components/ViewComponentManager.d.ts +10 -10
  432. package/types/view_components/ViewContext.d.ts +6 -6
  433. package/types/view_components/ViewManager.d.ts +24 -24
  434. package/types/view_components/ViewState.d.ts +15 -15
  435. package/types/view_components/transition/ActionSequencerBuilder.d.ts +15 -15
  436. package/types/view_components/transition/DrawIOAnimationSheet.d.ts +17 -17
  437. package/types/view_components/transition/TransitionTable.d.ts +8 -8
  438. package/types/view_components/transition/ViewStateTransitionHandler.d.ts +16 -16
@@ -1,47 +1,47 @@
1
- import { Vector3, Box3 } from 'three';
2
-
3
- export default class OrthographicFrustumPointFitter
4
- {
5
- constructor()
6
- {
7
-
8
- }
9
-
10
- fit_points(points, camera_quaternion, vertical_fov, aspect)
11
- {
12
- const inverse_camera_quat = camera_quaternion.clone().inverse();
13
-
14
- const inverted_points = [];
15
-
16
- for (let i = 0; i < points.length; i++)
17
- {
18
- inverted_points.push(points[i].clone().applyQuaternion(inverse_camera_quat));
19
- }
20
-
21
- const box = new Box3().setFromPoints(inverted_points);
22
- const size = new Vector3();
23
- box.getSize(size);
24
-
25
- const distance = this.get_distance_to_fit_rect(size.x / 2, size.y / 2, vertical_fov, aspect);
26
-
27
- const center = new Vector3();
28
- box.getCenter(center);
29
-
30
- center.applyQuaternion(camera_quaternion);
31
-
32
- return {
33
- center: center,
34
- distance_to_center: distance
35
- };
36
- }
37
-
38
- get_distance_to_fit_rect(width, height, vertical_fov, aspect)
39
- {
40
- const v_fov = (vertical_fov / 2) * Math.PI / 180;
41
- const h_fov = (2 * Math.atan(Math.tan(v_fov) * aspect)) / 2;
42
-
43
- const distV = height / Math.tan(v_fov);
44
- const distH = width / Math.tan(h_fov);
45
- return Math.max(Math.abs(distH), Math.abs(distV));
46
- }
47
- }
1
+ import { Vector3, Box3 } from 'three';
2
+
3
+ export default class OrthographicFrustumPointFitter
4
+ {
5
+ constructor()
6
+ {
7
+
8
+ }
9
+
10
+ fit_points(points, camera_quaternion, vertical_fov, aspect)
11
+ {
12
+ const inverse_camera_quat = camera_quaternion.clone().inverse();
13
+
14
+ const inverted_points = [];
15
+
16
+ for (let i = 0; i < points.length; i++)
17
+ {
18
+ inverted_points.push(points[i].clone().applyQuaternion(inverse_camera_quat));
19
+ }
20
+
21
+ const box = new Box3().setFromPoints(inverted_points);
22
+ const size = new Vector3();
23
+ box.getSize(size);
24
+
25
+ const distance = this.get_distance_to_fit_rect(size.x / 2, size.y / 2, vertical_fov, aspect);
26
+
27
+ const center = new Vector3();
28
+ box.getCenter(center);
29
+
30
+ center.applyQuaternion(camera_quaternion);
31
+
32
+ return {
33
+ center: center,
34
+ distance_to_center: distance
35
+ };
36
+ }
37
+
38
+ get_distance_to_fit_rect(width, height, vertical_fov, aspect)
39
+ {
40
+ const v_fov = (vertical_fov / 2) * Math.PI / 180;
41
+ const h_fov = (2 * Math.atan(Math.tan(v_fov) * aspect)) / 2;
42
+
43
+ const distV = height / Math.tan(v_fov);
44
+ const distH = width / Math.tan(h_fov);
45
+ return Math.max(Math.abs(distH), Math.abs(distV));
46
+ }
47
+ }
@@ -1,250 +1,250 @@
1
- import { Vector3, Plane, Quaternion, Sphere, Math as TMath, Line3 } from 'three';
2
- export default class PerspectiveFrustumPointFitter
3
- {
4
- constructor()
5
- {
6
- this.sphere = new Sphere();
7
- }
8
-
9
- fit_points(points, camera_quaternion, vertical_fov, aspect)
10
- {
11
- this.sphere.setFromPoints(points);
12
-
13
- const v_fov = TMath.degToRad(vertical_fov / 2);
14
- const h_fov = (2 * Math.atan(Math.tan(v_fov) * aspect)) / 2;
15
-
16
- const up_plane_normal = this.get_up_plane_normal(camera_quaternion, v_fov);
17
- const down_plane_normal = this.get_down_plane_normal(camera_quaternion, v_fov);
18
- const left_plane_normal = this.get_left_plane_normal(camera_quaternion, h_fov);
19
- const right_plane_normal = this.get_right_plane_normal(camera_quaternion, h_fov);
20
-
21
- const camera_forward_dir = new Vector3(0, 0, -1).applyQuaternion(camera_quaternion);
22
-
23
- const sphere_center = this.sphere.center.clone();
24
-
25
- const pull_back_distance = this.get_distance_to_fit_rect(this.sphere.radius * 2, this.sphere.radius * 2, vertical_fov, aspect);
26
- const far_pos = sphere_center.clone().add(camera_forward_dir.clone().multiplyScalar(pull_back_distance * -1));
27
-
28
- const up_plane = new Plane().setFromNormalAndCoplanarPoint(up_plane_normal, far_pos);
29
- const down_plane = new Plane().setFromNormalAndCoplanarPoint(down_plane_normal, far_pos);
30
-
31
- const left_plane = new Plane().setFromNormalAndCoplanarPoint(left_plane_normal, far_pos);
32
- const right_plane = new Plane().setFromNormalAndCoplanarPoint(right_plane_normal, far_pos);
33
-
34
- this.apply_center_correction_to_pos(far_pos, points, camera_quaternion, up_plane, down_plane, left_plane, right_plane);
35
-
36
- up_plane.setFromNormalAndCoplanarPoint(up_plane_normal, far_pos);
37
- down_plane.setFromNormalAndCoplanarPoint(down_plane_normal, far_pos);
38
-
39
- left_plane.setFromNormalAndCoplanarPoint(left_plane_normal, far_pos);
40
- right_plane.setFromNormalAndCoplanarPoint(right_plane_normal, far_pos);
41
-
42
- let closest_distance = Infinity;
43
-
44
- const inverse_dir = camera_forward_dir.clone().multiplyScalar(pull_back_distance * -2);
45
- for (let i = 0; i < points.length; i++)
46
- {
47
- const line = new Line3(points[i].clone(), points[i].clone().add(inverse_dir));
48
-
49
- const up_line_intersection = new Vector3();
50
- const down_line_intersection = new Vector3();
51
-
52
- const left_line_intersection = new Vector3();
53
- const right_line_intersection = new Vector3();
54
-
55
- up_plane.intersectLine(line, up_line_intersection);
56
- down_plane.intersectLine(line, down_line_intersection);
57
-
58
- left_plane.intersectLine(line, left_line_intersection);
59
- right_plane.intersectLine(line, right_line_intersection);
60
-
61
- if (up_line_intersection.length() < 0.0001)
62
- {
63
- console.log('up intersection not found', i);
64
- }
65
- if (down_line_intersection.length() < 0.0001)
66
- {
67
- console.log('down intersection not found', i);
68
- }
69
- if (left_line_intersection.length() < 0.0001)
70
- {
71
- console.log('left intersection not found', i);
72
- }
73
- if (right_line_intersection.length() < 0.0001)
74
- {
75
- console.log('right intersection not found', i);
76
- }
77
-
78
- const new_up_distance = points[i].clone().sub(up_line_intersection).length();
79
- const new_down_distance = points[i].clone().sub(down_line_intersection).length();
80
-
81
- const new_left_distance = points[i].clone().sub(left_line_intersection).length();
82
- const new_right_distance = points[i].clone().sub(right_line_intersection).length();
83
-
84
- const vertical_min = Math.min(new_up_distance, new_down_distance);
85
- const horizontal_min = Math.min(new_left_distance, new_right_distance);
86
-
87
- const min = Math.min(vertical_min, horizontal_min);
88
-
89
- if (min < closest_distance)
90
- {
91
- closest_distance = min;
92
- }
93
- }
94
-
95
- const forward_correction = camera_forward_dir.clone().multiplyScalar(closest_distance);
96
- const closest_position = far_pos.clone().add(forward_correction);
97
-
98
- return closest_position;
99
- }
100
-
101
- apply_center_correction_to_pos(target_pos, points, camera_quaternion, up_plane, down_plane, left_plane, right_plane)
102
- {
103
- const vertical_offset = this.get_vertical_correction(points, down_plane, up_plane, camera_quaternion);
104
- const horizontal_offset = this.get_horizontal_correction(points, left_plane, right_plane, camera_quaternion);
105
-
106
- target_pos.add(vertical_offset);
107
- target_pos.add(horizontal_offset);
108
- }
109
-
110
- get_vertical_correction(points, down_plane, up_plane, camera_quaternion)
111
- {
112
- let closest_distance_to_up_plane = Infinity;
113
- let closest_distance_to_down_plane = Infinity;
114
- // let closest_up_point = undefined;
115
- // let closest_down_point = undefined;
116
-
117
- const up_dir = new Vector3(0, 1, 0).applyQuaternion(camera_quaternion);
118
- for (let i = 0; i < points.length; i++)
119
- {
120
- const down_line = new Line3(points[i].clone(), points[i].clone().add(up_dir.clone().multiplyScalar(-5000000)));
121
- const up_line = new Line3(points[i].clone(), points[i].clone().add(up_dir.clone().multiplyScalar(5000000)));
122
-
123
- const down_line_intersection = new Vector3();
124
- const up_line_intersection = new Vector3();
125
-
126
- down_plane.intersectLine(down_line, down_line_intersection);
127
- up_plane.intersectLine(up_line, up_line_intersection);
128
-
129
- const down_dist = down_line_intersection.distanceTo(points[i]);
130
- const up_dist = up_line_intersection.distanceTo(points[i]);
131
-
132
- if (up_line_intersection.length() < 0.0001)
133
- {
134
- console.log('vertical up intersection not found', i);
135
- }
136
- if (down_line_intersection.length() < 0.0001)
137
- {
138
- console.log('vertical down intersection not found', i);
139
- }
140
-
141
- if (down_dist < closest_distance_to_down_plane)
142
- {
143
- closest_distance_to_down_plane = down_dist;
144
- // closest_down_point = points[i];
145
- }
146
- if (up_dist < closest_distance_to_up_plane)
147
- {
148
- closest_distance_to_up_plane = up_dist;
149
- // closest_up_point = points[i];
150
- }
151
- }
152
-
153
- const correction = (closest_distance_to_up_plane - closest_distance_to_down_plane) / 2;
154
-
155
- // console.log("vertical_correction", correction)
156
- return up_dir.clone().multiplyScalar(-correction);
157
- }
158
-
159
- get_horizontal_correction(points, left_plane, right_plane, camera_quaternion)
160
- {
161
- let closest_distance_to_right_plane = Infinity;
162
- let closest_distance_to_left_plane = Infinity;
163
- // let closest_right_point = undefined;
164
- // let closest_left_point = undefined;
165
-
166
- const right_dir = new Vector3(1, 0, 0).applyQuaternion(camera_quaternion);
167
-
168
- for (let i = 0; i < points.length; i++)
169
- {
170
- const left_line = new Line3(points[i].clone(), points[i].clone().add(right_dir.clone().multiplyScalar(-5000000)));
171
- const right_line = new Line3(points[i].clone(), points[i].clone().add(right_dir.clone().multiplyScalar(5000000)));
172
-
173
- const left_line_intersection = new Vector3();
174
- const right_line_intersection = new Vector3();
175
-
176
- left_plane.intersectLine(left_line, left_line_intersection);
177
- right_plane.intersectLine(right_line, right_line_intersection);
178
-
179
- const left_dist = left_line_intersection.distanceTo(points[i]);
180
- const right_dist = right_line_intersection.distanceTo(points[i]);
181
-
182
- if (left_line_intersection.length() < 0.0001)
183
- {
184
- console.log('left intersection not found', i);
185
- }
186
- if (right_line_intersection.length() < 0.0001)
187
- {
188
- console.log('right intersection not found', i);
189
- }
190
-
191
- if (left_dist < closest_distance_to_left_plane)
192
- {
193
- closest_distance_to_left_plane = left_dist;
194
- // closest_left_point = points[i];
195
- }
196
- if (right_dist < closest_distance_to_right_plane)
197
- {
198
- closest_distance_to_right_plane = right_dist;
199
- // closest_right_point = points[i];
200
- }
201
- }
202
-
203
- const correction = (closest_distance_to_right_plane - closest_distance_to_left_plane) / 2;
204
- // console.log("horizontal_correction", correction)
205
-
206
- return right_dir.clone().multiplyScalar(-correction);
207
- }
208
-
209
- get_up_plane_normal(camera_quaternion, v_fov)
210
- {
211
- const up_plane_normal = new Vector3(0, -1, 0);
212
- up_plane_normal.applyQuaternion(new Quaternion().setFromAxisAngle(new Vector3(1, 0, 0), v_fov));
213
- up_plane_normal.applyQuaternion(camera_quaternion);
214
- return up_plane_normal;
215
- }
216
-
217
- get_down_plane_normal(camera_quaternion, v_fov)
218
- {
219
- const down_plane_normal = new Vector3(0, 1, 0);
220
- down_plane_normal.applyQuaternion(new Quaternion().setFromAxisAngle(new Vector3(1, 0, 0), -v_fov));
221
- down_plane_normal.applyQuaternion(camera_quaternion);
222
- return down_plane_normal;
223
- }
224
-
225
- get_left_plane_normal(camera_quaternion, h_fov)
226
- {
227
- const left_plane_normal = new Vector3(1, 0, 0);
228
- left_plane_normal.applyQuaternion(new Quaternion().setFromAxisAngle(new Vector3(0, 1, 0), h_fov));
229
- left_plane_normal.applyQuaternion(camera_quaternion);
230
- return left_plane_normal;
231
- }
232
-
233
- get_right_plane_normal(camera_quaternion, h_fov)
234
- {
235
- const right_plane_normal = new Vector3(-1, 0, 0);
236
- right_plane_normal.applyQuaternion(new Quaternion().setFromAxisAngle(new Vector3(0, 1, 0), -h_fov));
237
- right_plane_normal.applyQuaternion(camera_quaternion);
238
- return right_plane_normal;
239
- }
240
-
241
- get_distance_to_fit_rect(width, height, vertical_fov, aspect)
242
- {
243
- const v_fov = (vertical_fov / 2) * Math.PI / 180;
244
- const h_fov = (2 * Math.atan(Math.tan(v_fov) * aspect)) / 2;
245
-
246
- const distV = height / Math.tan(v_fov);
247
- const distH = width / Math.tan(h_fov);
248
- return Math.max(Math.abs(distH), Math.abs(distV));
249
- }
250
- }
1
+ import { Vector3, Plane, Quaternion, Sphere, Math as TMath, Line3 } from 'three';
2
+ export default class PerspectiveFrustumPointFitter
3
+ {
4
+ constructor()
5
+ {
6
+ this.sphere = new Sphere();
7
+ }
8
+
9
+ fit_points(points, camera_quaternion, vertical_fov, aspect)
10
+ {
11
+ this.sphere.setFromPoints(points);
12
+
13
+ const v_fov = TMath.degToRad(vertical_fov / 2);
14
+ const h_fov = (2 * Math.atan(Math.tan(v_fov) * aspect)) / 2;
15
+
16
+ const up_plane_normal = this.get_up_plane_normal(camera_quaternion, v_fov);
17
+ const down_plane_normal = this.get_down_plane_normal(camera_quaternion, v_fov);
18
+ const left_plane_normal = this.get_left_plane_normal(camera_quaternion, h_fov);
19
+ const right_plane_normal = this.get_right_plane_normal(camera_quaternion, h_fov);
20
+
21
+ const camera_forward_dir = new Vector3(0, 0, -1).applyQuaternion(camera_quaternion);
22
+
23
+ const sphere_center = this.sphere.center.clone();
24
+
25
+ const pull_back_distance = this.get_distance_to_fit_rect(this.sphere.radius * 2, this.sphere.radius * 2, vertical_fov, aspect);
26
+ const far_pos = sphere_center.clone().add(camera_forward_dir.clone().multiplyScalar(pull_back_distance * -1));
27
+
28
+ const up_plane = new Plane().setFromNormalAndCoplanarPoint(up_plane_normal, far_pos);
29
+ const down_plane = new Plane().setFromNormalAndCoplanarPoint(down_plane_normal, far_pos);
30
+
31
+ const left_plane = new Plane().setFromNormalAndCoplanarPoint(left_plane_normal, far_pos);
32
+ const right_plane = new Plane().setFromNormalAndCoplanarPoint(right_plane_normal, far_pos);
33
+
34
+ this.apply_center_correction_to_pos(far_pos, points, camera_quaternion, up_plane, down_plane, left_plane, right_plane);
35
+
36
+ up_plane.setFromNormalAndCoplanarPoint(up_plane_normal, far_pos);
37
+ down_plane.setFromNormalAndCoplanarPoint(down_plane_normal, far_pos);
38
+
39
+ left_plane.setFromNormalAndCoplanarPoint(left_plane_normal, far_pos);
40
+ right_plane.setFromNormalAndCoplanarPoint(right_plane_normal, far_pos);
41
+
42
+ let closest_distance = Infinity;
43
+
44
+ const inverse_dir = camera_forward_dir.clone().multiplyScalar(pull_back_distance * -2);
45
+ for (let i = 0; i < points.length; i++)
46
+ {
47
+ const line = new Line3(points[i].clone(), points[i].clone().add(inverse_dir));
48
+
49
+ const up_line_intersection = new Vector3();
50
+ const down_line_intersection = new Vector3();
51
+
52
+ const left_line_intersection = new Vector3();
53
+ const right_line_intersection = new Vector3();
54
+
55
+ up_plane.intersectLine(line, up_line_intersection);
56
+ down_plane.intersectLine(line, down_line_intersection);
57
+
58
+ left_plane.intersectLine(line, left_line_intersection);
59
+ right_plane.intersectLine(line, right_line_intersection);
60
+
61
+ if (up_line_intersection.length() < 0.0001)
62
+ {
63
+ console.log('up intersection not found', i);
64
+ }
65
+ if (down_line_intersection.length() < 0.0001)
66
+ {
67
+ console.log('down intersection not found', i);
68
+ }
69
+ if (left_line_intersection.length() < 0.0001)
70
+ {
71
+ console.log('left intersection not found', i);
72
+ }
73
+ if (right_line_intersection.length() < 0.0001)
74
+ {
75
+ console.log('right intersection not found', i);
76
+ }
77
+
78
+ const new_up_distance = points[i].clone().sub(up_line_intersection).length();
79
+ const new_down_distance = points[i].clone().sub(down_line_intersection).length();
80
+
81
+ const new_left_distance = points[i].clone().sub(left_line_intersection).length();
82
+ const new_right_distance = points[i].clone().sub(right_line_intersection).length();
83
+
84
+ const vertical_min = Math.min(new_up_distance, new_down_distance);
85
+ const horizontal_min = Math.min(new_left_distance, new_right_distance);
86
+
87
+ const min = Math.min(vertical_min, horizontal_min);
88
+
89
+ if (min < closest_distance)
90
+ {
91
+ closest_distance = min;
92
+ }
93
+ }
94
+
95
+ const forward_correction = camera_forward_dir.clone().multiplyScalar(closest_distance);
96
+ const closest_position = far_pos.clone().add(forward_correction);
97
+
98
+ return closest_position;
99
+ }
100
+
101
+ apply_center_correction_to_pos(target_pos, points, camera_quaternion, up_plane, down_plane, left_plane, right_plane)
102
+ {
103
+ const vertical_offset = this.get_vertical_correction(points, down_plane, up_plane, camera_quaternion);
104
+ const horizontal_offset = this.get_horizontal_correction(points, left_plane, right_plane, camera_quaternion);
105
+
106
+ target_pos.add(vertical_offset);
107
+ target_pos.add(horizontal_offset);
108
+ }
109
+
110
+ get_vertical_correction(points, down_plane, up_plane, camera_quaternion)
111
+ {
112
+ let closest_distance_to_up_plane = Infinity;
113
+ let closest_distance_to_down_plane = Infinity;
114
+ // let closest_up_point = undefined;
115
+ // let closest_down_point = undefined;
116
+
117
+ const up_dir = new Vector3(0, 1, 0).applyQuaternion(camera_quaternion);
118
+ for (let i = 0; i < points.length; i++)
119
+ {
120
+ const down_line = new Line3(points[i].clone(), points[i].clone().add(up_dir.clone().multiplyScalar(-5000000)));
121
+ const up_line = new Line3(points[i].clone(), points[i].clone().add(up_dir.clone().multiplyScalar(5000000)));
122
+
123
+ const down_line_intersection = new Vector3();
124
+ const up_line_intersection = new Vector3();
125
+
126
+ down_plane.intersectLine(down_line, down_line_intersection);
127
+ up_plane.intersectLine(up_line, up_line_intersection);
128
+
129
+ const down_dist = down_line_intersection.distanceTo(points[i]);
130
+ const up_dist = up_line_intersection.distanceTo(points[i]);
131
+
132
+ if (up_line_intersection.length() < 0.0001)
133
+ {
134
+ console.log('vertical up intersection not found', i);
135
+ }
136
+ if (down_line_intersection.length() < 0.0001)
137
+ {
138
+ console.log('vertical down intersection not found', i);
139
+ }
140
+
141
+ if (down_dist < closest_distance_to_down_plane)
142
+ {
143
+ closest_distance_to_down_plane = down_dist;
144
+ // closest_down_point = points[i];
145
+ }
146
+ if (up_dist < closest_distance_to_up_plane)
147
+ {
148
+ closest_distance_to_up_plane = up_dist;
149
+ // closest_up_point = points[i];
150
+ }
151
+ }
152
+
153
+ const correction = (closest_distance_to_up_plane - closest_distance_to_down_plane) / 2;
154
+
155
+ // console.log("vertical_correction", correction)
156
+ return up_dir.clone().multiplyScalar(-correction);
157
+ }
158
+
159
+ get_horizontal_correction(points, left_plane, right_plane, camera_quaternion)
160
+ {
161
+ let closest_distance_to_right_plane = Infinity;
162
+ let closest_distance_to_left_plane = Infinity;
163
+ // let closest_right_point = undefined;
164
+ // let closest_left_point = undefined;
165
+
166
+ const right_dir = new Vector3(1, 0, 0).applyQuaternion(camera_quaternion);
167
+
168
+ for (let i = 0; i < points.length; i++)
169
+ {
170
+ const left_line = new Line3(points[i].clone(), points[i].clone().add(right_dir.clone().multiplyScalar(-5000000)));
171
+ const right_line = new Line3(points[i].clone(), points[i].clone().add(right_dir.clone().multiplyScalar(5000000)));
172
+
173
+ const left_line_intersection = new Vector3();
174
+ const right_line_intersection = new Vector3();
175
+
176
+ left_plane.intersectLine(left_line, left_line_intersection);
177
+ right_plane.intersectLine(right_line, right_line_intersection);
178
+
179
+ const left_dist = left_line_intersection.distanceTo(points[i]);
180
+ const right_dist = right_line_intersection.distanceTo(points[i]);
181
+
182
+ if (left_line_intersection.length() < 0.0001)
183
+ {
184
+ console.log('left intersection not found', i);
185
+ }
186
+ if (right_line_intersection.length() < 0.0001)
187
+ {
188
+ console.log('right intersection not found', i);
189
+ }
190
+
191
+ if (left_dist < closest_distance_to_left_plane)
192
+ {
193
+ closest_distance_to_left_plane = left_dist;
194
+ // closest_left_point = points[i];
195
+ }
196
+ if (right_dist < closest_distance_to_right_plane)
197
+ {
198
+ closest_distance_to_right_plane = right_dist;
199
+ // closest_right_point = points[i];
200
+ }
201
+ }
202
+
203
+ const correction = (closest_distance_to_right_plane - closest_distance_to_left_plane) / 2;
204
+ // console.log("horizontal_correction", correction)
205
+
206
+ return right_dir.clone().multiplyScalar(-correction);
207
+ }
208
+
209
+ get_up_plane_normal(camera_quaternion, v_fov)
210
+ {
211
+ const up_plane_normal = new Vector3(0, -1, 0);
212
+ up_plane_normal.applyQuaternion(new Quaternion().setFromAxisAngle(new Vector3(1, 0, 0), v_fov));
213
+ up_plane_normal.applyQuaternion(camera_quaternion);
214
+ return up_plane_normal;
215
+ }
216
+
217
+ get_down_plane_normal(camera_quaternion, v_fov)
218
+ {
219
+ const down_plane_normal = new Vector3(0, 1, 0);
220
+ down_plane_normal.applyQuaternion(new Quaternion().setFromAxisAngle(new Vector3(1, 0, 0), -v_fov));
221
+ down_plane_normal.applyQuaternion(camera_quaternion);
222
+ return down_plane_normal;
223
+ }
224
+
225
+ get_left_plane_normal(camera_quaternion, h_fov)
226
+ {
227
+ const left_plane_normal = new Vector3(1, 0, 0);
228
+ left_plane_normal.applyQuaternion(new Quaternion().setFromAxisAngle(new Vector3(0, 1, 0), h_fov));
229
+ left_plane_normal.applyQuaternion(camera_quaternion);
230
+ return left_plane_normal;
231
+ }
232
+
233
+ get_right_plane_normal(camera_quaternion, h_fov)
234
+ {
235
+ const right_plane_normal = new Vector3(-1, 0, 0);
236
+ right_plane_normal.applyQuaternion(new Quaternion().setFromAxisAngle(new Vector3(0, 1, 0), -h_fov));
237
+ right_plane_normal.applyQuaternion(camera_quaternion);
238
+ return right_plane_normal;
239
+ }
240
+
241
+ get_distance_to_fit_rect(width, height, vertical_fov, aspect)
242
+ {
243
+ const v_fov = (vertical_fov / 2) * Math.PI / 180;
244
+ const h_fov = (2 * Math.atan(Math.tan(v_fov) * aspect)) / 2;
245
+
246
+ const distV = height / Math.tan(v_fov);
247
+ const distH = width / Math.tan(h_fov);
248
+ return Math.max(Math.abs(distH), Math.abs(distV));
249
+ }
250
+ }
@@ -1,32 +1,32 @@
1
- export default class StringUtilities
2
- {
3
- constructor()
4
- {}
5
-
6
- static capitalize(string)
7
- {
8
- const words = string.split(' ');
9
-
10
- for (let i = 0; i < words.length; i++)
11
- {
12
- words[i] = words[i][0].toUpperCase() + words[i].substr(1);
13
- }
14
-
15
- return words.join(' ');
16
- }
17
-
18
- static capitalize_first_letter(string)
19
- {
20
- return string.charAt(0).toUpperCase() + string.slice(1);
21
- }
22
-
23
- static snake_to_camelcase(string)
24
- {
25
- return string.replace(
26
- /([-_][a-z])/g,
27
- (group) => group.toUpperCase()
28
- .replace('-', '')
29
- .replace('_', '')
30
- );
31
- }
32
- }
1
+ export default class StringUtilities
2
+ {
3
+ constructor()
4
+ {}
5
+
6
+ static capitalize(string)
7
+ {
8
+ const words = string.split(' ');
9
+
10
+ for (let i = 0; i < words.length; i++)
11
+ {
12
+ words[i] = words[i][0].toUpperCase() + words[i].substr(1);
13
+ }
14
+
15
+ return words.join(' ');
16
+ }
17
+
18
+ static capitalize_first_letter(string)
19
+ {
20
+ return string.charAt(0).toUpperCase() + string.slice(1);
21
+ }
22
+
23
+ static snake_to_camelcase(string)
24
+ {
25
+ return string.replace(
26
+ /([-_][a-z])/g,
27
+ (group) => group.toUpperCase()
28
+ .replace('-', '')
29
+ .replace('_', '')
30
+ );
31
+ }
32
+ }