@needle-tools/engine 2.53.0-pre → 2.55.0-pre

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 (199) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/dist/needle-engine.d.ts +2477 -2267
  3. package/dist/needle-engine.js +425 -425
  4. package/dist/needle-engine.js.map +4 -4
  5. package/dist/needle-engine.min.js +40 -40
  6. package/dist/needle-engine.min.js.map +4 -4
  7. package/dist/needle-engine.tsbuildinfo +1 -0
  8. package/lib/engine/codegen/register_types.d.ts +1 -0
  9. package/lib/engine/codegen/register_types.js +346 -0
  10. package/lib/engine/codegen/register_types.js.map +1 -0
  11. package/lib/engine/debug/debug.d.ts +1 -0
  12. package/lib/engine/debug/debug.js +4 -0
  13. package/lib/engine/debug/debug.js.map +1 -1
  14. package/lib/engine/debug/debug_console.js +2 -1
  15. package/lib/engine/debug/debug_console.js.map +1 -1
  16. package/lib/engine/debug/debug_overlay.js +3 -1
  17. package/lib/engine/debug/debug_overlay.js.map +1 -1
  18. package/lib/engine/engine_default_parameters.d.ts +2 -2
  19. package/lib/engine/engine_element.js +4 -2
  20. package/lib/engine/engine_element.js.map +1 -1
  21. package/lib/engine/engine_element_loading.d.ts +1 -0
  22. package/lib/engine/engine_element_loading.js +17 -6
  23. package/lib/engine/engine_element_loading.js.map +1 -1
  24. package/lib/engine/engine_element_overlay.js +4 -2
  25. package/lib/engine/engine_element_overlay.js.map +1 -1
  26. package/lib/engine/engine_fileloader.d.ts +3 -0
  27. package/lib/engine/engine_fileloader.js +8 -0
  28. package/lib/engine/engine_fileloader.js.map +1 -0
  29. package/lib/engine/engine_generic_utils.d.ts +1 -0
  30. package/lib/engine/engine_generic_utils.js +14 -0
  31. package/lib/engine/engine_generic_utils.js.map +1 -0
  32. package/lib/engine/engine_input.js +4 -0
  33. package/lib/engine/engine_input.js.map +1 -1
  34. package/lib/engine/engine_lightdata.js +1 -1
  35. package/lib/engine/engine_lightdata.js.map +1 -1
  36. package/lib/engine/engine_mainloop_utils.js +8 -0
  37. package/lib/engine/engine_mainloop_utils.js.map +1 -1
  38. package/lib/engine/engine_networking_websocket.d.ts +1 -0
  39. package/lib/engine/engine_networking_websocket.js +1 -1
  40. package/lib/engine/engine_networking_websocket.js.map +1 -1
  41. package/lib/engine/engine_physics.d.ts +1 -1
  42. package/lib/engine/engine_physics.js +44 -3
  43. package/lib/engine/engine_physics.js.map +1 -1
  44. package/lib/engine/engine_physics.types.d.ts +13 -0
  45. package/lib/engine/engine_physics.types.js +7 -0
  46. package/lib/engine/engine_physics.types.js.map +1 -1
  47. package/lib/engine/engine_serialization_builtin_serializer.js +6 -3
  48. package/lib/engine/engine_serialization_builtin_serializer.js.map +1 -1
  49. package/lib/engine/engine_setup.js +2 -2
  50. package/lib/engine/engine_setup.js.map +1 -1
  51. package/lib/engine/engine_time.d.ts +1 -0
  52. package/lib/engine/engine_time.js +7 -0
  53. package/lib/engine/engine_time.js.map +1 -1
  54. package/lib/engine/engine_types.d.ts +4 -1
  55. package/lib/engine/engine_types.js.map +1 -1
  56. package/lib/engine/engine_utils.d.ts +2 -1
  57. package/lib/engine/engine_utils.js +6 -0
  58. package/lib/engine/engine_utils.js.map +1 -1
  59. package/lib/engine/extensions/NEEDLE_components.d.ts +1 -1
  60. package/lib/engine/extensions/NEEDLE_progressive.d.ts +22 -0
  61. package/lib/engine/extensions/NEEDLE_progressive.js +172 -44
  62. package/lib/engine/extensions/NEEDLE_progressive.js.map +1 -1
  63. package/lib/engine-components/Collider.d.ts +2 -0
  64. package/lib/engine-components/Collider.js +4 -0
  65. package/lib/engine-components/Collider.js.map +1 -1
  66. package/lib/engine-components/GroundProjection.d.ts +2 -1
  67. package/lib/engine-components/GroundProjection.js +19 -12
  68. package/lib/engine-components/GroundProjection.js.map +1 -1
  69. package/lib/engine-components/ParticleSystem.d.ts +1 -0
  70. package/lib/engine-components/ParticleSystem.js +10 -5
  71. package/lib/engine-components/ParticleSystem.js.map +1 -1
  72. package/lib/engine-components/ParticleSystemModules.d.ts +2 -2
  73. package/lib/engine-components/ParticleSystemModules.js +65 -55
  74. package/lib/engine-components/ParticleSystemModules.js.map +1 -1
  75. package/lib/engine-components/ReflectionProbe.d.ts +1 -1
  76. package/lib/engine-components/Renderer.d.ts +2 -1
  77. package/lib/engine-components/Renderer.js +8 -8
  78. package/lib/engine-components/Renderer.js.map +1 -1
  79. package/lib/engine-components/RigidBody.js +1 -19
  80. package/lib/engine-components/RigidBody.js.map +1 -1
  81. package/lib/engine-components/SyncedTransform.js +1 -3
  82. package/lib/engine-components/SyncedTransform.js.map +1 -1
  83. package/lib/engine-components/VideoPlayer.d.ts +2 -1
  84. package/lib/engine-components/VideoPlayer.js +54 -51
  85. package/lib/engine-components/VideoPlayer.js.map +1 -1
  86. package/lib/engine-components/Volume.js +8 -1
  87. package/lib/engine-components/Volume.js.map +1 -1
  88. package/lib/engine-components/WebARSessionRoot.js +5 -0
  89. package/lib/engine-components/WebARSessionRoot.js.map +1 -1
  90. package/lib/engine-components/WebXR.d.ts +2 -2
  91. package/lib/engine-components/WebXR.js +13 -13
  92. package/lib/engine-components/WebXR.js.map +1 -1
  93. package/lib/engine-components/WebXRAvatar.d.ts +1 -1
  94. package/lib/engine-components/WebXRController.js +1 -2
  95. package/lib/engine-components/WebXRController.js.map +1 -1
  96. package/lib/engine-components/codegen/components.d.ts +99 -99
  97. package/lib/engine-components/codegen/components.js +99 -99
  98. package/lib/engine-components/codegen/components.js.map +1 -1
  99. package/lib/engine-components/export/usdz/USDZExporter.d.ts +1 -0
  100. package/lib/engine-components/export/usdz/USDZExporter.js +17 -1
  101. package/lib/engine-components/export/usdz/USDZExporter.js.map +1 -1
  102. package/lib/engine-components/ui/Button.js +30 -0
  103. package/lib/engine-components/ui/Button.js.map +1 -1
  104. package/lib/engine-components/ui/InputField.d.ts +2 -0
  105. package/lib/engine-components/ui/InputField.js +23 -1
  106. package/lib/engine-components/ui/InputField.js.map +1 -1
  107. package/lib/engine-components/ui/Utils.d.ts +2 -0
  108. package/lib/engine-components/ui/Utils.js +10 -9
  109. package/lib/engine-components/ui/Utils.js.map +1 -1
  110. package/lib/engine-components-experimental/Presentation.d.ts +6 -0
  111. package/lib/engine-components-experimental/Presentation.js +11 -0
  112. package/lib/engine-components-experimental/Presentation.js.map +1 -0
  113. package/lib/engine-components-experimental/annotation/LineDrawer.d.ts +18 -0
  114. package/lib/engine-components-experimental/annotation/LineDrawer.js +175 -0
  115. package/lib/engine-components-experimental/annotation/LineDrawer.js.map +1 -0
  116. package/lib/engine-components-experimental/annotation/LinesManager.d.ts +54 -0
  117. package/lib/engine-components-experimental/annotation/LinesManager.js +155 -0
  118. package/lib/engine-components-experimental/annotation/LinesManager.js.map +1 -0
  119. package/lib/engine-components-experimental/networking/PlayerSync.d.ts +26 -0
  120. package/lib/engine-components-experimental/networking/PlayerSync.js +121 -0
  121. package/lib/engine-components-experimental/networking/PlayerSync.js.map +1 -0
  122. package/lib/engine-schemes/vec2.d.ts +10 -0
  123. package/lib/engine-schemes/vec2.js +26 -0
  124. package/lib/engine-schemes/vec2.js.map +1 -0
  125. package/lib/include/three/ARButton.d.ts +3 -0
  126. package/lib/include/three/ARButton.js +158 -0
  127. package/lib/include/three/ARButton.js.map +1 -0
  128. package/lib/include/three/EXT_mesh_gpu_instancing_exporter.d.ts +6 -0
  129. package/lib/include/three/EXT_mesh_gpu_instancing_exporter.js +46 -0
  130. package/lib/include/three/EXT_mesh_gpu_instancing_exporter.js.map +1 -0
  131. package/lib/include/three/VRButton.d.ts +5 -0
  132. package/lib/include/three/VRButton.js +122 -0
  133. package/lib/include/three/VRButton.js.map +1 -0
  134. package/lib/tsconfig.tsbuildinfo +1 -0
  135. package/package.json +1 -1
  136. package/src/engine/codegen/register_types.js +214 -214
  137. package/src/engine/debug/debug.ts +5 -0
  138. package/src/engine/debug/debug_console.ts +3 -2
  139. package/src/engine/debug/debug_overlay.ts +3 -1
  140. package/src/engine/engine_element.ts +4 -2
  141. package/src/engine/engine_element_loading.ts +13 -6
  142. package/src/engine/engine_element_overlay.ts +4 -2
  143. package/src/engine/engine_input.ts +4 -0
  144. package/src/engine/engine_lightdata.ts +1 -1
  145. package/src/engine/engine_mainloop_utils.ts +6 -0
  146. package/src/engine/engine_networking_websocket.ts +3 -1
  147. package/src/engine/engine_physics.ts +47 -5
  148. package/src/engine/engine_physics.types.ts +17 -0
  149. package/src/engine/engine_serialization_builtin_serializer.ts +8 -5
  150. package/src/engine/engine_setup.ts +2 -2
  151. package/src/engine/engine_time.ts +7 -1
  152. package/src/engine/engine_types.ts +5 -2
  153. package/src/engine/engine_utils.ts +7 -1
  154. package/src/engine/extensions/NEEDLE_progressive.ts +185 -43
  155. package/src/engine-components/Collider.ts +3 -0
  156. package/src/engine-components/GroundProjection.ts +18 -12
  157. package/src/engine-components/ParticleSystem.ts +10 -5
  158. package/src/engine-components/ParticleSystemModules.ts +69 -59
  159. package/src/engine-components/Renderer.ts +11 -9
  160. package/src/engine-components/RigidBody.ts +1 -20
  161. package/src/engine-components/SyncedTransform.ts +1 -3
  162. package/src/engine-components/VideoPlayer.ts +55 -51
  163. package/src/engine-components/Volume.ts +8 -1
  164. package/src/engine-components/WebARSessionRoot.ts +5 -0
  165. package/src/engine-components/WebXR.ts +17 -15
  166. package/src/engine-components/WebXRController.ts +1 -2
  167. package/src/engine-components/codegen/components.ts +99 -99
  168. package/src/engine-components/export/usdz/USDZExporter.ts +19 -2
  169. package/src/engine-components/ui/Button.ts +8 -8
  170. package/src/engine-components/ui/InputField.ts +25 -2
  171. package/src/engine-components/ui/Utils.ts +12 -11
  172. package/src/engine-components-experimental/annotation/LineDrawer.ts +10 -7
  173. package/src/engine-components-experimental/annotation/LinesManager.ts +6 -6
  174. package/src/engine-components-experimental/networking/PlayerSync.ts +1 -1
  175. package/lib/engine/engine_caching.d.ts +0 -0
  176. package/lib/engine/engine_caching.js +0 -2
  177. package/lib/engine/engine_caching.js.map +0 -1
  178. package/lib/engine/tests/simulate_avatars.d.ts +0 -0
  179. package/lib/engine/tests/simulate_avatars.js +0 -3
  180. package/lib/engine/tests/simulate_avatars.js.map +0 -1
  181. package/lib/engine-components/NavMesh.d.ts +0 -0
  182. package/lib/engine-components/NavMesh.js +0 -101
  183. package/lib/engine-components/NavMesh.js.map +0 -1
  184. package/lib/engine-components/ParticleSystemBehaviours.d.ts +0 -0
  185. package/lib/engine-components/ParticleSystemBehaviours.js +0 -2
  186. package/lib/engine-components/ParticleSystemBehaviours.js.map +0 -1
  187. package/lib/engine-components/SpringJoint.d.ts +0 -0
  188. package/lib/engine-components/SpringJoint.js +0 -43
  189. package/lib/engine-components/SpringJoint.js.map +0 -1
  190. package/lib/engine-components/ui/CanvasScaler.d.ts +0 -0
  191. package/lib/engine-components/ui/CanvasScaler.js +0 -17
  192. package/lib/engine-components/ui/CanvasScaler.js.map +0 -1
  193. package/src/engine/dist/engine_three_utils.js +0 -279
  194. package/src/engine/engine_caching.ts +0 -0
  195. package/src/engine/tests/simulate_avatars.ts +0 -2
  196. package/src/engine-components/NavMesh.ts +0 -117
  197. package/src/engine-components/ParticleSystemBehaviours.ts +0 -0
  198. package/src/engine-components/SpringJoint.ts +0 -45
  199. package/src/engine-components/ui/CanvasScaler.ts +0 -21
