ohzi-core 6.1.2 → 6.2.1

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