@babylonjs-toolkit/next 9.10.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 (131) hide show
  1. package/README.md +312 -0
  2. package/lib/blendtreeposition.d.ts +5 -0
  3. package/lib/blendtreeposition.d.ts.map +1 -0
  4. package/lib/blendtreeposition.js +5 -0
  5. package/lib/channelmixerplugin.d.ts +11 -0
  6. package/lib/channelmixerplugin.d.ts.map +1 -0
  7. package/lib/channelmixerplugin.js +34 -0
  8. package/lib/collisioncontact.d.ts +7 -0
  9. package/lib/collisioncontact.d.ts.map +1 -0
  10. package/lib/collisioncontact.js +7 -0
  11. package/lib/collisionfilters.d.ts +10 -0
  12. package/lib/collisionfilters.d.ts.map +1 -0
  13. package/lib/collisionfilters.js +10 -0
  14. package/lib/collisionflags.d.ts +14 -0
  15. package/lib/collisionflags.d.ts.map +1 -0
  16. package/lib/collisionflags.js +14 -0
  17. package/lib/collisionstate.d.ts +8 -0
  18. package/lib/collisionstate.d.ts.map +1 -0
  19. package/lib/collisionstate.js +8 -0
  20. package/lib/customloadingscreen.d.ts +16 -0
  21. package/lib/customloadingscreen.d.ts.map +1 -0
  22. package/lib/customloadingscreen.js +48 -0
  23. package/lib/entitycontroller.d.ts +11 -0
  24. package/lib/entitycontroller.d.ts.map +1 -0
  25. package/lib/entitycontroller.js +41 -0
  26. package/lib/fontmanifestentry.d.ts +8 -0
  27. package/lib/fontmanifestentry.d.ts.map +1 -0
  28. package/lib/fontmanifestentry.js +1 -0
  29. package/lib/handedness.d.ts +6 -0
  30. package/lib/handedness.d.ts.map +1 -0
  31. package/lib/handedness.js +6 -0
  32. package/lib/ianimationcurve.d.ts +14 -0
  33. package/lib/ianimationcurve.d.ts.map +1 -0
  34. package/lib/ianimationcurve.js +1 -0
  35. package/lib/index.d.ts +94 -0
  36. package/lib/index.d.ts.map +1 -0
  37. package/lib/index.js +90 -0
  38. package/lib/intersectionprecision.d.ts +5 -0
  39. package/lib/intersectionprecision.d.ts.map +1 -0
  40. package/lib/intersectionprecision.js +5 -0
  41. package/lib/iparticlesystemtransform.d.ts +9 -0
  42. package/lib/iparticlesystemtransform.d.ts.map +1 -0
  43. package/lib/iparticlesystemtransform.js +1 -0
  44. package/lib/irecastnavigationplugin.d.ts +92 -0
  45. package/lib/irecastnavigationplugin.d.ts.map +1 -0
  46. package/lib/irecastnavigationplugin.js +1 -0
  47. package/lib/linesmeshrenderer.d.ts +22 -0
  48. package/lib/linesmeshrenderer.d.ts.map +1 -0
  49. package/lib/linesmeshrenderer.js +79 -0
  50. package/lib/localmessagebus.d.ts +9 -0
  51. package/lib/localmessagebus.d.ts.map +1 -0
  52. package/lib/localmessagebus.js +44 -0
  53. package/lib/lutblendplugin.d.ts +13 -0
  54. package/lib/lutblendplugin.d.ts.map +1 -0
  55. package/lib/lutblendplugin.js +153 -0
  56. package/lib/mousebuttonmode.d.ts +6 -0
  57. package/lib/mousebuttonmode.d.ts.map +1 -0
  58. package/lib/mousebuttonmode.js +6 -0
  59. package/lib/movementtype.d.ts +5 -0
  60. package/lib/movementtype.d.ts.map +1 -0
  61. package/lib/movementtype.js +5 -0
  62. package/lib/noisefunction2d.d.ts +2 -0
  63. package/lib/noisefunction2d.d.ts.map +1 -0
  64. package/lib/noisefunction2d.js +1 -0
  65. package/lib/noisefunction3d.d.ts +2 -0
  66. package/lib/noisefunction3d.d.ts.map +1 -0
  67. package/lib/noisefunction3d.js +1 -0
  68. package/lib/noisefunction4d.d.ts +2 -0
  69. package/lib/noisefunction4d.d.ts.map +1 -0
  70. package/lib/noisefunction4d.js +1 -0
  71. package/lib/perlin2d.d.ts +9 -0
  72. package/lib/perlin2d.d.ts.map +1 -0
  73. package/lib/perlin2d.js +45 -0
  74. package/lib/playercontrol.d.ts +5 -0
  75. package/lib/playercontrol.d.ts.map +1 -0
  76. package/lib/playercontrol.js +5 -0
  77. package/lib/prefabobjectpool.d.ts +20 -0
  78. package/lib/prefabobjectpool.d.ts.map +1 -0
  79. package/lib/prefabobjectpool.js +96 -0
  80. package/lib/project.d.ts +2283 -0
  81. package/lib/project.d.ts.map +1 -0
  82. package/lib/project.js +10497 -0
  83. package/lib/randomfn.d.ts +2 -0
  84. package/lib/randomfn.d.ts.map +1 -0
  85. package/lib/randomfn.js +1 -0
  86. package/lib/raycasthitresult.d.ts +21 -0
  87. package/lib/raycasthitresult.d.ts.map +1 -0
  88. package/lib/raycasthitresult.js +36 -0
  89. package/lib/recastclassctor.d.ts +2 -0
  90. package/lib/recastclassctor.d.ts.map +1 -0
  91. package/lib/recastclassctor.js +1 -0
  92. package/lib/roomerrormessage.d.ts +5 -0
  93. package/lib/roomerrormessage.d.ts.map +1 -0
  94. package/lib/roomerrormessage.js +2 -0
  95. package/lib/scenemanager.d.ts +4212 -0
  96. package/lib/scenemanager.d.ts.map +1 -0
  97. package/lib/scenemanager.js +41292 -0
  98. package/lib/simplexnoise.d.ts +21 -0
  99. package/lib/simplexnoise.d.ts.map +1 -0
  100. package/lib/simplexnoise.js +362 -0
  101. package/lib/touchjoystickhandler.d.ts +39 -0
  102. package/lib/touchjoystickhandler.d.ts.map +1 -0
  103. package/lib/touchjoystickhandler.js +175 -0
  104. package/lib/touchmousebutton.d.ts +6 -0
  105. package/lib/touchmousebutton.d.ts.map +1 -0
  106. package/lib/touchmousebutton.js +6 -0
  107. package/lib/triggervolume.d.ts +6 -0
  108. package/lib/triggervolume.d.ts.map +1 -0
  109. package/lib/triggervolume.js +6 -0
  110. package/lib/unitydropdownmenu.d.ts +20 -0
  111. package/lib/unitydropdownmenu.d.ts.map +1 -0
  112. package/lib/unitydropdownmenu.js +144 -0
  113. package/lib/unityscrollbar.d.ts +11 -0
  114. package/lib/unityscrollbar.d.ts.map +1 -0
  115. package/lib/unityscrollbar.js +38 -0
  116. package/lib/unityslider.d.ts +4 -0
  117. package/lib/unityslider.d.ts.map +1 -0
  118. package/lib/unityslider.js +3 -0
  119. package/lib/universalcharactercontroller.d.ts +3 -0
  120. package/lib/universalcharactercontroller.d.ts.map +1 -0
  121. package/lib/universalcharactercontroller.js +1 -0
  122. package/lib/userinputpointer.d.ts +6 -0
  123. package/lib/userinputpointer.d.ts.map +1 -0
  124. package/lib/userinputpointer.js +6 -0
  125. package/lib/windowsplatform.d.ts +17 -0
  126. package/lib/windowsplatform.d.ts.map +1 -0
  127. package/lib/windowsplatform.js +133 -0
  128. package/lib/xbox360trigger.d.ts +5 -0
  129. package/lib/xbox360trigger.d.ts.map +1 -0
  130. package/lib/xbox360trigger.js +5 -0
  131. package/package.json +217 -0
