ohzi-core 12.5.2 → 12.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (265) hide show
  1. package/README.md +9 -9
  2. package/build/index.mjs +1 -1
  3. package/build/index.mjs.map +1 -1
  4. package/build/index.module.js +2 -0
  5. package/build/index.module.js.map +1 -0
  6. package/package.json +64 -63
  7. package/src/.vscode/settings.json +2 -2
  8. package/src/BaseApplication.js +40 -40
  9. package/src/Browser.js +119 -119
  10. package/src/CameraManager.js +37 -37
  11. package/src/Capabilities.js +13 -13
  12. package/src/CustomBezierCurve.js +58 -58
  13. package/src/Debug.js +359 -359
  14. package/src/Graphics.js +507 -507
  15. package/src/Initializer.js +56 -56
  16. package/src/KeyboardInput.js +177 -177
  17. package/src/OS.js +59 -59
  18. package/src/OScreen.js +90 -90
  19. package/src/OrthographicCamera.js +36 -36
  20. package/src/PerspectiveCamera.js +34 -34
  21. package/src/ReflectionPlaneContext.js +22 -22
  22. package/src/RenderLayers.js +30 -30
  23. package/src/RenderLoop.js +125 -122
  24. package/src/RenderOrder.js +40 -40
  25. package/src/ResourceContainer.js +57 -57
  26. package/src/SceneManager.js +55 -55
  27. package/src/Screen.js +71 -71
  28. package/src/Time.js +99 -98
  29. package/src/UI.js +106 -106
  30. package/src/action_sequencer/ActionEvent.js +22 -22
  31. package/src/action_sequencer/ActionInterpolator.js +39 -39
  32. package/src/action_sequencer/ActionSequencer.js +338 -338
  33. package/src/action_sequencer/NumberInterpolator.js +42 -42
  34. package/src/action_sequencer/VectorInterpolator.js +34 -34
  35. package/src/blitter_index.js +14 -14
  36. package/src/canvas_drawer/CanvasDrawer.js +146 -146
  37. package/src/canvas_drawer/MultiLineTextDrawer.js +58 -58
  38. package/src/canvas_drawer/SimpleTextDrawer.js +55 -55
  39. package/src/components/AudioClip.js +67 -67
  40. package/src/components/AxisHelper.js +60 -60
  41. package/src/components/BaseObject.js +50 -50
  42. package/src/components/EdgeMesh.js +172 -172
  43. package/src/components/GeometryEdgeVisualizer.js +57 -57
  44. package/src/components/Grid.js +40 -40
  45. package/src/components/Line.js +225 -225
  46. package/src/components/MultiLinePath.js +25 -25
  47. package/src/components/MultiLineText2D.js +75 -75
  48. package/src/components/ObjectAxis.js +27 -27
  49. package/src/components/ObjectOrientedBoundingBox.js +228 -228
  50. package/src/components/PlaneHelper.js +38 -38
  51. package/src/components/Shape2D.js +52 -52
  52. package/src/components/Shape3D.js +46 -46
  53. package/src/components/Text2D.js +49 -49
  54. package/src/components/UIElement.js +246 -246
  55. package/src/components/UpdatableMaterialMesh.js +26 -26
  56. package/src/components/WorldImage.js +101 -101
  57. package/src/components/mouse_interactors/ObjectRotator.js +64 -64
  58. package/src/components/sdf_text/SDFText.js +156 -156
  59. package/src/components/sdf_text/SDFTextBatch.js +195 -195
  60. package/src/components/sdf_text/TextGlyph.js +17 -17
  61. package/src/data_textures/CustomDataTexture.js +53 -53
  62. package/src/data_textures/RGBADataTexture.js +14 -14
  63. package/src/data_textures/RGBAFloatDataTexture.js +14 -14
  64. package/src/data_textures/RGBDataTexture.js +14 -14
  65. package/src/data_textures/RGBFloatDataTexture.js +13 -13
  66. package/src/editor/ManipulatorHandle.js +73 -73
  67. package/src/editor/ObjectEditor.js +68 -68
  68. package/src/editor/ObjectManipulator.js +112 -112
  69. package/src/editor/ObjectPicker.js +77 -77
  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 +111 -111
  73. package/src/gpu_particles/ParticleAttribute.js +89 -89
  74. package/src/gpu_particles/ParticlePositionAttribute.js +42 -42
  75. package/src/html_utilities/CSSAnimator.js +66 -66
  76. package/src/html_utilities/css_animator_states/Animating.js +46 -46
  77. package/src/html_utilities/css_animator_states/Idle.js +27 -27
  78. package/src/index.js +134 -134
  79. package/src/loaders/AsyncAbstractLoader.js +160 -160
  80. package/src/loaders/AsyncAudiosLoader.js +34 -34
  81. package/src/loaders/AsyncObjectsLoader.js +44 -44
  82. package/src/loaders/AsyncTexturesLoader.js +81 -70
  83. package/src/loaders/assets_loader/AsyncAssetsLoaderWorker.js +69 -69
  84. package/src/loaders/assets_loader/ResourceContainer.js +37 -37
  85. package/src/loaders/assets_loader/ResourceLoaderChecker.js +39 -39
  86. package/src/materials/AddMaterial.js +20 -20
  87. package/src/materials/AlphaFilterMaterial.js +23 -23
  88. package/src/materials/BaseShaderMaterial.js +21 -21
  89. package/src/materials/BlitMaterial.js +30 -30
  90. package/src/materials/BloomComposeMaterial.js +24 -24
  91. package/src/materials/BoxBlurMaterial.js +16 -16
  92. package/src/materials/ClearAlphaMaterial.js +15 -15
  93. package/src/materials/ClearColorMaterial.js +33 -33
  94. package/src/materials/ClearDepthNormalMaterial.js +16 -16
  95. package/src/materials/DeferredRendererComposeMaterial.js +35 -35
  96. package/src/materials/DepthNormalMaterial.js +30 -30
  97. package/src/materials/DisplayNormalTextureMaterial.js +18 -18
  98. package/src/materials/DualFilteringBlurMaterial.js +14 -14
  99. package/src/materials/FXAAMaterial.js +12 -12
  100. package/src/materials/GaussianBlurMaterial.js +40 -40
  101. package/src/materials/LuminosityHighPassMaterial.js +26 -26
  102. package/src/materials/MedianFilterMaterial.js +45 -45
  103. package/src/materials/NormalMaterial.js +19 -19
  104. package/src/materials/SDFScreenTextMaterial.js +34 -34
  105. package/src/materials/SDFTextMaterial.js +41 -41
  106. package/src/materials/SSAOComposeMaterial.js +14 -14
  107. package/src/materials/SSAOMaterial.js +65 -65
  108. package/src/materials/ScreenSpaceTextureMaterial.js +67 -67
  109. package/src/materials/UIElementMaterial.js +30 -30
  110. package/src/materials/UnrealBloomComposeMaterial.js +100 -100
  111. package/src/materials/UnrealBlurMaterial.js +20 -20
  112. package/src/materials/UnrealComposeMaterial.js +27 -27
  113. package/src/materials/ViewPositionMaterial.js +19 -19
  114. package/src/materials/deferred/DeferredPointLightMaterial.js +42 -42
  115. package/src/materials/gpu_particles/AttributeUpdateMaterial.js +37 -37
  116. package/src/materials/gpu_particles/BasicParticleMaterial.js +25 -25
  117. package/src/materials/gpu_particles/ParticleStorageMaterial.js +37 -37
  118. package/src/materials/gpu_particles/PositionStorageMaterial.js +26 -26
  119. package/src/object_pool/Pool.js +75 -75
  120. package/src/primitives/Arrow.js +62 -62
  121. package/src/primitives/Cube.js +24 -24
  122. package/src/primitives/HorizontalPlane.js +27 -27
  123. package/src/primitives/Sphere.js +22 -22
  124. package/src/primitives/VerticalPlane.js +26 -26
  125. package/src/raycast/GroupRaycaster.js +43 -43
  126. package/src/raycast/PlaneDragResolver.js +92 -92
  127. package/src/raycast/PlaneRaycastResolver.js +24 -24
  128. package/src/raycast/PlaneRaycaster.js +25 -25
  129. package/src/raycast/RaycastResolver.js +24 -24
  130. package/src/raycast/SurfaceDragResolver.js +80 -80
  131. package/src/raycast/states/BaseState.js +18 -18
  132. package/src/raycast/states/IdleState.js +19 -19
  133. package/src/raycast/states/OnRaycastEnter.js +17 -17
  134. package/src/raycast/states/OnRaycastExit.js +18 -18
  135. package/src/raycast/states/OnRaycastHover.js +27 -27
  136. package/src/render_mode/BaseRender.js +34 -34
  137. package/src/render_mode/BloomRender.js +63 -63
  138. package/src/render_mode/DebugNormalsRender.js +22 -22
  139. package/src/render_mode/DeferredRender.js +110 -110
  140. package/src/render_mode/NormalAORender.js +72 -72
  141. package/src/render_mode/NormalRender.js +38 -38
  142. package/src/render_mode/OutlineRender.js +157 -157
  143. package/src/render_mode/PlanarReflectionsRender.js +121 -121
  144. package/src/render_mode/UnrealBloomRender.js +123 -123
  145. package/src/render_mode/VRRender.js +71 -71
  146. package/src/render_utilities/Blitter.js +101 -101
  147. package/src/render_utilities/Blurrer.js +31 -31
  148. package/src/render_utilities/DepthAndNormalsRenderer.js +47 -47
  149. package/src/render_utilities/DualFilteringBlurrer.js +58 -58
  150. package/src/render_utilities/GaussianBlurrer.js +167 -167
  151. package/src/render_utilities/MedianFilter.js +68 -68
  152. package/src/render_utilities/ViewPositionRenderer.js +50 -50
  153. package/src/resource_loader/BasisLoader.js +51 -51
  154. package/src/resource_loader/FontLoader.js +48 -48
  155. package/src/resource_loader/JSONLoader.js +35 -35
  156. package/src/resource_loader/OBJLoader.js +48 -48
  157. package/src/resource_loader/PointArrayLoader.js +72 -72
  158. package/src/resource_loader/RGBETextureLoader.js +48 -48
  159. package/src/resource_loader/VideoLoader.js +32 -32
  160. package/src/scenes/AbstractScene.js +175 -175
  161. package/src/scenes/loading_states/CompilatorManager.js +41 -41
  162. package/src/scenes/loading_states/HighQualityLoadingState.js +28 -28
  163. package/src/scenes/loading_states/LoadingState.js +117 -117
  164. package/src/scenes/loading_states/RegularLoadingState.js +41 -41
  165. package/src/shaders/add/add.frag +27 -27
  166. package/src/shaders/anti_aliasing/fxaa.frag +72 -72
  167. package/src/shaders/basic_color/basic_color.frag +5 -5
  168. package/src/shaders/basic_color/basic_color.vert +9 -9
  169. package/src/shaders/basic_line/basic_line.frag +36 -36
  170. package/src/shaders/basic_line/basic_line.vert +37 -37
  171. package/src/shaders/basic_texture/basic_texture.frag +9 -9
  172. package/src/shaders/basic_texture/basic_texture.vert +16 -16
  173. package/src/shaders/bloom/bloom_compose_frag.glsl +22 -22
  174. package/src/shaders/bloom/cheap_bloom_compose_frag.glsl +13 -13
  175. package/src/shaders/box_blur/box_blur.frag +24 -24
  176. package/src/shaders/box_blur/compose.frag +31 -31
  177. package/src/shaders/clear/clear_depth_normal.frag +24 -24
  178. package/src/shaders/copy/copy.frag +6 -6
  179. package/src/shaders/copy/copy.vert +5 -5
  180. package/src/shaders/deferred/blit_copy.vert +11 -11
  181. package/src/shaders/deferred/deferred_compose.frag +59 -59
  182. package/src/shaders/deferred/point_light.frag +66 -66
  183. package/src/shaders/deferred/point_light.vert +13 -13
  184. package/src/shaders/depth_normals/debug_normals.frag +47 -47
  185. package/src/shaders/depth_normals/depth_normals.frag +30 -30
  186. package/src/shaders/depth_normals/depth_normals.vert +12 -12
  187. package/src/shaders/dual_filter_blur/alpha_filter.frag +14 -14
  188. package/src/shaders/dual_filter_blur/downsample.frag +21 -21
  189. package/src/shaders/dual_filter_blur/upsample.frag +24 -24
  190. package/src/shaders/edge_visualizer/edge_visualizer.frag +17 -17
  191. package/src/shaders/edge_visualizer/edge_visualizer.vert +15 -15
  192. package/src/shaders/edges/corners.frag +10 -10
  193. package/src/shaders/edges/corners.vert +30 -30
  194. package/src/shaders/edges/edges.frag +6 -6
  195. package/src/shaders/edges/edges.vert +27 -27
  196. package/src/shaders/gaussian_blur/gaussian_blur.frag +43 -43
  197. package/src/shaders/gaussian_blur/unreal_bloom_compose.frag +36 -36
  198. package/src/shaders/gpu_particles/common_utils.glsl +12 -12
  199. package/src/shaders/gpu_particles/generic_storage.frag +6 -6
  200. package/src/shaders/gpu_particles/store/store_position.vert +14 -14
  201. package/src/shaders/gpu_particles/update/basic_update.frag +20 -20
  202. package/src/shaders/gpu_particles/visualize/visualize.frag +10 -10
  203. package/src/shaders/gpu_particles/visualize/visualize.vert +12 -12
  204. package/src/shaders/grid/grid.frag +16 -16
  205. package/src/shaders/grid/grid.vert +9 -9
  206. package/src/shaders/luminosity_high_pass/luminosity_high_pass.frag +37 -37
  207. package/src/shaders/median_filter/median_filter.frag +134 -134
  208. package/src/shaders/normal/normal.frag +6 -6
  209. package/src/shaders/normal/normal.vert +6 -6
  210. package/src/shaders/sdf_text/sdf_screen_text.frag +51 -51
  211. package/src/shaders/sdf_text/sdf_screen_text.vert +41 -41
  212. package/src/shaders/sdf_text/sdf_text.frag +53 -53
  213. package/src/shaders/sdf_text/sdf_text.vert +41 -41
  214. package/src/shaders/ssao/hbao.frag +264 -264
  215. package/src/shaders/ssao/ssao.frag +95 -95
  216. package/src/shaders/ssao/ssao.vert +10 -10
  217. package/src/shaders/ssao/ssao_compose.frag +14 -14
  218. package/src/shaders/transparent_mix/copy.frag +6 -6
  219. package/src/shaders/transparent_mix/transparent_mix.frag +18 -18
  220. package/src/shaders/transparent_mix/transparent_mix.vert +7 -7
  221. package/src/shaders/ui/ss_texture.frag +10 -10
  222. package/src/shaders/ui/ss_texture.vert +31 -31
  223. package/src/shaders/ui/ws_texture.vert +38 -38
  224. package/src/shaders/ui_element/ui_element.frag +11 -11
  225. package/src/shaders/ui_element/ui_element.vert +32 -32
  226. package/src/shaders/unreal_blur/unreal_blur.frag +24 -24
  227. package/src/shaders/unreal_blur/unreal_compose.frag +23 -23
  228. package/src/shaders/write_view_position/write_view_position.frag +6 -6
  229. package/src/shaders/write_view_position/write_view_position.vert +8 -8
  230. package/src/static_batcher/BatchedMesh.js +56 -56
  231. package/src/static_batcher/GeometryBatch.js +308 -308
  232. package/src/static_batcher/GeometryBatcher.js +64 -64
  233. package/src/static_batcher/MeshBatcher.js +58 -58
  234. package/src/ui/ui_element_position/ScreenSpacePosition.js +16 -16
  235. package/src/ui/ui_element_position/WorldSpacePosition.js +23 -23
  236. package/src/ui/ui_element_state/OnIdle.js +24 -24
  237. package/src/ui/ui_element_state/OnMouseEnter.js +39 -39
  238. package/src/ui/ui_element_state/OnMouseExit.js +22 -22
  239. package/src/ui/ui_element_state/OnMouseHover.js +46 -46
  240. package/src/ui/ui_element_state/UIElementState.js +34 -34
  241. package/src/utilities/ArrayUtilities.js +57 -57
  242. package/src/utilities/CameraUtilities.js +283 -283
  243. package/src/utilities/EasingFunctions.js +231 -231
  244. package/src/utilities/FrustumPointFitter.js +257 -257
  245. package/src/utilities/GeometryUtilities.js +76 -76
  246. package/src/utilities/HTMLUtilities.js +76 -76
  247. package/src/utilities/ImageUtilities.js +28 -28
  248. package/src/utilities/MeshSampler.js +206 -206
  249. package/src/utilities/ModelUtilities.js +162 -162
  250. package/src/utilities/OMath.js +158 -158
  251. package/src/utilities/OrthographicFrustumPointFitter.js +49 -49
  252. package/src/utilities/PerspectiveFrustumPointFitter.js +254 -254
  253. package/src/utilities/StringUtilities.js +43 -43
  254. package/src/utilities/TimeUtilities.js +24 -24
  255. package/src/utilities/Validation.js +36 -36
  256. package/src/view_components/ApplicationView.js +73 -73
  257. package/src/view_components/TransitionManager.js +75 -75
  258. package/src/view_components/ViewComponent.js +61 -61
  259. package/src/view_components/ViewComponentManager.js +69 -69
  260. package/src/view_components/ViewManager.js +145 -145
  261. package/src/view_components/ViewState.js +49 -49
  262. package/src/view_components/transition/ActionSequencerBuilder.js +124 -124
  263. package/src/view_components/transition/DrawIOAnimationSheet.js +92 -92
  264. package/src/view_components/transition/TransitionTable.js +54 -54
  265. package/src/view_components/transition/ViewStateTransitionHandler.js +106 -106