@@ -3,164 +3,164 @@ export class __Ignore {}
3
3
  export { AlignmentConstraint } from "../AlignmentConstraint";
4
4
  export { Animation } from "../Animation";
5
5
  export { AnimationCurve } from "../AnimationCurve";
6
+ export { AnimationExtension } from "../export/usdz/extensions/Animation";
7
+ export { AnimationTrackHandler } from "../timeline/TimelineTracks";
6
8
  export { Animator } from "../Animator";
7
9
  export { AnimatorController } from "../AnimatorController";
10
+ export { AttachedObject } from "../WebXRController";
8
11
  export { AudioListener } from "../AudioListener";
9
12
  export { AudioSource } from "../AudioSource";
10
- export { AvatarModel } from "../AvatarLoader";
13
+ export { AudioTrackHandler } from "../timeline/TimelineTracks";
14
+ export { Avatar_Brain_LookAt } from "../avatar/Avatar_Brain_LookAt";
15
+ export { Avatar_MouthShapes } from "../avatar/Avatar_MouthShapes";
16
+ export { Avatar_MustacheShake } from "../avatar/Avatar_MustacheShake";
17
+ export { Avatar_POI } from "../avatar/Avatar_Brain_LookAt";
18
+ export { AvatarBlink_Simple } from "../avatar/AvatarBlink_Simple";
19
+ export { AvatarEyeLook_Rotation } from "../avatar/AvatarEyeLook_Rotation";
11
20
  export { AvatarLoader } from "../AvatarLoader";