package/README.md ADDED
@@ -0,0 +1,312 @@
1
+ # ES6 Next Edition
2
+ The <a href="https://www.babylontoolkit.com">Babylon Toolkit</a> is a runtime library extension for BabylonJS development that provides modern programming mechanics with a familiar Unity like scripting model to fast track native web game development.
3
+
4
+ <a href="https://github.com/babylontoolkit/StarterAssets">Starter Project (ES6)</a>
5
+ <br/>
6
+ <a href="https://www.npmjs.com/package/babylonjs-toolkit">Classic Edition (UMD)</a>
7
+ <br/>
8
+ <a href="https://github.com/BabylonJS/BabylonToolkit/tree/master/Runtime">Browser Library (CDN)</a>
9
+
10
+ ## Basic Installation
11
+ ```bash
12
+ npm install @babylonjs-toolkit/next
13
+ ```
14
+
15
+ ## Default Installation (ES6)
16
+ ```bash
17
+ npm install @babylonjs/core @babylonjs/gui @babylonjs/loaders @babylonjs/materials @babylonjs/inspector @babylonjs/serializers @babylonjs/havok @babylonjs/addons @babylonjs-toolkit/next
18
+ ```
19
+
20
+ * Default Module Import Libraries
21
+ ```javascript
22
+ import { Engine, Scene } from "@babylonjs/core";
23
+ import { HavokPlugin } from "@babylonjs/core/Physics/v2/Plugins/havokPlugin";
24
+ import HavokPhysics from "@babylonjs/havok";
25
+ import { SceneManager, ScriptComponent } from "@babylonjs-toolkit/next";
26
+ ```
27
+
28
+ * Granular File Level Import Libraries
29
+ ```javascript
30
+ import { Engine } from "@babylonjs/core/Engines/engine";
31
+ import { Scene } from "@babylonjs/core/scene";
32
+ import { HavokPlugin } from "@babylonjs/core/Physics/v2/Plugins/havokPlugin";
33
+ import HavokPhysics from "@babylonjs/havok";
34
+ import { SceneManager } from "@babylonjs-toolkit/next/scenemanager";
35
+ import { ScriptComponent } from "@babylonjs-toolkit/next/scenemanager";
36
+ import { LocalMessageBus } from "@babylonjs-toolkit/next/localmessagebus";
37
+ import { CharacterController } from "@babylonjs-toolkit/next/charactercontroller";
38
+ ```
39
+
40
+ * Legacy Global Namespace Import Libraries
41
+ ```javascript
42
+ import * as BABYLON from "@babylonjs/core/Legacy/legacy";
43
+ import { HavokPlugin } from "@babylonjs/core/Physics/v2/Plugins/havokPlugin";
44
+ import HavokPhysics from "@babylonjs/havok";
45
+ import * as TOOLKIT from "@babylonjs-toolkit/next";
46
+ TOOLKIT.SceneManager.AutoStripNamespacePrefix = false;
47
+ ```
48
+
49
+ ### Vite Configuration (ES6)
50
+
51
+ The Vite bundle services behave differently in devmode than production. To preserve some required classes during devmode, these `exclude` and `include` settings are strongly recommended in your vite.config.js settings file.
52
+
53
+ ```json
54
+ optimizeDeps: {
55
+ exclude: ["@babylonjs/havok", "@babylonjs/inspector"],
56
+ include: mode === 'development' ? [
57
+ "@babylonjs/core",
58
+ "@babylonjs/gui",
59
+ "@babylonjs/loaders",
60
+ "@babylonjs/addons",
61
+ "@babylonjs/materials",
62
+ "@babylonjs/serializers",
63
+ "@babylonjs-toolkit/next",
64
+ "scheduler",
65
+ "use-sync-external-store/shim"
66
+ ] : [],
67
+ },
68
+ ```
69
+
70
+ # 🌳 Tree Shaking
71
+
72
+ The Babylon Toolkit ES6 library is optimized for maximum tree-shaking with **39 separate module files** containing **114 total declarations**. The build system intelligently groups related classes to handle circular dependencies while maintaining optimal bundle sizes.
73
+
74
+ ### Key Benefits:
75
+ - ✅ **Smart dependency grouping** - Related classes are bundled together
76
+ - ✅ **Zero unused code** - Only imported classes are included
77
+ - ✅ **Circular dependency handling** - Complex relationships are managed automatically
78
+ - ✅ **Multiple import styles** - Choose the approach that fits your needs
79
+
80
+ ## 🚀 Import Methods
81
+
82
+ ### Method 1: Main Index Import (Recommended)
83
+ ```typescript
84
+ import { SceneManager, ScriptComponent, InputController } from "@babylonjs-toolkit/next";
85
+ ```
86
+ - **Pros**: Simple, clean, easy to refactor
87
+ - **Cons**: Bundler must analyze index.js
88
+ - **Use Case**: Most applications, rapid development
89
+
90
+ ### Method 2: File-Level Import (Maximum Control)
91
+ ```typescript
92
+ import { SceneManager } from "@babylonjs-toolkit/next/scenemanager";
93
+ import { LocalMessageBus } from "@babylonjs-toolkit/next/localmessagebus";
94
+ ```
95
+ - **Pros**: Explicit dependencies, maximum bundler hints
96
+ - **Cons**: More verbose, requires knowledge of file structure
97
+ - **Use Case**: Library authors, performance-critical applications
98
+
99
+ ## 📦 Module Groups
100
+
101
+ The toolkit is organized into logical groups based on dependency analysis. The main entry point uses file level imports automatically
102
+
103
+ ### Core Group (scenemanager.ts)
104
+ The largest group containing the main runtime and interconnected components:
105
+
106
+ **Classes:**
107
+ - `SceneManager` - Main toolkit framework manager
108
+ - `ScriptComponent` - Base class for all script components
109
+ - `PreloadAssetsManager` - Asset preloading management
110
+ - `GlobalMessageBus` - Global messaging system
111
+ - `RequestHeader` - HTTP request utilities
112
+ - `CubeTextureLoader` - Cube texture loading utilities
113
+ - `MetadataParser` - Scene metadata parsing
114
+ - `Utilities` - General utility functions
115
+ - `InputController` - User input management
116
+ - `WindowManager` - Window and screen management
117
+ - `AnimationState` - Animation state machine component
118
+ - `BlendTreeValue` - Animation blend tree values
119
+ - `BlendTreeUtils` - Animation blend tree utilities
120
+ - `BlendTreeSystem` - Animation blend tree system
121
+ - `MachineState` - State machine implementation
122
+ - `TransitionCheck` - Animation transition logic
123
+ - `AnimationMixer` - Animation mixing utilities
124
+ - `BlendingWeights` - Animation blending weights
125
+ - `AudioSource` - Audio playback component
126
+ - `HavokRaycastVehicle` - Havok physics vehicle
127
+ - `HavokWheelInfo` - Vehicle wheel information
128
+ - `HavokVehicleUtilities` - Vehicle utility functions
129
+ - `RaycastVehicle` - Generic raycast vehicle
130
+ - `RigidbodyPhysics` - Physics rigidbody component
131
+ - `PhyscisContainerData` - Physics container data
132
+
133
+ **Interfaces:**
134
+ - `IAssetPreloader` - Asset preloading interface
135
+ - `IWindowMessage` - Window messaging interface
136
+ - `IRuntimeOptions` - Runtime configuration
137
+ - `IUnityTransform` - Unity transform compatibility
138
+ - `IUnityCurve` - Unity animation curve compatibility
139
+ - `IUnityMaterial` - Unity material compatibility
140
+ - `IUnityTexture` - Unity texture compatibility
141
+ - `IUnityCubemap` - Unity cubemap compatibility
142
+ - `IUnityAudioClip` - Unity audio clip compatibility
143
+ - `IUnityVideoClip` - Unity video clip compatibility
144
+ - `IUnityFontAsset` - Unity font asset compatibility
145
+ - `IUnityTextAsset` - Unity text asset compatibility
146
+ - `IUnityDefaultAsset` - Unity default asset compatibility
147
+ - `IUnityVector2` - Unity Vector2 compatibility
148
+ - `IUnityVector3` - Unity Vector3 compatibility
149
+ - `IUnityVector4` - Unity Vector4 compatibility
150
+ - `IUnityColor` - Unity Color compatibility
151
+ - `UserInputPress` - User input press interface
152
+ - `KeymapState` - Input keymap state
153
+ - `IAnimatorEvent` - Animation event interface
154
+ - `IAvatarMask` - Animation avatar mask
155
+ - `IAnimationLayer` - Animation layer interface
156
+ - `IBehaviour` - Animation behavior interface
157
+ - `ITransition` - Animation transition interface
158
+ - `ICondition` - Animation condition interface
159
+ - `IBlendTree` - Animation blend tree interface
160
+ - `IBlendTreeChild` - Blend tree child interface
161
+ - `IPhysicsShapeCastResult` - Physics shape cast result
162
+ - `IPhysicsShapeCastQuery` - Physics shape cast query
163
+
164
+ **Types:**
165
+ - `UserInputAction` - User input action callback type
166
+
167
+ **Enums:**
168
+ - `System` - System type enumeration
169
+ - `SearchType` - Search functionality types
170
+ - `PlayerNumber` - Player identification
171
+ - `RenderQuality` - Graphics quality settings
172
+ - `GamepadType` - Controller types
173
+ - `UserInputAxis` - Input axis enumeration
174
+ - `UserInputKey` - Input key enumeration
175
+ - `MaterialAlphaMode` - Material alpha blending modes
176
+ - `DragDirection` - Touch drag directions
177
+ - `PinchZoomState` - Pinch zoom states
178
+ - `MotionType` - Animation motion types
179
+ - `ConditionMode` - Animation condition modes
180
+ - `InterruptionSource` - Animation interruption sources
181
+ - `BlendTreeType` - Animation blend tree types
182
+ - `AnimatorParameterType` - Animation parameter types
183
+
184
+ ### Standalone Component Groups
185
+
186
+ The remaining components are organized into standalone modules for optimal tree-shaking:
187
+
188
+ #### Animation & Media Components
189
+ - `ShurikenParticles` - Particle system component
190
+ - `WebVideoPlayer` - Video playback component
191
+
192
+ #### Character Controllers
193
+ - `CharacterController` - Physics-based character controller
194
+ - `SimpleCharacterController` - Basic character movement
195
+ - `RecastCharacterController` - Navigation mesh character controller
196
+ - `NavigationAgent` - Navigation mesh agent
197
+ - `UniversalCharacterController` - Universal character controller type
198
+
199
+ #### Terrain & Environment
200
+ - `TerrainGenerator` - Procedural terrain generation
201
+ - `UniversalTerrainMaterial` - Advanced terrain material
202
+ - `UniversalTerrainMaterialPlugin` - Terrain material plugin
203
+
204
+ #### Material & Rendering Systems
205
+ - `CustomShaderMaterial` - Custom shader material system
206
+ - `CustomShaderMaterialPlugin` - Custom shader material plugin
207
+ - `CustomLoadingScreen` - Custom loading screen implementation
208
+ - `LinesMeshRenderer` - Line rendering utilities
209
+
210
+ #### Input & Control Enums
211
+ - `Handedness` - Hand preference enumeration
212
+ - `PlayerControl` - Player control types
213
+ - `Xbox360Trigger` - Xbox controller trigger enumeration
214
+ - `MovementType` - Character movement types
215
+ - `MouseButtonMode` - Mouse button interaction modes
216
+ - `TouchMouseButton` - Touch to mouse button mapping
217
+ - `UserInputPointer` - Input pointer types
218
+
219
+ #### Physics & Collision Systems
220
+ - `CollisionContact` - Collision contact types
221
+ - `CollisionState` - Collision state enumeration
222
+ - `CollisionFlags` - Physics collision flags
223
+ - `CollisionFilters` - Collision filtering system
224
+ - `IntersectionPrecision` - Ray intersection precision
225
+
226
+ #### Animation & UI Types
227
+ - `BlendTreePosition` - Animation blend tree positioning
228
+ - `IAnimationCurve` - Animation curve interface
229
+ - `IAnimationKeyframe` - Animation keyframe interface
230
+ - `TouchJoystickHandler` - Touch joystick input handler
231
+
232
+ #### Data Structures & Results
233
+ - `RaycastHitResult` - Ray casting result data
234
+ - `TriggerVolume` - Physics trigger volume
235
+ - `RoomErrorMessage` - Network room error messaging
236
+ - `PrefabObjectPool` - Object pooling system
237
+ - `LocalMessageBus` - Local messaging system
238
+ - `EntityController` - Entity management controller
239
+
240
+ ## 🎯 Best Practices
241
+
242
+ ### 1. Start Small
243
+ Begin with minimal imports and add components as needed:
244
+ ```typescript
245
+ // Start with this
246
+ import { SceneManager } from "@babylonjs-toolkit/next";
247
+
248
+ // Add components incrementally
249
+ import { SceneManager, InputController } from "@babylonjs-toolkit/next";
250
+ ```
251
+
252
+ ### 2. Group Related Imports
253
+ Import related functionality together:
254
+ ```typescript
255
+ // Good - related physics components
256
+ import {
257
+ CharacterController,
258
+ RigidbodyPhysics,
259
+ CollisionState
260
+ } from "@babylonjs-toolkit/next";
261
+ ```
262
+
263
+ ### 3. Use File-Level Imports For Maximum Control
264
+ When bundle size is critical:
265
+ ```typescript
266
+ // Maximum tree-shaking for production
267
+ import { SceneManager } from "@babylonjs-toolkit/next/scenemanager";
268
+
269
+ // Character Controllers
270
+ import { CharacterController } from "@babylonjs-toolkit/next/scenemanager";
271
+ import { SimpleCharacterController } from "@babylonjs-toolkit/next/scenemanager";
272
+ import { RecastCharacterController } from "@babylonjs-toolkit/next/scenemanager";
273
+
274
+ // Animation & Media Components
275
+ import { ShurikenParticles } from "@babylonjs-toolkit/next/shurikenparticles";
276
+ import { WebVideoPlayer } from "@babylonjs-toolkit/next/webvideoplayer";
277
+
278
+ // Terrain & Environment
279
+ import { TerrainGenerator } from "@babylonjs-toolkit/next/terraingenerator";
280
+ import { UniversalTerrainMaterial } from "@babylonjs-toolkit/next/universalterrainmaterial";
281
+
282
+ // Material Systems
283
+ import { CustomShaderMaterial } from "@babylonjs-toolkit/next/customshadermaterial";
284
+ import { CustomShaderMaterialPlugin } from "@babylonjs-toolkit/next/customshadermaterialplugin";
285
+
286
+ // Utility Classes
287
+ import { CustomLoadingScreen } from "@babylonjs-toolkit/next/customloadingscreen";
288
+ import { PrefabObjectPool } from "@babylonjs-toolkit/next/prefabobjectpool";
289
+ import { LocalMessageBus } from "@babylonjs-toolkit/next/localmessagebus";
290
+ import { LinesMeshRenderer } from "@babylonjs-toolkit/next/linesmeshrenderer";
291
+
292
+ // Enums & Types (Smallest Imports)
293
+ import { Handedness } from "@babylonjs-toolkit/next/handedness";
294
+ import { PlayerControl } from "@babylonjs-toolkit/next/playercontrol";
295
+ import { MovementType } from "@babylonjs-toolkit/next/movementtype";
296
+ import { CollisionContact } from "@babylonjs-toolkit/next/collisioncontact";
297
+ import { BlendTreePosition } from "@babylonjs-toolkit/next/blendtreeposition";
298
+ ```
299
+
300
+ ### 4. Analyze Your Bundle
301
+ Use your bundler's analysis tools to verify tree-shaking:
302
+ ```bash
303
+ # Vite bundle analysis
304
+ npm run build -- --mode production
305
+
306
+ # Webpack bundle analyzer
307
+ npm install --save-dev webpack-bundle-analyzer
308
+ ```
309
+
310
+ ---
311
+
312
+ Note: The **BABYLON** and **TOOLKIT** and **PROJECT** namespaces are globally accessible for UMD style project script bunndles.
@@ -0,0 +1,5 @@
1
+ export declare enum BlendTreePosition {
2
+ Lower = 0,
3
+ Upper = 1
4
+ }
5
+ //# sourceMappingURL=blendtreeposition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blendtreeposition.d.ts","sourceRoot":"","sources":["../src/blendtreeposition.ts"],"names":[],"mappings":"AACA,oBAAY,iBAAiB;IACrB,KAAK,IAAI;IACT,KAAK,IAAI;CACZ"}
@@ -0,0 +1,5 @@
1
+ export var BlendTreePosition;
2
+ (function (BlendTreePosition) {
3
+ BlendTreePosition[BlendTreePosition["Lower"] = 0] = "Lower";
4
+ BlendTreePosition[BlendTreePosition["Upper"] = 1] = "Upper";
5
+ })(BlendTreePosition || (BlendTreePosition = {}));
@@ -0,0 +1,11 @@
1
+ import { Scene } from '@babylonjs/core/scene';
2
+ import { Camera } from '@babylonjs/core/Cameras/camera';
3
+ import { PostProcess } from '@babylonjs/core';
4
+ export declare class ChannelMixerPlugin {
5
+ static CreatePostProcess(scene: Scene, camera: Camera, options?: {
6
+ red?: number[];
7
+ green?: number[];
8
+ blue?: number[];
9
+ }): PostProcess;
10
+ }
11
+ //# sourceMappingURL=channelmixerplugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channelmixerplugin.d.ts","sourceRoot":"","sources":["../src/channelmixerplugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAG9C,qBAAa,kBAAkB;WAKT,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QACpE,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;KAClB;CAiCJ"}
@@ -0,0 +1,34 @@
1
+ import { Texture } from '@babylonjs/core/Materials/Textures/texture';
2
+ import { PostProcess } from '@babylonjs/core';
3
+ export class ChannelMixerPlugin {
4
+ static CreatePostProcess(scene, camera, options) {
5
+ const opts = options || {};
6
+ const red = opts.red || [1, 0, 0];
7
+ const green = opts.green || [0, 1, 0];
8
+ const blue = opts.blue || [0, 0, 1];
9
+ const fragment = `
10
+ precision highp float;
11
+ varying vec2 vUV;
12
+ uniform sampler2D textureSampler;
13
+ uniform vec3 redMix;
14
+ uniform vec3 greenMix;
15
+ uniform vec3 blueMix;
16
+
17
+ void main(void) {
18
+ vec4 sceneColor = texture2D(textureSampler, vUV);
19
+ vec3 rgb = sceneColor.rgb;
20
+ float newR = dot(rgb, redMix);
21
+ float newG = dot(rgb, greenMix);
22
+ float newB = dot(rgb, blueMix);
23
+ gl_FragColor = vec4(newR, newG, newB, sceneColor.a);
24
+ }
25
+ `;
26
+ const post = new PostProcess("channelMixer", fragment, ["redMix", "greenMix", "blueMix"], [], 1.0, camera, Texture.BILINEAR_SAMPLINGMODE, scene.getEngine(), false);
27
+ post.onApply = (effect) => {
28
+ effect.setFloat3('redMix', red[0] || 1, red[1] || 0, red[2] || 0);
29
+ effect.setFloat3('greenMix', green[0] || 0, green[1] || 1, green[2] || 0);
30
+ effect.setFloat3('blueMix', blue[0] || 0, blue[1] || 0, blue[2] || 1);
31
+ };
32
+ return post;
33
+ }
34
+ }
@@ -0,0 +1,7 @@
1
+ export declare enum CollisionContact {
2
+ Top = 0,
3
+ Left = 1,
4
+ Right = 2,
5
+ Bottom = 3
6
+ }
7
+ //# sourceMappingURL=collisioncontact.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collisioncontact.d.ts","sourceRoot":"","sources":["../src/collisioncontact.ts"],"names":[],"mappings":"AACA,oBAAY,gBAAgB;IACpB,GAAG,IAAI;IACP,IAAI,IAAI;IACR,KAAK,IAAI;IACT,MAAM,IAAI;CACb"}
@@ -0,0 +1,7 @@
1
+ export var CollisionContact;
2
+ (function (CollisionContact) {
3
+ CollisionContact[CollisionContact["Top"] = 0] = "Top";
4
+ CollisionContact[CollisionContact["Left"] = 1] = "Left";
5
+ CollisionContact[CollisionContact["Right"] = 2] = "Right";
6
+ CollisionContact[CollisionContact["Bottom"] = 3] = "Bottom";
7
+ })(CollisionContact || (CollisionContact = {}));
@@ -0,0 +1,10 @@
1
+ export declare enum CollisionFilters {
2
+ DefaultFilter = 1,
3
+ StaticFilter = 2,
4
+ KinematicFilter = 4,
5
+ DebrisFilter = 8,
6
+ SensorTrigger = 16,
7
+ CharacterFilter = 32,
8
+ AllFilter = -1
9
+ }
10
+ //# sourceMappingURL=collisionfilters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collisionfilters.d.ts","sourceRoot":"","sources":["../src/collisionfilters.ts"],"names":[],"mappings":"AACA,oBAAY,gBAAgB;IACpB,aAAa,IAAI;IACjB,YAAY,IAAI;IAChB,eAAe,IAAI;IACnB,YAAY,IAAI;IAChB,aAAa,KAAK;IAClB,eAAe,KAAK;IACpB,SAAS,KAAK;CACjB"}
@@ -0,0 +1,10 @@
1
+ export var CollisionFilters;
2
+ (function (CollisionFilters) {
3
+ CollisionFilters[CollisionFilters["DefaultFilter"] = 1] = "DefaultFilter";
4
+ CollisionFilters[CollisionFilters["StaticFilter"] = 2] = "StaticFilter";
5
+ CollisionFilters[CollisionFilters["KinematicFilter"] = 4] = "KinematicFilter";
6
+ CollisionFilters[CollisionFilters["DebrisFilter"] = 8] = "DebrisFilter";
7
+ CollisionFilters[CollisionFilters["SensorTrigger"] = 16] = "SensorTrigger";
8
+ CollisionFilters[CollisionFilters["CharacterFilter"] = 32] = "CharacterFilter";
9
+ CollisionFilters[CollisionFilters["AllFilter"] = -1] = "AllFilter";
10
+ })(CollisionFilters || (CollisionFilters = {}));
@@ -0,0 +1,14 @@
1
+ export declare enum CollisionFlags {
2
+ CF_STATIC_OBJECT = 1,
3
+ CF_KINEMATIC_OBJECT = 2,
4
+ CF_NO_CONTACT_RESPONSE = 4,
5
+ CF_CUSTOM_MATERIAL_CALLBACK = 8,
6
+ CF_CHARACTER_OBJECT = 16,
7
+ CF_DISABLE_VISUALIZE_OBJECT = 32,
8
+ CF_DISABLE_SPU_COLLISION_PROCESSING = 64,
9
+ CF_HAS_CONTACT_STIFFNESS_DAMPING = 128,
10
+ CF_HAS_CUSTOM_DEBUG_RENDERING_COLOR = 256,
11
+ CF_HAS_FRICTION_ANCHOR = 512,
12
+ CF_HAS_COLLISION_SOUND_TRIGGER = 1024
13
+ }
14
+ //# sourceMappingURL=collisionflags.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collisionflags.d.ts","sourceRoot":"","sources":["../src/collisionflags.ts"],"names":[],"mappings":"AACA,oBAAY,cAAc;IAClB,gBAAgB,IAAI;IACpB,mBAAmB,IAAI;IACvB,sBAAsB,IAAI;IAC1B,2BAA2B,IAAI;IAC/B,mBAAmB,KAAK;IACxB,2BAA2B,KAAK;IAChC,mCAAmC,KAAK;IACxC,gCAAgC,MAAM;IACtC,mCAAmC,MAAM;IACzC,sBAAsB,MAAM;IAC5B,8BAA8B,OAAO;CACxC"}
@@ -0,0 +1,14 @@
1
+ export var CollisionFlags;
2
+ (function (CollisionFlags) {
3
+ CollisionFlags[CollisionFlags["CF_STATIC_OBJECT"] = 1] = "CF_STATIC_OBJECT";
4
+ CollisionFlags[CollisionFlags["CF_KINEMATIC_OBJECT"] = 2] = "CF_KINEMATIC_OBJECT";
5
+ CollisionFlags[CollisionFlags["CF_NO_CONTACT_RESPONSE"] = 4] = "CF_NO_CONTACT_RESPONSE";
6
+ CollisionFlags[CollisionFlags["CF_CUSTOM_MATERIAL_CALLBACK"] = 8] = "CF_CUSTOM_MATERIAL_CALLBACK";
7
+ CollisionFlags[CollisionFlags["CF_CHARACTER_OBJECT"] = 16] = "CF_CHARACTER_OBJECT";
8
+ CollisionFlags[CollisionFlags["CF_DISABLE_VISUALIZE_OBJECT"] = 32] = "CF_DISABLE_VISUALIZE_OBJECT";
9
+ CollisionFlags[CollisionFlags["CF_DISABLE_SPU_COLLISION_PROCESSING"] = 64] = "CF_DISABLE_SPU_COLLISION_PROCESSING";
10
+ CollisionFlags[CollisionFlags["CF_HAS_CONTACT_STIFFNESS_DAMPING"] = 128] = "CF_HAS_CONTACT_STIFFNESS_DAMPING";
11
+ CollisionFlags[CollisionFlags["CF_HAS_CUSTOM_DEBUG_RENDERING_COLOR"] = 256] = "CF_HAS_CUSTOM_DEBUG_RENDERING_COLOR";
12
+ CollisionFlags[CollisionFlags["CF_HAS_FRICTION_ANCHOR"] = 512] = "CF_HAS_FRICTION_ANCHOR";
13
+ CollisionFlags[CollisionFlags["CF_HAS_COLLISION_SOUND_TRIGGER"] = 1024] = "CF_HAS_COLLISION_SOUND_TRIGGER";
14
+ })(CollisionFlags || (CollisionFlags = {}));
@@ -0,0 +1,8 @@
1
+ export declare enum CollisionState {
2
+ ACTIVE_TAG = 1,
3
+ ISLAND_SLEEPING = 2,
4
+ WANTS_DEACTIVATION = 3,
5
+ DISABLE_DEACTIVATION = 4,
6
+ DISABLE_SIMULATION = 5
7
+ }
8
+ //# sourceMappingURL=collisionstate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collisionstate.d.ts","sourceRoot":"","sources":["../src/collisionstate.ts"],"names":[],"mappings":"AACA,oBAAY,cAAc;IAClB,UAAU,IAAI;IACd,eAAe,IAAI;IACnB,kBAAkB,IAAI;IACtB,oBAAoB,IAAI;IACxB,kBAAkB,IAAI;CACzB"}
@@ -0,0 +1,8 @@
1
+ export var CollisionState;
2
+ (function (CollisionState) {
3
+ CollisionState[CollisionState["ACTIVE_TAG"] = 1] = "ACTIVE_TAG";
4
+ CollisionState[CollisionState["ISLAND_SLEEPING"] = 2] = "ISLAND_SLEEPING";
5
+ CollisionState[CollisionState["WANTS_DEACTIVATION"] = 3] = "WANTS_DEACTIVATION";
6
+ CollisionState[CollisionState["DISABLE_DEACTIVATION"] = 4] = "DISABLE_DEACTIVATION";
7
+ CollisionState[CollisionState["DISABLE_SIMULATION"] = 5] = "DISABLE_SIMULATION";
8
+ })(CollisionState || (CollisionState = {}));
@@ -0,0 +1,16 @@
1
+ import { ILoadingScreen } from '@babylonjs/core/Loading/loadingScreen';
2
+ export declare class CustomLoadingScreen implements ILoadingScreen {
3
+ loadingDivId: string;
4
+ loadingUIText: string;
5
+ hideLoadingUIWithEngine: boolean;
6
+ customInnerHtml: string;
7
+ customInnerCss: string;
8
+ loadingUIBackgroundColor: string;
9
+ constructor(loadingDivId: string, loadingUIText: string, hideLoadingUIWithEngine?: boolean, customInnerHtml?: string, customInnerCss?: string);
10
+ displayLoadingUI(): void;
11
+ hideLoadingUI(): void;
12
+ showLoadingDiv(show: boolean): void;
13
+ getLoadingDiv(): HTMLDivElement;
14
+ hasLoadingDiv(): boolean;
15
+ }
16
+ //# sourceMappingURL=customloadingscreen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"customloadingscreen.d.ts","sourceRoot":"","sources":["../src/customloadingscreen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAGvE,qBAAa,mBAAoB,YAAW,cAAc;IAE/B,YAAY,EAAE,MAAM;IAAS,aAAa,EAAE,MAAM;IAAS,uBAAuB,EAAE,OAAO;IAAgB,eAAe,EAAE,MAAM;IAAgB,cAAc,EAAE,MAAM;IADpL,wBAAwB,EAAE,MAAM,CAAa;gBACjC,YAAY,EAAE,MAAM,EAAS,aAAa,EAAE,MAAM,EAAS,uBAAuB,GAAE,OAAc,EAAS,eAAe,GAAE,MAAa,EAAS,cAAc,GAAE,MAAa;IAQ3L,gBAAgB,IAAI,IAAI;IAkBxB,aAAa,IAAI,IAAI;IAKrB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAInC,aAAa,IAAI,cAAc;IAG/B,aAAa,IAAI,OAAO;CAGlC"}
@@ -0,0 +1,48 @@
1
+ export class CustomLoadingScreen {
2
+ constructor(loadingDivId, loadingUIText, hideLoadingUIWithEngine = true, customInnerHtml = null, customInnerCss = null) {
3
+ this.loadingDivId = loadingDivId;
4
+ this.loadingUIText = loadingUIText;
5
+ this.hideLoadingUIWithEngine = hideLoadingUIWithEngine;
6
+ this.customInnerHtml = customInnerHtml;
7
+ this.customInnerCss = customInnerCss;
8
+ this.loadingUIBackgroundColor = "#000000";
9
+ if (this.loadingDivId == null || this.loadingDivId === "") {
10
+ this.loadingDivId = "customLoadingScreen";
11
+ }
12
+ if (this.loadingUIText == null || this.loadingUIText === "") {
13
+ this.loadingUIText = "Please Wait";
14
+ }
15
+ }
16
+ displayLoadingUI() {
17
+ if (this.hasLoadingDiv()) {
18
+ this.showLoadingDiv(true);
19
+ return;
20
+ }
21
+ const defaultLoadingScreenCss = "";
22
+ const customLoadingScreenCss = document.createElement("style");
23
+ customLoadingScreenCss.type = "text/css";
24
+ customLoadingScreenCss.innerHTML = (this.customInnerCss || defaultLoadingScreenCss);
25
+ document.getElementsByTagName("head")[0].appendChild(customLoadingScreenCss);
26
+ const defaultLoadingScreenDiv = this.loadingUIText;
27
+ const customLoadingScreenDiv = document.createElement("div");
28
+ customLoadingScreenDiv.id = this.loadingDivId;
29
+ customLoadingScreenDiv.innerHTML = (this.customInnerHtml || defaultLoadingScreenDiv);
30
+ document.body.appendChild(customLoadingScreenDiv);
31
+ }
32
+ hideLoadingUI() {
33
+ if (this.hideLoadingUIWithEngine === true) {
34
+ this.showLoadingDiv(false);
35
+ }
36
+ }
37
+ showLoadingDiv(show) {
38
+ const loadingDiv = this.getLoadingDiv();
39
+ if (loadingDiv != null)
40
+ loadingDiv.style.display = (show) ? "initial" : "none";
41
+ }
42
+ getLoadingDiv() {
43
+ return document.getElementById(this.loadingDivId);
44
+ }
45
+ hasLoadingDiv() {
46
+ return (document.getElementById(this.loadingDivId) != null);
47
+ }
48
+ }
@@ -0,0 +1,11 @@
1
+ import { TransformNode } from '@babylonjs/core/Meshes/transformNode';
2
+ export declare class EntityController {
3
+ static HasNetworkEntity(transform: TransformNode): boolean;
4
+ static GetNetworkEntityId(transform: TransformNode): string;
5
+ static GetNetworkEntityType(transform: TransformNode): number;
6
+ static GetNetworkEntitySessionId(transform: TransformNode): string;
7
+ static QueryNetworkAttribute(transform: TransformNode, key: string): string;
8
+ static QueryBufferedAttribute(transform: TransformNode, index: number): number;
9
+ static PostBufferedAttribute(transform: TransformNode, index: number, value: number): void;
10
+ }
11
+ //# sourceMappingURL=entitycontroller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entitycontroller.d.ts","sourceRoot":"","sources":["../src/entitycontroller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAErE,qBAAa,gBAAgB;WAEP,gBAAgB,CAAC,SAAS,EAAE,aAAa,GAAG,OAAO;WAKnD,kBAAkB,CAAC,SAAS,EAAE,aAAa,GAAG,MAAM;WAKpD,oBAAoB,CAAC,SAAS,EAAE,aAAa,GAAG,MAAM;WAKtD,yBAAyB,CAAC,SAAS,EAAE,aAAa,GAAG,MAAM;WAK3D,qBAAqB,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM;WAQpE,sBAAsB,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;WAQvE,qBAAqB,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;CAIpG"}
@@ -0,0 +1,41 @@
1
+ export class EntityController {
2
+ static HasNetworkEntity(transform) {
3
+ if (transform == null)
4
+ return false;
5
+ return (transform.networkEntity != null);
6
+ }
7
+ static GetNetworkEntityId(transform) {
8
+ if (transform == null)
9
+ return null;
10
+ return (transform.networkEntity != null) ? transform.networkEntity.id : null;
11
+ }
12
+ static GetNetworkEntityType(transform) {
13
+ if (transform == null)
14
+ return 0;
15
+ return (transform.networkEntityType != null) ? transform.networkEntityType : 0;
16
+ }
17
+ static GetNetworkEntitySessionId(transform) {
18
+ if (transform == null)
19
+ return null;
20
+ return (transform.networkEntity != null) ? transform.networkEntity.ownerId : null;
21
+ }
22
+ static QueryNetworkAttribute(transform, key) {
23
+ let result = null;
24
+ if (transform != null && transform.networkEntity != null && transform.networkEntity.attributes != null) {
25
+ result = transform.networkEntity.attributes.get(key);
26
+ }
27
+ return result;
28
+ }
29
+ static QueryBufferedAttribute(transform, index) {
30
+ let result = 0;
31
+ if (transform != null && transform.networkEntityAttributeBuffer != null) {
32
+ result = transform.networkEntityAttributeBuffer[index.toFixed(0)];
33
+ }
34
+ return result;
35
+ }
36
+ static PostBufferedAttribute(transform, index, value) {
37
+ if (transform.networkEntityBatch == null)
38
+ transform.networkEntityBatch = {};
39
+ transform.networkEntityBatch[index.toFixed(0)] = value;
40
+ }
41
+ }
@@ -0,0 +1,8 @@
1
+ export interface FontManifestEntry {
2
+ family: string;
3
+ style: string;
4
+ weight: string;
5
+ path: string;
6
+ fileName: string;
7
+ }
8
+ //# sourceMappingURL=fontmanifestentry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fontmanifestentry.d.ts","sourceRoot":"","sources":["../src/fontmanifestentry.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,iBAAiB;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CACpB"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ export declare enum Handedness {
2
+ Default = -1,
3
+ Right = 0,
4
+ Left = 1
5
+ }
6
+ //# sourceMappingURL=handedness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handedness.d.ts","sourceRoot":"","sources":["../src/handedness.ts"],"names":[],"mappings":"AACA,oBAAY,UAAU;IACd,OAAO,KAAK;IACZ,KAAK,IAAI;IACT,IAAI,IAAI;CACX"}
@@ -0,0 +1,6 @@
1
+ export var Handedness;
2
+ (function (Handedness) {
3
+ Handedness[Handedness["Default"] = -1] = "Default";
4
+ Handedness[Handedness["Right"] = 0] = "Right";
5
+ Handedness[Handedness["Left"] = 1] = "Left";
6
+ })(Handedness || (Handedness = {}));