@@ -1,19 +1,19 @@
1
- import frag from '../shaders/write_view_position/write_view_position.frag';
2
- import vert from '../shaders/write_view_position/write_view_position.vert';
3
-
4
- import { ShaderMaterial } from 'three';
5
-
6
- class ViewPositionMaterial extends ShaderMaterial
7
- {
8
- constructor()
9
- {
10
- super({
11
- uniforms: {
12
- },
13
- vertexShader: vert,
14
- fragmentShader: frag
15
- });
16
- }
17
- }
18
-
19
- export { ViewPositionMaterial };
1
+ import frag from '../shaders/write_view_position/write_view_position.frag';
2
+ import vert from '../shaders/write_view_position/write_view_position.vert';
3
+
4
+ import { ShaderMaterial } from 'three';
5
+
6
+ class ViewPositionMaterial extends ShaderMaterial
7
+ {
8
+ constructor()
9
+ {
10
+ super({
11
+ uniforms: {
12
+ },
13
+ vertexShader: vert,
14
+ fragmentShader: frag
15
+ });
16
+ }
17
+ }
18
+
19
+ export { ViewPositionMaterial };
@@ -1,42 +1,42 @@
1
- import vert from '../../shaders/deferred/point_light.vert';
2
- import frag from '../../shaders/deferred/point_light.frag';
3
-
4
- import { BaseShaderMaterial } from '../../materials/BaseShaderMaterial';
5
-
6
- import { Matrix4 } from 'three';
7
- import { AdditiveBlending } from 'three';
8
- import { BackSide } from 'three';
9
-
10
- class DeferredPointLightMaterial extends BaseShaderMaterial
11
- {
12
- constructor(intensity = 1)
13
- {
14
- super(vert, frag, {
15
- _Intensity: { value: intensity },
16
- _AlbedoTex: { value: undefined },
17
- _NormalDepthTex: { value: undefined },
18
- _InverseProjMatrix: { value: new Matrix4() }
19
- });
20
-
21
- this.blending = AdditiveBlending;
22
- this.depthWrite = false;
23
- this.side = BackSide;
24
- }
25
-
26
- set_inverse_proj_matrix(mat4)
27
- {
28
- this.uniforms._InverseProjMatrix.value.copy(mat4);
29
- }
30
-
31
- set_normal_depth_rt(rt)
32
- {
33
- this.uniforms._NormalDepthTex.value = rt.texture;
34
- }
35
-
36
- set_albedo_rt(rt)
37
- {
38
- this.uniforms._AlbedoTex.value = rt.texture;
39
- }
40
- }
41
-
42
- export { DeferredPointLightMaterial };
1
+ import vert from '../../shaders/deferred/point_light.vert';
2
+ import frag from '../../shaders/deferred/point_light.frag';
3
+
4
+ import { BaseShaderMaterial } from '../../materials/BaseShaderMaterial';
5
+
6
+ import { Matrix4 } from 'three';
7
+ import { AdditiveBlending } from 'three';
8
+ import { BackSide } from 'three';
9
+
10
+ class DeferredPointLightMaterial extends BaseShaderMaterial
11
+ {
12
+ constructor(intensity = 1)
13
+ {
14
+ super(vert, frag, {
15
+ _Intensity: { value: intensity },
16
+ _AlbedoTex: { value: undefined },
17
+ _NormalDepthTex: { value: undefined },
18
+ _InverseProjMatrix: { value: new Matrix4() }
19
+ });
20
+
21
+ this.blending = AdditiveBlending;
22
+ this.depthWrite = false;
23
+ this.side = BackSide;
24
+ }
25
+
26
+ set_inverse_proj_matrix(mat4)
27
+ {
28
+ this.uniforms._InverseProjMatrix.value.copy(mat4);
29
+ }
30
+
31
+ set_normal_depth_rt(rt)
32
+ {
33
+ this.uniforms._NormalDepthTex.value = rt.texture;
34
+ }
35
+
36
+ set_albedo_rt(rt)
37
+ {
38
+ this.uniforms._AlbedoTex.value = rt.texture;
39
+ }
40
+ }
41
+
42
+ export { DeferredPointLightMaterial };
@@ -1,37 +1,37 @@
1
- import { BlitMaterial } from '../../materials/BlitMaterial';
2
-
3
- import frag from '../../shaders/gpu_particles/update/basic_update.frag';
4
-
5
- import { Time } from '../../Time';
6
-
7
- import { common_utils } from '../../shaders/gpu_particles/common_utils';
8
-
9
- import { Vector2 } from 'three';
10
- import { ShaderChunk } from 'three';
11
-
12
- class AttributeUpdateMaterial extends BlitMaterial
13
- {
14
- constructor(custom_frag)
15
- {
16
- ShaderChunk.gpu_particles_utils = common_utils;
17
-
18
- super(custom_frag || frag);
19
- this.uniforms._Time = { value: new Vector2() };
20
- this.multiplier = 0;
21
- }
22
-
23
- update()
24
- {
25
- this.uniforms._Time.value.x = Time.delta_time;
26
- this.uniforms._Time.value.y += Time.delta_time;
27
- // this.precision = "lowp";
28
- }
29
-
30
- set_multiplier(val)
31
- {
32
- console.log(val);
33
- this.multiplier = val;
34
- }
35
- }
36
-
37
- export { AttributeUpdateMaterial };
1
+ import { BlitMaterial } from '../../materials/BlitMaterial';
2
+
3
+ import frag from '../../shaders/gpu_particles/update/basic_update.frag';
4
+
5
+ import { Time } from '../../Time';
6
+
7
+ import { common_utils } from '../../shaders/gpu_particles/common_utils';
8
+
9
+ import { Vector2 } from 'three';
10
+ import { ShaderChunk } from 'three';
11
+
12
+ class AttributeUpdateMaterial extends BlitMaterial
13
+ {
14
+ constructor(custom_frag)
15
+ {
16
+ ShaderChunk.gpu_particles_utils = common_utils;
17
+
18
+ super(custom_frag || frag);
19
+ this.uniforms._Time = { value: new Vector2() };
20
+ this.multiplier = 0;
21
+ }
22
+
23
+ update()
24
+ {
25
+ this.uniforms._Time.value.x = Time.delta_time;
26
+ this.uniforms._Time.value.y += Time.delta_time;
27
+ // this.precision = "lowp";
28
+ }
29
+
30
+ set_multiplier(val)
31
+ {
32
+ console.log(val);
33
+ this.multiplier = val;
34
+ }
35
+ }
36
+
37
+ export { AttributeUpdateMaterial };
@@ -1,25 +1,25 @@
1
- import vert from '../../shaders/gpu_particles/visualize/visualize.vert';
2
- import frag from '../../shaders/gpu_particles/visualize/visualize.frag';
3
-
4
- import { ShaderMaterial } from 'three';
5
-
6
- class BasicParticleMaterial extends ShaderMaterial
7
- {
8
- constructor()
9
- {
10
- // ShaderChunk["gpu_particles_utils"] = common_utils;
11
-
12
- super({
13
- uniforms: {
14
- _Position: { value: undefined },
15
- _Time: { value: 0 }
16
- },
17
- vertexShader: vert,
18
- fragmentShader: frag,
19
- transparent: true,
20
- depthWrite: false
21
- });
22
- }
23
- }
24
-
25
- export { BasicParticleMaterial };
1
+ import vert from '../../shaders/gpu_particles/visualize/visualize.vert';
2
+ import frag from '../../shaders/gpu_particles/visualize/visualize.frag';
3
+
4
+ import { ShaderMaterial } from 'three';
5
+
6
+ class BasicParticleMaterial extends ShaderMaterial
7
+ {
8
+ constructor()
9
+ {
10
+ // ShaderChunk["gpu_particles_utils"] = common_utils;
11
+
12
+ super({
13
+ uniforms: {
14
+ _Position: { value: undefined },
15
+ _Time: { value: 0 }
16
+ },
17
+ vertexShader: vert,
18
+ fragmentShader: frag,
19
+ transparent: true,
20
+ depthWrite: false
21
+ });
22
+ }
23
+ }
24
+
25
+ export { BasicParticleMaterial };
@@ -1,37 +1,37 @@
1
- import frag from '../../shaders/gpu_particles/generic_storage.frag';
2
-
3
- import { ShaderMaterial } from 'three';
4
- import { NoBlending } from 'three';
5
- import { AlwaysDepth } from 'three';
6
-
7
- class ParticleStorageMaterial extends ShaderMaterial
8
- {
9
- constructor()
10
- {
11
- const vert = `
12
- varying vec4 value;
13
- attribute vec4 data;
14
-
15
- void main()
16
- {
17
- gl_Position = vec4(position.xy * 2.0 - 1.0, 1.0,1.0);
18
- gl_PointSize = 1.0;
19
-
20
- value = data;
21
- }
22
- `;
23
- super({
24
- uniforms: {
25
-
26
- },
27
- vertexShader: vert,
28
- fragmentShader: frag,
29
- depthWrite: false,
30
- blending: NoBlending,
31
- depthTest: false,
32
- depthFunc: AlwaysDepth
33
- });
34
- }
35
- }
36
-
37
- export { ParticleStorageMaterial };
1
+ import frag from '../../shaders/gpu_particles/generic_storage.frag';
2
+
3
+ import { ShaderMaterial } from 'three';
4
+ import { NoBlending } from 'three';
5
+ import { AlwaysDepth } from 'three';
6
+
7
+ class ParticleStorageMaterial extends ShaderMaterial
8
+ {
9
+ constructor()
10
+ {
11
+ const vert = `
12
+ varying vec4 value;
13
+ attribute vec4 data;
14
+
15
+ void main()
16
+ {
17
+ gl_Position = vec4(position.xy * 2.0 - 1.0, 1.0,1.0);
18
+ gl_PointSize = 1.0;
19
+
20
+ value = data;
21
+ }
22
+ `;
23
+ super({
24
+ uniforms: {
25
+
26
+ },
27
+ vertexShader: vert,
28
+ fragmentShader: frag,
29
+ depthWrite: false,
30
+ blending: NoBlending,
31
+ depthTest: false,
32
+ depthFunc: AlwaysDepth
33
+ });
34
+ }
35
+ }
36
+
37
+ export { ParticleStorageMaterial };
@@ -1,26 +1,26 @@
1
- import { ParticleStorageMaterial } from '../../materials/gpu_particles/ParticleStorageMaterial';
2
-
3
- class PositionStorageMaterial extends ParticleStorageMaterial
4
- {
5
- constructor()
6
- {
7
- const vert = `
8
-
9
- varying vec4 value;
10
-
11
- attribute vec2 storage_uv;
12
-
13
- void main()
14
- {
15
- gl_Position = vec4(storage_uv * 2.0 - 1.0, 1.0,1.0);
16
- gl_PointSize = 1.0;
17
-
18
- value = vec4(position.xyz, 1.0);
19
- }
20
-
21
- `;
22
- super(vert);
23
- }
24
- }
25
-
26
- export { PositionStorageMaterial };
1
+ import { ParticleStorageMaterial } from '../../materials/gpu_particles/ParticleStorageMaterial';
2
+
3
+ class PositionStorageMaterial extends ParticleStorageMaterial
4
+ {
5
+ constructor()
6
+ {
7
+ const vert = `
8
+
9
+ varying vec4 value;
10
+
11
+ attribute vec2 storage_uv;
12
+
13
+ void main()
14
+ {
15
+ gl_Position = vec4(storage_uv * 2.0 - 1.0, 1.0,1.0);
16
+ gl_PointSize = 1.0;
17
+
18
+ value = vec4(position.xyz, 1.0);
19
+ }
20
+
21
+ `;
22
+ super(vert);
23
+ }
24
+ }
25
+
26
+ export { PositionStorageMaterial };
@@ -1,75 +1,75 @@
1
- class Pool
2
- {
3
- constructor()
4
- {
5
- this.available = [];
6
- this.busy = [];
7
- }
8
-
9
- preload(starting_pool_size)
10
- {
11
- for (let i = 0; i < starting_pool_size; i++)
12
- {
13
- this.instantiate();
14
- }
15
- }
16
-
17
- instantiate()
18
- {
19
- const obj = this.__create();
20
- if (obj === undefined)
21
- {
22
- console.error('Class ' + this.constructor.name + ' does not implement __create() method correctly. It should return a new instance of the pooled object', obj);
23
- }
24
- if (obj.warm_up === undefined)
25
- {
26
- console.error('Class ' + obj.constructor.name + ' does not implement warm_up() method needed to allow pooling', obj);
27
- }
28
- if (obj.tier_down === undefined)
29
- {
30
- console.error('Class ' + obj.constructor.name + ' does not implement tier_down() method needed to allow pooling', obj);
31
- }
32
- this.available.push(obj);
33
- }
34
-
35
- get()
36
- {
37
- if (this.available.length === 0)
38
- {
39
- this.instantiate();
40
- }
41
-
42
- const obj = this.available.pop();
43
- this.busy.push(obj);
44
- obj.warm_up();
45
- return obj;
46
- }
47
-
48
- release(obj)
49
- {
50
- const index = this.busy.indexOf(obj);
51
- if (index > -1)
52
- {
53
- this.busy.splice(index, 1);
54
- this.available.push(obj);
55
- obj.tier_down();
56
- }
57
- }
58
-
59
- release_all()
60
- {
61
- while (this.busy.length > 0)
62
- {
63
- this.release(this.busy[0]);
64
- }
65
- }
66
-
67
- // @override this one when subclassing
68
- // must return a new instance
69
- __create()
70
- {
71
- console.error('__create not implemented');
72
- }
73
- }
74
-
75
- export { Pool };
1
+ class Pool
2
+ {
3
+ constructor()
4
+ {
5
+ this.available = [];
6
+ this.busy = [];
7
+ }
8
+
9
+ preload(starting_pool_size)
10
+ {
11
+ for (let i = 0; i < starting_pool_size; i++)
12
+ {
13
+ this.instantiate();
14
+ }
15
+ }
16
+
17
+ instantiate()
18
+ {
19
+ const obj = this.__create();
20
+ if (obj === undefined)
21
+ {
22
+ console.error('Class ' + this.constructor.name + ' does not implement __create() method correctly. It should return a new instance of the pooled object', obj);
23
+ }
24
+ if (obj.warm_up === undefined)
25
+ {
26
+ console.error('Class ' + obj.constructor.name + ' does not implement warm_up() method needed to allow pooling', obj);
27
+ }
28
+ if (obj.tier_down === undefined)
29
+ {
30
+ console.error('Class ' + obj.constructor.name + ' does not implement tier_down() method needed to allow pooling', obj);
31
+ }
32
+ this.available.push(obj);
33
+ }
34
+
35
+ get()
36
+ {
37
+ if (this.available.length === 0)
38
+ {
39
+ this.instantiate();
40
+ }
41
+
42
+ const obj = this.available.pop();
43
+ this.busy.push(obj);
44
+ obj.warm_up();
45
+ return obj;
46
+ }
47
+
48
+ release(obj)
49
+ {
50
+ const index = this.busy.indexOf(obj);
51
+ if (index > -1)
52
+ {
53
+ this.busy.splice(index, 1);
54
+ this.available.push(obj);
55
+ obj.tier_down();
56
+ }
57
+ }
58
+
59
+ release_all()
60
+ {
61
+ while (this.busy.length > 0)
62
+ {
63
+ this.release(this.busy[0]);
64
+ }
65
+ }
66
+
67
+ // @override this one when subclassing
68
+ // must return a new instance
69
+ __create()
70
+ {
71
+ console.error('__create not implemented');
72
+ }
73
+ }
74
+
75
+ export { Pool };
@@ -1,62 +1,62 @@
1
- // @ts-check
2
- import { ConeGeometry, CylinderGeometry, Mesh, MeshBasicMaterial, Vector3 } from 'three';
3
-
4
- import * as BufferGeometryUtils from 'three/examples/jsm/utils/BufferGeometryUtils.js';
5
-
6
- class Arrow extends Mesh
7
- {
8
- /**
9
- * @param {string | number} [color]
10
- * @param {number} [length]
11
- * @param {Vector3} [dir]
12
- */
13
- constructor(color, length, dir)
14
- {
15
- color = color || '#FF0000';
16
- length = length || 1;
17
-
18
- const cone_height = 0.4;
19
- const cylinder_height = length - cone_height;
20
- const cylinder_geo = new CylinderGeometry(0.01, 0.01, cylinder_height, 32);
21
- cylinder_geo.translate(0, cylinder_height / 2, 0);
22
-
23
- const cone_geometry = new ConeGeometry(0.1, cone_height, 32);
24
- cone_geometry.translate(0, cylinder_height + cone_height / 2, 0);
25
-
26
- const buffer_geometry = BufferGeometryUtils.mergeGeometries([cylinder_geo, cone_geometry]);
27
- buffer_geometry.rotateX(3.14 / 2);
28
-
29
- const material = new MeshBasicMaterial({ color: color });
30
- super(buffer_geometry, material);
31
-
32
- if (dir)
33
- {
34
- this.quaternion.setFromUnitVectors(new Vector3(0, 0, 1), dir);
35
- }
36
-
37
- this._dir = dir;
38
- }
39
-
40
- set dir(dir)
41
- {
42
- this.quaternion.setFromUnitVectors(new Vector3(0, 0, 1), dir);
43
- this._dir = dir;
44
- }
45
-
46
- get dir()
47
- {
48
- return this._dir;
49
- }
50
-
51
- set length(value)
52
- {
53
- this.scale.z = value;
54
- }
55
-
56
- get length()
57
- {
58
- return this.scale.z;
59
- }
60
- }
61
-
62
- export { Arrow };
1
+ // @ts-check
2
+ import { ConeGeometry, CylinderGeometry, Mesh, MeshBasicMaterial, Vector3 } from 'three';
3
+
4
+ import * as BufferGeometryUtils from 'three/examples/jsm/utils/BufferGeometryUtils.js';
5
+
6
+ class Arrow extends Mesh
7
+ {
8
+ /**
9
+ * @param {string | number} [color]
10
+ * @param {number} [length]
11
+ * @param {Vector3} [dir]
12
+ */
13
+ constructor(color, length, dir)
14
+ {
15
+ color = color || '#FF0000';
16
+ length = length || 1;
17
+
18
+ const cone_height = 0.4;
19
+ const cylinder_height = length - cone_height;
20
+ const cylinder_geo = new CylinderGeometry(0.01, 0.01, cylinder_height, 32);
21
+ cylinder_geo.translate(0, cylinder_height / 2, 0);
22
+
23
+ const cone_geometry = new ConeGeometry(0.1, cone_height, 32);
24
+ cone_geometry.translate(0, cylinder_height + cone_height / 2, 0);
25
+
26
+ const buffer_geometry = BufferGeometryUtils.mergeGeometries([cylinder_geo, cone_geometry]);
27
+ buffer_geometry.rotateX(3.14 / 2);
28
+
29
+ const material = new MeshBasicMaterial({ color: color });
30
+ super(buffer_geometry, material);
31
+
32
+ if (dir)
33
+ {
34
+ this.quaternion.setFromUnitVectors(new Vector3(0, 0, 1), dir);
35
+ }
36
+
37
+ this._dir = dir;
38
+ }
39
+
40
+ set dir(dir)
41
+ {
42
+ this.quaternion.setFromUnitVectors(new Vector3(0, 0, 1), dir);
43
+ this._dir = dir;
44
+ }
45
+
46
+ get dir()
47
+ {
48
+ return this._dir;
49
+ }
50
+
51
+ set length(value)
52
+ {
53
+ this.scale.z = value;
54
+ }
55
+
56
+ get length()
57
+ {
58
+ return this.scale.z;
59
+ }
60
+ }
61
+
62
+ export { Arrow };