21
+ export { AvatarMarker } from "../WebXRAvatar";
22
+ export { AvatarModel } from "../AvatarLoader";
12
23
  export { AxesHelper } from "../AxesHelper";
24
+ export { BaseUIComponent } from "../ui/BaseUIComponent";
13
25
  export { BasicIKConstraint } from "../BasicIKConstraint";
26
+ export { BoxCollider } from "../Collider";
27
+ export { BoxGizmo } from "../Gizmos";
14
28
  export { BoxHelperComponent } from "../BoxHelperComponent";
29
+ export { Button } from "../ui/Button";
30
+ export { CallInfo } from "../EventList";
15
31
  export { Camera } from "../Camera";
32
+ export { Canvas } from "../ui/Canvas";
33
+ export { CanvasGroup } from "../ui/CanvasGroup";
34
+ export { CapsuleCollider } from "../Collider";
16
35
  export { CharacterController } from "../CharacterController";
17
36
  export { CharacterControllerInput } from "../CharacterController";
18
37
  export { Collider } from "../Collider";
19
- export { SphereCollider } from "../Collider";
20
- export { BoxCollider } from "../Collider";
21
- export { MeshCollider } from "../Collider";
22
- export { CapsuleCollider } from "../Collider";
23
- export { DeleteBox } from "../DeleteBox";
38
+ export { ColorAdjustments } from "../Volume";
39
+ export { ColorBySpeedModule } from "../ParticleSystemModules";
40
+ export { ColorOverLifetimeModule } from "../ParticleSystemModules";
41
+ export { ControlTrackHandler } from "../timeline/TimelineTracks";
24
42
  export { Deletable } from "../DeleteBox";
43
+ export { DeleteBox } from "../DeleteBox";
25
44
  export { DeviceFlag } from "../DeviceFlag";
26
45
  export { DragControls } from "../DragControls";
27
46
  export { DropListener } from "../DropListener";
28
47
  export { Duplicatable } from "../Duplicatable";
29
- export { CallInfo } from "../EventList";
30
- export { EventListEvent } from "../EventList";
48
+ export { EmissionModule } from "../ParticleSystemModules";
31
49
  export { EventList } from "../EventList";
50
+ export { EventListEvent } from "../EventList";
51
+ export { EventSystem } from "../ui/EventSystem";
32
52
  export { EventTrigger } from "../EventTrigger";
53
+ export { FieldWithDefault } from "../Renderer";
54
+ export { FixedJoint } from "../Joints";
33
55
  export { FlyControls } from "../FlyControls";
34
- export { BoxGizmo } from "../Gizmos";
56
+ export { GltfExport } from "../export/gltf/GltfExport";
57
+ export { GltfExportBox } from "../export/gltf/GltfExport";
58
+ export { Gradient } from "../ParticleSystemModules";
59
+ export { Graphic } from "../ui/Graphic";
60
+ export { GraphicRaycaster } from "../ui/Raycaster";
35
61
  export { GridHelper } from "../GridHelper";
