ohzi-core 6.4.0 → 6.5.2

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