62
+ export { GridLayoutGroup } from "../ui/Layout";
36
63
  export { GroundProjectedEnv } from "../GroundProjection";
37
- export { Interactable } from "../Interactable";
38
- export { UsageMarker } from "../Interactable";
39
- export { FixedJoint } from "../Joints";
40
64
  export { HingeJoint } from "../Joints";
65
+ export { HorizontalLayoutGroup } from "../ui/Layout";
66
+ export { Image } from "../ui/Image";
67
+ export { InheritVelocityModule } from "../ParticleSystemModules";
68
+ export { InputField } from "../ui/InputField";
69
+ export { Interactable } from "../Interactable";
70
+ export { Keyboard } from "../ui/Keyboard";
71
+ export { LayoutGroup } from "../ui/Layout";
41
72
  export { Light } from "../Light";
42
- export { LODModel } from "../LODGroup";
73
+ export { LimitVelocityOverLifetimeModule } from "../ParticleSystemModules";
43
74
  export { LODGroup } from "../LODGroup";
75
+ export { LODModel } from "../LODGroup";
76
+ export { LogStats } from "../debug/LogStats";
44
77
  export { LookAtConstraint } from "../LookAtConstraint";
78
+ export { MainModule } from "../ParticleSystemModules";
79
+ export { MaskableGraphic } from "../ui/Graphic";
80
+ export { MeshCollider } from "../Collider";
81
+ export { MeshRenderer } from "../Renderer";
82
+ export { MinMaxCurve } from "../ParticleSystemModules";
83
+ export { MinMaxGradient } from "../ParticleSystemModules";
45
84
  export { NestedGltf } from "../NestedGltf";
46
85
  export { Networking } from "../Networking";
86
+ export { NoiseModule } from "../ParticleSystemModules";
87
+ export { ObjectRaycaster } from "../ui/Raycaster";
47
88
  export { OffsetConstraint } from "../OffsetConstraint";
48
89
  export { OrbitControls } from "../OrbitControls";
49
- export { SubEmitterSystem } from "../ParticleSystem";
50
- export { ParticleSystemRenderer } from "../ParticleSystem";
51
- export { ParticleSystem } from "../ParticleSystem";
52
- export { Gradient } from "../ParticleSystemModules";
53
- export { MinMaxCurve } from "../ParticleSystemModules";
54
- export { MinMaxGradient } from "../ParticleSystemModules";
55
- export { MainModule } from "../ParticleSystemModules";
56
90
  export { ParticleBurst } from "../ParticleSystemModules";
57
- export { EmissionModule } from "../ParticleSystemModules";
58
- export { ColorOverLifetimeModule } from "../ParticleSystemModules";
59
- export { SizeOverLifetimeModule } from "../ParticleSystemModules";
60
- export { ShapeModule } from "../ParticleSystemModules";
61
- export { NoiseModule } from "../ParticleSystemModules";
62
- export { TrailModule } from "../ParticleSystemModules";
63
- export { VelocityOverLifetimeModule } from "../ParticleSystemModules";
64
- export { TextureSheetAnimationModule } from "../ParticleSystemModules";
65
- export { RotationOverLifetimeModule } from "../ParticleSystemModules";
66
- export { RotationBySpeedModule } from "../ParticleSystemModules";
67
- export { LimitVelocityOverLifetimeModule } from "../ParticleSystemModules";
68
- export { InheritVelocityModule } from "../ParticleSystemModules";
69
- export { SizeBySpeedModule } from "../ParticleSystemModules";
70
- export { ColorBySpeedModule } from "../ParticleSystemModules";
71
91
  export { ParticleSubEmitter } from "../ParticleSystemSubEmitter";
92
+ export { ParticleSystem } from "../ParticleSystem";
93
+ export { ParticleSystemRenderer } from "../ParticleSystem";
94
+ export { PlayableDirector } from "../timeline/PlayableDirector";
72
95
  export { PlayerColor } from "../PlayerColor";
96
+ export { PointerEventData } from "../ui/PointerEvents";
97
+ export { RawImage } from "../ui/Image";
98
+ export { Raycaster } from "../ui/Raycaster";
99
+ export { Rect } from "../ui/RectTransform";
100
+ export { RectTransform } from "../ui/RectTransform";
73
101
  export { ReflectionProbe } from "../ReflectionProbe";
74
- export { FieldWithDefault } from "../Renderer";
102
+ export { RegisteredAnimationInfo } from "../export/usdz/extensions/Animation";
103
+ export { RemoteSkybox } from "../Skybox";
75
104
  export { Renderer } from "../Renderer";
76
- export { MeshRenderer } from "../Renderer";
77
- export { SkinnedMeshRenderer } from "../Renderer";
78
105
  export { RendererLightmap } from "../RendererLightmap";
106
+ export { RGBAColor } from "../js-extensions/RGBAColor";
79
107
  export { Rigidbody } from "../RigidBody";
108
+ export { RotationBySpeedModule } from "../ParticleSystemModules";
109
+ export { RotationOverLifetimeModule } from "../ParticleSystemModules";
80
110
  export { ScreenCapture } from "../ScreenCapture";
81
111
  export { ShadowCatcher } from "../ShadowCatcher";
82
- export { RemoteSkybox } from "../Skybox";
112
+ export { ShapeModule } from "../ParticleSystemModules";
113
+ export { SignalAsset } from "../timeline/SignalAsset";
114
+ export { SignalReceiver } from "../timeline/SignalAsset";
115
+ export { SignalReceiverEvent } from "../timeline/SignalAsset";
116
+ export { SignalTrackHandler } from "../timeline/TimelineTracks";
117
+ export { Size } from "../ui/RectTransform";
118
+ export { SizeBySpeedModule } from "../ParticleSystemModules";
119
+ export { SizeOverLifetimeModule } from "../ParticleSystemModules";
120
+ export { SkinnedMeshRenderer } from "../Renderer";
83
121
  export { SmoothFollow } from "../SmoothFollow";
84
- export { SpatialTriggerReceiver } from "../SpatialTrigger";
122
+ export { SpatialHtml } from "../ui/SpatialHtml";
85
123
  export { SpatialTrigger } from "../SpatialTrigger";
124
+ export { SpatialTriggerReceiver } from "../SpatialTrigger";
86
125
  export { SpectatorCamera } from "../SpectatorCamera";
126
+ export { SphereCollider } from "../Collider";
87
127
  export { Sprite } from "../SpriteRenderer";
88
- export { SpriteSheet } from "../SpriteRenderer";
89
128
  export { SpriteRenderer } from "../SpriteRenderer";
129
+ export { SpriteSheet } from "../SpriteRenderer";
130
+ export { SubEmitterSystem } from "../ParticleSystem";
90
131
  export { SyncedCamera } from "../SyncedCamera";
91
132
  export { SyncedRoom } from "../SyncedRoom";
92
133
  export { SyncedTransform } from "../SyncedTransform";
134
+ export { TeleportTarget } from "../WebXRController";
93
135
  export { TestRunner } from "../TestRunner";
94
136
  export { TestSimulateUserData } from "../TestRunner";
137
+ export { Text } from "../ui/Text";
138
+ export { TextureSheetAnimationModule } from "../ParticleSystemModules";
139
+ export { ToneMapping } from "../Volume";
140
+ export { TrailModule } from "../ParticleSystemModules";
141
+ export { TransformData } from "../export/usdz/extensions/Animation";
95
142
  export { TransformGizmo } from "../TransformGizmo";
143
+ export { UIRaycastUtils } from "../ui/RaycastUtils";
144
+ export { UIRootComponent } from "../ui/BaseUIComponent";
145
+ export { UsageMarker } from "../Interactable";
146
+ export { USDZExporter } from "../export/usdz/USDZExporter";
147
+ export { VelocityOverLifetimeModule } from "../ParticleSystemModules";
148
+ export { VerticalLayoutGroup } from "../ui/Layout";
96
149
  export { VideoPlayer } from "../VideoPlayer";
97
150
  export { Voip } from "../Voip";
98
- export { VolumeParameter } from "../Volume";
151
+ export { Volume } from "../Volume";
99
152
  export { VolumeComponent } from "../Volume";
100
- export { ToneMapping } from "../Volume";
101
- export { ColorAdjustments } from "../Volume";
153
+ export { VolumeParameter } from "../Volume";
102
154
  export { VolumeProfile } from "../Volume";
103
- export { Volume } from "../Volume";
155
+ export { VRUserState } from "../WebXRSync";
156
+ export { WebAR } from "../WebXR";
104
157
  export { WebARSessionRoot } from "../WebARSessionRoot";
105
158
  export { WebXR } from "../WebXR";
106
- export { WebAR } from "../WebXR";
107
- export { AvatarMarker } from "../WebXRAvatar";
108
159
  export { WebXRAvatar } from "../WebXRAvatar";
109
- export { TeleportTarget } from "../WebXRController";
110
160
  export { WebXRController } from "../WebXRController";
111
- export { AttachedObject } from "../WebXRController";
161
+ export { WebXRSync } from "../WebXRSync";
162
+ export { XRFlag } from "../XRFlag";
112
163
  export { XRGrabModel } from "../WebXRGrabRendering";
113
164
  export { XRGrabRendering } from "../WebXRGrabRendering";
114
165
  export { XRRig } from "../WebXRRig";
115
- export { VRUserState } from "../WebXRSync";
116
- export { WebXRSync } from "../WebXRSync";
117
166
  export { XRState } from "../XRFlag";
118
- export { XRFlag } from "../XRFlag";
119
- export { AvatarBlink_Simple } from "../avatar/AvatarBlink_Simple";
120
- export { AvatarEyeLook_Rotation } from "../avatar/AvatarEyeLook_Rotation";
121
- export { Avatar_POI } from "../avatar/Avatar_Brain_LookAt";
122
- export { Avatar_Brain_LookAt } from "../avatar/Avatar_Brain_LookAt";
123
- export { Avatar_MouthShapes } from "../avatar/Avatar_MouthShapes";
124
- export { Avatar_MustacheShake } from "../avatar/Avatar_MustacheShake";
125
- export { LogStats } from "../debug/LogStats";
126
- export { RGBAColor } from "../js-extensions/RGBAColor";
127
- export { PlayableDirector } from "../timeline/PlayableDirector";
128
- export { SignalAsset } from "../timeline/SignalAsset";
129
- export { SignalReceiverEvent } from "../timeline/SignalAsset";
130
- export { SignalReceiver } from "../timeline/SignalAsset";
131
- export { AnimationTrackHandler } from "../timeline/TimelineTracks";
132
- export { AudioTrackHandler } from "../timeline/TimelineTracks";
133
- export { SignalTrackHandler } from "../timeline/TimelineTracks";
134
- export { ControlTrackHandler } from "../timeline/TimelineTracks";
135
- export { BaseUIComponent } from "../ui/BaseUIComponent";
136
- export { UIRootComponent } from "../ui/BaseUIComponent";
137
- export { Button } from "../ui/Button";
138
- export { Canvas } from "../ui/Canvas";
139
- export { CanvasGroup } from "../ui/CanvasGroup";
140
- export { EventSystem } from "../ui/EventSystem";
141
- export { Graphic } from "../ui/Graphic";
142
- export { MaskableGraphic } from "../ui/Graphic";
143
- export { Image } from "../ui/Image";
144
- export { RawImage } from "../ui/Image";
145
- export { InputField } from "../ui/InputField";
146
- export { Keyboard } from "../ui/Keyboard";
147
- export { LayoutGroup } from "../ui/Layout";
148
- export { VerticalLayoutGroup } from "../ui/Layout";
149
- export { HorizontalLayoutGroup } from "../ui/Layout";
150
- export { GridLayoutGroup } from "../ui/Layout";
151
- export { PointerEventData } from "../ui/PointerEvents";
152
- export { Raycaster } from "../ui/Raycaster";
153
- export { ObjectRaycaster } from "../ui/Raycaster";
154
- export { GraphicRaycaster } from "../ui/Raycaster";
155
- export { UIRaycastUtils } from "../ui/RaycastUtils";
156
- export { Size } from "../ui/RectTransform";
157
- export { Rect } from "../ui/RectTransform";
158
- export { RectTransform } from "../ui/RectTransform";
159
- export { SpatialHtml } from "../ui/SpatialHtml";
160
- export { Text } from "../ui/Text";
161
- export { GltfExportBox } from "../export/gltf/GltfExport";
162
- export { GltfExport } from "../export/gltf/GltfExport";
163
- export { USDZExporter } from "../export/usdz/USDZExporter";
164
- export { RegisteredAnimationInfo } from "../export/usdz/extensions/Animation";
165
- export { TransformData } from "../export/usdz/extensions/Animation";
166
- export { AnimationExtension } from "../export/usdz/extensions/Animation";
@@ -12,6 +12,7 @@ import { WebXR } from "../../WebXR"
12
12
  import { serializable } from "../../../engine/engine_serialization";
13
13
  import { showBalloonWarning } from "../../../engine/debug/debug";
14
14
  import { Context } from "../../../engine/engine_setup";
15
+ import { WebARSessionRoot } from "../../WebARSessionRoot";
15
16
 
16
17
  const debug = getParam("debugusdz");
17
18
 
@@ -33,6 +34,7 @@ export class USDZExporter extends Behaviour {
33
34
 
34
35
  private link!: HTMLAnchorElement;
35
36
  private webxr?: WebXR;
37
+ private webARSessionRoot: WebARSessionRoot | undefined;
36
38
 
37
39
 
38
40
  start() {
@@ -65,6 +67,7 @@ export class USDZExporter extends Behaviour {
65
67
  const safari = isSafari();
66
68
  if (debug || (ios && safari)) {
67
69
  this.createQuicklookButton();
70
+ this.webARSessionRoot = GameObject.findObjectOfType(WebARSessionRoot) ?? undefined;
68
71
  this.lastCallback = this.quicklookCallback.bind(this);
69
72
  this.link = ensureQuicklookLinkIsCreated(this.context);
70
73
  this.link.addEventListener('message', this.lastCallback);
@@ -78,6 +81,16 @@ export class USDZExporter extends Behaviour {
78
81
  async exportAsync() {
79
82
  if (!this.objectToExport) return;
80
83
 
84
+ // make sure we apply the AR scale
85
+ if (this.webARSessionRoot) {
86
+ const scene = this.webARSessionRoot.gameObject;
87
+ const scale = 1 / this.webARSessionRoot!.arScale;
88
+ scene.matrix.makeScale(scale, scale, scale);
89
+ if (this.webARSessionRoot.invertForward) {
90
+ scene.matrix.multiply(new THREE.Matrix4().makeRotationY(Math.PI));
91
+ }
92
+ }
93
+
81
94
  const exporter = new ThreeUSDZExporter();
82
95
  const extensions: any = [...this.extensions]
83
96
 
@@ -88,7 +101,7 @@ export class USDZExporter extends Behaviour {
88
101
  if (this.autoExportAnimations)
89
102
  registerAnimatorsImplictly(this.objectToExport, animExt);
90
103
 
91
- const eventArgs = { self: this, exporter: exporter, extensions: extensions };
104
+ const eventArgs = { self: this, exporter: exporter, extensions: extensions, object: this.objectToExport };
92
105
  this.dispatchEvent(new CustomEvent("before-export", { detail: eventArgs }))
93
106
 
94
107
  let name = "needle";
@@ -100,6 +113,8 @@ export class USDZExporter extends Behaviour {
100
113
  const arraybuffer = await exporter.parse(this.objectToExport, extensions);
101
114
  const blob = new Blob([arraybuffer], { type: 'application/octet-stream' });
102
115
 
116
+ this.dispatchEvent(new CustomEvent("after-export", { detail: eventArgs }))
117
+
103
118
  // second file: USDA (without assets)
104
119
  //@ts-ignore
105
120
  // const usda = exporter.lastUsda;
@@ -154,7 +169,7 @@ export class USDZExporter extends Behaviour {
154
169
  await delay(1);
155
170
  this.webxr = GameObject.findObjectOfType(WebXR) ?? undefined;
156
171
  if (this.webxr) {
157
- if(this.webxr.VRButton) this.webxr.VRButton.parentElement?.removeChild(this.webxr.VRButton);
172
+ if (this.webxr.VRButton) this.webxr.VRButton.parentElement?.removeChild(this.webxr.VRButton);
158
173
  // check if we have an AR button already and re-use that
159
174
  if (this.webxr.ARButton && this._arButton !== this.webxr.ARButton) {
160
175
  this._arButton = this.webxr.ARButton;
@@ -170,6 +185,7 @@ export class USDZExporter extends Behaviour {
170
185
  this.exportAsync();
171
186
  });
172
187
  this.webxr.ARButton.classList.add("quicklook-ar-button");
188
+ this.dispatchEvent(new CustomEvent("created-button", { detail: this.webxr.ARButton }))
173
189
  }
174
190
  // create a button if WebXR didnt create one yet
175
191
  else {
@@ -189,6 +205,7 @@ export class USDZExporter extends Behaviour {
189
205
  button.classList.add('webxr-button');
190
206
  button.classList.add("quicklook-ar-button");
191
207
  container.appendChild(button);
208
+ this.dispatchEvent(new CustomEvent("created-button", { detail: button }))
192
209
  }
193
210
  }
194
211
  else {
@@ -31,21 +31,21 @@ export enum Transition {
31
31
  Animation
32
32
  }
33
33
 
34
- declare class ButtonColors {
34
+ class ButtonColors {
35
35
  @serializable()
36
- colorMultiplier: 1;
36
+ colorMultiplier!: 1;
37
37
  @serializable(RGBAColor)
38
- disabledColor: RGBAColor;
38
+ disabledColor!: RGBAColor;
39
39
  @serializable()
40
- fadeDuration: number;
40
+ fadeDuration!: number;
41
41
  @serializable(RGBAColor)
42
- highlightedColor: RGBAColor;
42
+ highlightedColor!: RGBAColor;
43
43
  @serializable(RGBAColor)
44
- normalColor: RGBAColor;
44
+ normalColor!: RGBAColor;
45
45
  @serializable(RGBAColor)
46
- pressedColor: RGBAColor;
46
+ pressedColor!: RGBAColor;
47
47
  @serializable(RGBAColor)
48
- selectedColor: RGBAColor;
48
+ selectedColor!: RGBAColor;
49
49
  }
50
50
 
51
51
  declare type AnimationTriggers = {
@@ -1,10 +1,13 @@
1
1
  import { Behaviour, GameObject } from "../Component";
2
- import { IPointerClickHandler, IPointerEventHandler } from "./PointerEvents";
2
+ import { IPointerClickHandler, IPointerEventHandler, PointerEventData } from "./PointerEvents";
3
3
  import { FrameEvent } from "../../engine/engine_setup";
4
4
  import { serializable } from "../../engine/engine_serialization_decorator";
5
5
  import { Text } from "./Text";
6
- import { getParam } from "../../engine/engine_utils";
6
+ import { getParam, isiOS } from "../../engine/engine_utils";
7
7
  import { EventList } from "../EventList";
8
+ import { showBalloonMessage } from "../../engine/debug/debug";
9
+ import { Physics } from "../../engine/engine_physics";
10
+ import { tryGetUIComponent } from "./Utils";
8
11
 
9
12
  const debug = getParam("debuginputfield");
10
13
 
@@ -36,6 +39,7 @@ export class InputField extends Behaviour implements IPointerEventHandler {
36
39
  private static htmlField: HTMLInputElement | null = null;
37
40
 
38
41
  private inputEventFn: any;
42
+ private _iosEventFn: any;
39
43
 
40
44
  start() {
41
45
  if (debug)
@@ -45,6 +49,7 @@ export class InputField extends Behaviour implements IPointerEventHandler {
45
49
  onEnable() {
46
50
  if (!InputField.htmlField) {
47
51
  InputField.htmlField = document.createElement("input");
52
+ InputField.htmlField.style.caretColor = "transparent";
48
53
  InputField.htmlField.classList.add("ar");
49
54
  document.body.appendChild(InputField.htmlField);
50
55
  }
@@ -57,6 +62,10 @@ export class InputField extends Behaviour implements IPointerEventHandler {
57
62
  if (this.placeholder && this.textComponent?.text.length) {
58
63
  GameObject.setActive(this.placeholder.gameObject, false);
59
64
  }
65
+ if (isiOS()) {
66
+ this._iosEventFn = this.processInputOniOS.bind(this);
67
+ window.addEventListener("touchend", this._iosEventFn);
68
+ }
60
69
  }
61
70
 
62
71
  onDisable() {
@@ -64,6 +73,9 @@ export class InputField extends Behaviour implements IPointerEventHandler {
64
73
  InputField.htmlField?.removeEventListener("keyup", this.inputEventFn);
65
74
  // InputField.htmlField?.removeEventListener("change", this.inputEventFn);
66
75
  this.onDeselected();
76
+ if (this._iosEventFn) {
77
+ window.removeEventListener("touchend", this._iosEventFn);
78
+ }
67
79
  }
68
80
 
69
81
  onPointerClick(_args) {
@@ -187,6 +199,17 @@ export class InputField extends Behaviour implements IPointerEventHandler {
187
199
  }
188
200
  }
189
201
 
202
+ private processInputOniOS() {
203
+ // focus() on safari ios doesnt open the keyboard when not processed from dom event
204
+ // so we try in a touch end event if this is hit
205
+ const hits = this.context.physics.raycast();
206
+ if (!hits.length) return;
207
+ const hit = hits[0];
208
+ const obj = hit.object;
209
+ const component = tryGetUIComponent(obj);
210
+ if (component?.gameObject === this.gameObject || component?.gameObject.parent === this.gameObject)
211
+ this.selectInputField();
212
+ }
190
213
 
191
214
 
192
215
  // private static _lastDeletionTime: number = 0;
@@ -1,18 +1,19 @@
1
1
 
2
2
  import { FrontSide, DoubleSide, BackSide, TetrahedronGeometry } from "three"
3
3
  import { FrameEvent } from "../../engine/engine_setup";
4
- import { Behaviour, GameObject } from "../Component";
5
- import { $shadowDomOwner } from "./BaseUIComponent";
4
+ import { Behaviour } from "../Component";
5
+ import { $shadowDomOwner, BaseUIComponent } from "./BaseUIComponent";
6
6
 
7
- // export function makeNonRaycastable(obj: THREE.Object3D | null | undefined, recursive: boolean = false) {
8
- // if (!obj) return;
9
- // obj.layers.mask = 2;
10
- // if (recursive && obj.children) {
11
- // for (const ch of obj.children) {
12
- // if (recursive) makeNonRaycastable(ch, true);
13
- // }
14
- // }
15
- // }
7
+ export function tryGetUIComponent(obj: THREE.Object3D): BaseUIComponent | null {
8
+ const owner = obj[$shadowDomOwner];
9
+ if (owner) {
10
+ return owner;
11
+ }
12
+ if(obj.parent) {
13
+ return tryGetUIComponent(obj.parent);
14
+ }
15
+ return null;
16
+ }
16
17
 
17
18
  export function isUIObject(obj: THREE.Object3D) {
18
19
  return obj["isUI"] === true || typeof obj[$shadowDomOwner] === "object";
@@ -14,7 +14,7 @@ import { ControllerEvents, WebXRController } from "../../engine-components/WebXR
14
14
  class LineState {
15
15
  isDrawing: boolean;
16
16
  lastHit: Vector3;
17
- currentHandle: LineHandle;
17
+ currentHandle: LineHandle | null;
18
18
  maxDistance: number;
19
19
  prevDistance: number;
20
20
  lastParent: THREE.Object3D | null;
@@ -31,7 +31,7 @@ class LineState {
31
31
 
32
32
  export class LinesDrawer extends Behaviour {
33
33
 
34
- lines: LinesManager;
34
+ lines!: LinesManager;
35
35
  colliders?: THREE.Object3D[];
36
36
  alignToSurface: boolean = true;
37
37
  addToPaintedObject: boolean = true;
@@ -40,7 +40,7 @@ export class LinesDrawer extends Behaviour {
40
40
 
41
41
  start() {
42
42
  if (!this.lines) {
43
- this.lines = GameObject.getComponent(this.gameObject, LinesManager);
43
+ this.lines = GameObject.getComponent(this.gameObject, LinesManager)!;
44
44
  if (!this.lines)
45
45
  this.lines = GameObject.addNewComponent(this.gameObject, LinesManager);
46
46
  }
@@ -72,9 +72,11 @@ export class LinesDrawer extends Behaviour {
72
72
  if (this.orbit && this._states["mouse"]) {
73
73
  if (this.orbit) this.orbit.enabled = !this._states["mouse"].isDrawing;
74
74
  }
75
+ if (!this.context.mainCamera) return;
75
76
 
76
77
  const multi = this.context.input.getPointerPressedCount() > 1;
77
78
  const sp = this.context.input.getPointerPositionRC(0);
79
+ if (!sp) return;
78
80
  LinesDrawer._raycaster.setFromCamera(sp, this.context.mainCamera);
79
81
  const ray = LinesDrawer._raycaster.ray;
80
82
  this.updateLine("mouse", ray,
@@ -110,14 +112,15 @@ export class LinesDrawer extends Behaviour {
110
112
  state.maxDistance = hit.distance;
111
113
  }
112
114
  pt = hit.point;
113
- pt.add(hit.face.normal.multiplyScalar(0.01));
115
+ if (hit.face)
116
+ pt.add(hit.face.normal.multiplyScalar(0.01));
114
117
  state.prevDistance = hit.distance;
115
118
  }
116
119
  else if (state.maxDistance > 0) {
117
120
  let dist = state.maxDistance;
118
121
  // if we start drawing in thin air:
119
122
  if (!state.currentHandle && state.lastHit) {
120
- const wp = getWorldPosition(this.context.mainCamera);
123
+ const wp = getWorldPosition(this.context.mainCamera!);
121
124
  dist = state.lastHit.distanceTo(wp);
122
125
  }
123
126
  pt = ray.origin.add(ray.direction.multiplyScalar(state.maxDistance));
@@ -165,8 +168,8 @@ export class LinesDrawer extends Behaviour {
165
168
  this._raycastOptions.ray = ray;
166
169
  const hits = this.context.physics.raycast(this._raycastOptions);
167
170
  if (hits.length > 0) {
168
- for(const hit of hits) {
169
- if(!GameObject.isActiveInHierarchy(hit.object)) {
171
+ for (const hit of hits) {
172
+ if (!GameObject.isActiveInHierarchy(hit.object)) {
170
173
  continue;
171
174
  }
172
175
  return hit;
@@ -120,7 +120,7 @@ export class LinesManager extends Behaviour {
120
120
 
121
121
  public endLine(handle: LineHandle, send: boolean = true): LineInstanceHandler | undefined {
122
122
  const line = this.inFlight[handle.id];
123
- if (!line) return;
123
+ if (!line) return undefined;
124
124
  this.finished.push(line);
125
125
  delete this.inFlight[handle.id];
126
126
 
@@ -173,16 +173,16 @@ export class LinesManager extends Behaviour {
173
173
  });
174
174
  }
175
175
 
176
- private onEnsureLine(lineId: number, parentGuid: string): LineInstanceHandler {
176
+ private onEnsureLine(lineId: number, parentGuid: string): LineInstanceHandler | null {
177
177
  if (this.inFlight[lineId]) return this.inFlight[lineId];
178
178
  let obj = GameObject.findByGuid(parentGuid, this.context.scene);
179
179
  if (!obj) {
180
- return;
180
+ return null;
181
181
  }
182
182
  this.internalStartLine(obj as THREE.Object3D, lineId, false);
183
183
  return this.inFlight[lineId];
184
184
  }
185
- private internalStartLine(parent: THREE.Object3D, id: number, send: boolean = true, options?: LineOptions): LineHandle {
185
+ private internalStartLine(parent: THREE.Object3D | null | undefined, id: number, send: boolean = true, options?: LineOptions): LineHandle {
186
186
  const line = new LineInstanceHandler(parent ?? this.context.scene, options);
187
187
  line.id = id;
188
188
  this.inFlight[id] = line;
@@ -197,14 +197,14 @@ export class LinesManager extends Behaviour {
197
197
  }
198
198
 
199
199
  private sendLineStart(instance: LineInstanceHandler) {
200
- const parent = instance.mesh.parent;
200
+ const parent = instance.mesh!.parent;
201
201
  this.context.connection.send("line-start", { id: instance.id, parentGuid: parent ? parent["guid"] : undefined })
202
202
  }
203
203
 
204
204
  private sendLineUpdate(instance: LineInstanceHandler, finished: boolean, startIndex?: number, points?: Array<any>) {
205
205
  if (instance) {
206
206
  const model: LineModel = {
207
- parentGuid: instance.mesh.parent["guid"],
207
+ parentGuid: instance.mesh!.parent!["guid"],
208
208
  guid: instance.id,
209
209
  points: points ? [...points] : instance.points,
210
210
  width: instance.material!.lineWidth,
@@ -47,7 +47,7 @@ export class PlayerSync extends Behaviour {
47
47
  }
48
48
 
49
49
  private watchTabVisible() {
50
- window.addEventListener("visibilitychange", s => {
50
+ window.addEventListener("visibilitychange", _ => {
51
51
  if (document.visibilityState === "visible") {
52
52
  for (let i = PlayerState.all.length - 1; i >= 0; i--) {
53
53
  const pl = PlayerState.all[i];
File without changes
@@ -1,2 +0,0 @@
1
- "use strict";
2
- //# sourceMappingURL=engine_caching.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"engine_caching.js","sourceRoot":"","sources":["../../../engine/engine_caching.ts"],"names":[],"mappings":""}
File without changes
@@ -1,3 +0,0 @@
1
- "use strict";
2
- // TODO
3
- //# sourceMappingURL=simulate_avatars.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"simulate_avatars.js","sourceRoot":"","sources":["../../../../engine/tests/simulate_avatars.ts"],"names":[],"mappings":";AACA,OAAO"}
File without changes