@babylonjs/core 7.51.3 → 7.52.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 (163) hide show
  1. package/Audio/Interfaces/IAudioEngineOptions.d.ts +2 -0
  2. package/Audio/Interfaces/IAudioEngineOptions.js.map +1 -1
  3. package/AudioV2/abstractAudio/abstractAudioBus.d.ts +22 -0
  4. package/AudioV2/abstractAudio/abstractAudioBus.js +35 -0
  5. package/AudioV2/abstractAudio/abstractAudioBus.js.map +1 -0
  6. package/AudioV2/abstractAudio/abstractAudioNode.d.ts +99 -0
  7. package/AudioV2/abstractAudio/abstractAudioNode.js +149 -0
  8. package/AudioV2/abstractAudio/abstractAudioNode.js.map +1 -0
  9. package/AudioV2/abstractAudio/abstractSound.d.ts +152 -0
  10. package/AudioV2/abstractAudio/abstractSound.js +202 -0
  11. package/AudioV2/abstractAudio/abstractSound.js.map +1 -0
  12. package/AudioV2/abstractAudio/abstractSoundInstance.d.ts +34 -0
  13. package/AudioV2/abstractAudio/abstractSoundInstance.js +35 -0
  14. package/AudioV2/abstractAudio/abstractSoundInstance.js.map +1 -0
  15. package/AudioV2/abstractAudio/audioBus.d.ts +48 -0
  16. package/AudioV2/abstractAudio/audioBus.js +53 -0
  17. package/AudioV2/abstractAudio/audioBus.js.map +1 -0
  18. package/AudioV2/abstractAudio/audioEngineV2.d.ts +193 -0
  19. package/AudioV2/abstractAudio/audioEngineV2.js +155 -0
  20. package/AudioV2/abstractAudio/audioEngineV2.js.map +1 -0
  21. package/AudioV2/abstractAudio/index.d.ts +10 -0
  22. package/AudioV2/abstractAudio/index.js +12 -0
  23. package/AudioV2/abstractAudio/index.js.map +1 -0
  24. package/AudioV2/abstractAudio/mainAudioBus.d.ts +22 -0
  25. package/AudioV2/abstractAudio/mainAudioBus.js +18 -0
  26. package/AudioV2/abstractAudio/mainAudioBus.js.map +1 -0
  27. package/AudioV2/abstractAudio/mainAudioOut.d.ts +13 -0
  28. package/AudioV2/abstractAudio/mainAudioOut.js +15 -0
  29. package/AudioV2/abstractAudio/mainAudioOut.js.map +1 -0
  30. package/AudioV2/abstractAudio/staticSound.d.ts +134 -0
  31. package/AudioV2/abstractAudio/staticSound.js +113 -0
  32. package/AudioV2/abstractAudio/staticSound.js.map +1 -0
  33. package/AudioV2/abstractAudio/staticSoundBuffer.d.ts +46 -0
  34. package/AudioV2/abstractAudio/staticSoundBuffer.js +17 -0
  35. package/AudioV2/abstractAudio/staticSoundBuffer.js.map +1 -0
  36. package/AudioV2/abstractAudio/staticSoundInstance.d.ts +15 -0
  37. package/AudioV2/abstractAudio/staticSoundInstance.js +5 -0
  38. package/AudioV2/abstractAudio/staticSoundInstance.js.map +1 -0
  39. package/AudioV2/abstractAudio/streamingSound.d.ts +77 -0
  40. package/AudioV2/abstractAudio/streamingSound.js +109 -0
  41. package/AudioV2/abstractAudio/streamingSound.js.map +1 -0
  42. package/AudioV2/abstractAudio/streamingSoundInstance.d.ts +25 -0
  43. package/AudioV2/abstractAudio/streamingSoundInstance.js +29 -0
  44. package/AudioV2/abstractAudio/streamingSoundInstance.js.map +1 -0
  45. package/AudioV2/abstractAudio/subNodes/abstractAudioSubGraph.d.ts +53 -0
  46. package/AudioV2/abstractAudio/subNodes/abstractAudioSubGraph.js +97 -0
  47. package/AudioV2/abstractAudio/subNodes/abstractAudioSubGraph.js.map +1 -0
  48. package/AudioV2/abstractAudio/subNodes/abstractAudioSubNode.d.ts +13 -0
  49. package/AudioV2/abstractAudio/subNodes/abstractAudioSubNode.js +33 -0
  50. package/AudioV2/abstractAudio/subNodes/abstractAudioSubNode.js.map +1 -0
  51. package/AudioV2/abstractAudio/subNodes/audioSubNode.d.ts +6 -0
  52. package/AudioV2/abstractAudio/subNodes/audioSubNode.js +8 -0
  53. package/AudioV2/abstractAudio/subNodes/audioSubNode.js.map +1 -0
  54. package/AudioV2/abstractAudio/subNodes/spatialAudioSubNode.d.ts +31 -0
  55. package/AudioV2/abstractAudio/subNodes/spatialAudioSubNode.js +46 -0
  56. package/AudioV2/abstractAudio/subNodes/spatialAudioSubNode.js.map +1 -0
  57. package/AudioV2/abstractAudio/subNodes/stereoAudioSubNode.d.ts +19 -0
  58. package/AudioV2/abstractAudio/subNodes/stereoAudioSubNode.js +27 -0
  59. package/AudioV2/abstractAudio/subNodes/stereoAudioSubNode.js.map +1 -0
  60. package/AudioV2/abstractAudio/subNodes/volumeAudioSubNode.d.ts +28 -0
  61. package/AudioV2/abstractAudio/subNodes/volumeAudioSubNode.js +24 -0
  62. package/AudioV2/abstractAudio/subNodes/volumeAudioSubNode.js.map +1 -0
  63. package/AudioV2/abstractAudio/subProperties/abstractSpatialAudio.d.ts +187 -0
  64. package/AudioV2/abstractAudio/subProperties/abstractSpatialAudio.js +41 -0
  65. package/AudioV2/abstractAudio/subProperties/abstractSpatialAudio.js.map +1 -0
  66. package/AudioV2/abstractAudio/subProperties/abstractSpatialAudioListener.d.ts +59 -0
  67. package/AudioV2/abstractAudio/subProperties/abstractSpatialAudioListener.js +21 -0
  68. package/AudioV2/abstractAudio/subProperties/abstractSpatialAudioListener.js.map +1 -0
  69. package/AudioV2/abstractAudio/subProperties/abstractStereoAudio.d.ts +38 -0
  70. package/AudioV2/abstractAudio/subProperties/abstractStereoAudio.js +18 -0
  71. package/AudioV2/abstractAudio/subProperties/abstractStereoAudio.js.map +1 -0
  72. package/AudioV2/abstractAudio/subProperties/index.d.ts +3 -0
  73. package/AudioV2/abstractAudio/subProperties/index.js +4 -0
  74. package/AudioV2/abstractAudio/subProperties/index.js.map +1 -0
  75. package/AudioV2/abstractAudio/subProperties/spatialAudio.d.ts +49 -0
  76. package/AudioV2/abstractAudio/subProperties/spatialAudio.js +129 -0
  77. package/AudioV2/abstractAudio/subProperties/spatialAudio.js.map +1 -0
  78. package/AudioV2/abstractAudio/subProperties/spatialAudioListener.d.ts +9 -0
  79. package/AudioV2/abstractAudio/subProperties/spatialAudioListener.js +22 -0
  80. package/AudioV2/abstractAudio/subProperties/spatialAudioListener.js.map +1 -0
  81. package/AudioV2/abstractAudio/subProperties/stereoAudio.d.ts +11 -0
  82. package/AudioV2/abstractAudio/subProperties/stereoAudio.js +18 -0
  83. package/AudioV2/abstractAudio/subProperties/stereoAudio.js.map +1 -0
  84. package/AudioV2/audioUtils.d.ts +3 -0
  85. package/AudioV2/audioUtils.js +6 -0
  86. package/AudioV2/audioUtils.js.map +1 -0
  87. package/AudioV2/index.d.ts +3 -0
  88. package/AudioV2/index.js +5 -0
  89. package/AudioV2/index.js.map +1 -0
  90. package/AudioV2/soundState.d.ts +29 -0
  91. package/AudioV2/soundState.js +31 -0
  92. package/AudioV2/soundState.js.map +1 -0
  93. package/AudioV2/webAudio/index.d.ts +5 -0
  94. package/AudioV2/webAudio/index.js +6 -0
  95. package/AudioV2/webAudio/index.js.map +1 -0
  96. package/AudioV2/webAudio/subNodes/spatialWebAudioSubNode.d.ts +59 -0
  97. package/AudioV2/webAudio/subNodes/spatialWebAudioSubNode.js +156 -0
  98. package/AudioV2/webAudio/subNodes/spatialWebAudioSubNode.js.map +1 -0
  99. package/AudioV2/webAudio/subNodes/stereoWebAudioSubNode.d.ts +24 -0
  100. package/AudioV2/webAudio/subNodes/stereoWebAudioSubNode.js +55 -0
  101. package/AudioV2/webAudio/subNodes/stereoWebAudioSubNode.js.map +1 -0
  102. package/AudioV2/webAudio/subNodes/volumeWebAudioSubNode.d.ts +24 -0
  103. package/AudioV2/webAudio/subNodes/volumeWebAudioSubNode.js +55 -0
  104. package/AudioV2/webAudio/subNodes/volumeWebAudioSubNode.js.map +1 -0
  105. package/AudioV2/webAudio/subNodes/webAudioBaseSubGraph.d.ts +26 -0
  106. package/AudioV2/webAudio/subNodes/webAudioBaseSubGraph.js +54 -0
  107. package/AudioV2/webAudio/subNodes/webAudioBaseSubGraph.js.map +1 -0
  108. package/AudioV2/webAudio/subNodes/webAudioBusAndSoundSubGraph.d.ts +21 -0
  109. package/AudioV2/webAudio/subNodes/webAudioBusAndSoundSubGraph.js +112 -0
  110. package/AudioV2/webAudio/subNodes/webAudioBusAndSoundSubGraph.js.map +1 -0
  111. package/AudioV2/webAudio/subProperties/spatialWebAudio.d.ts +10 -0
  112. package/AudioV2/webAudio/subProperties/spatialWebAudio.js +26 -0
  113. package/AudioV2/webAudio/subProperties/spatialWebAudio.js.map +1 -0
  114. package/AudioV2/webAudio/subProperties/spatialWebAudioListener.d.ts +4 -0
  115. package/AudioV2/webAudio/subProperties/spatialWebAudioListener.js +108 -0
  116. package/AudioV2/webAudio/subProperties/spatialWebAudioListener.js.map +1 -0
  117. package/AudioV2/webAudio/webAudioBus.d.ts +35 -0
  118. package/AudioV2/webAudio/webAudioBus.js +63 -0
  119. package/AudioV2/webAudio/webAudioBus.js.map +1 -0
  120. package/AudioV2/webAudio/webAudioEngine.d.ts +110 -0
  121. package/AudioV2/webAudio/webAudioEngine.js +227 -0
  122. package/AudioV2/webAudio/webAudioEngine.js.map +1 -0
  123. package/AudioV2/webAudio/webAudioMainBus.d.ts +29 -0
  124. package/AudioV2/webAudio/webAudioMainBus.js +64 -0
  125. package/AudioV2/webAudio/webAudioMainBus.js.map +1 -0
  126. package/AudioV2/webAudio/webAudioMainOut.d.ts +20 -0
  127. package/AudioV2/webAudio/webAudioMainOut.js +35 -0
  128. package/AudioV2/webAudio/webAudioMainOut.js.map +1 -0
  129. package/AudioV2/webAudio/webAudioNode.d.ts +24 -0
  130. package/AudioV2/webAudio/webAudioNode.js +2 -0
  131. package/AudioV2/webAudio/webAudioNode.js.map +1 -0
  132. package/AudioV2/webAudio/webAudioStaticSound.d.ts +106 -0
  133. package/AudioV2/webAudio/webAudioStaticSound.js +368 -0
  134. package/AudioV2/webAudio/webAudioStaticSound.js.map +1 -0
  135. package/AudioV2/webAudio/webAudioStreamingSound.d.ts +94 -0
  136. package/AudioV2/webAudio/webAudioStreamingSound.js +358 -0
  137. package/AudioV2/webAudio/webAudioStreamingSound.js.map +1 -0
  138. package/Engines/abstractEngine.d.ts +4 -0
  139. package/Engines/abstractEngine.js +4 -2
  140. package/Engines/abstractEngine.js.map +1 -1
  141. package/Engines/engine.common.js +0 -4
  142. package/Engines/engine.common.js.map +1 -1
  143. package/Engines/engine.d.ts +0 -1
  144. package/Engines/engine.js +0 -1
  145. package/Engines/engine.js.map +1 -1
  146. package/Lights/Shadows/cascadedShadowGenerator.js +33 -20
  147. package/Lights/Shadows/cascadedShadowGenerator.js.map +1 -1
  148. package/Materials/Textures/hdrCubeTexture.js +4 -1
  149. package/Materials/Textures/hdrCubeTexture.js.map +1 -1
  150. package/Meshes/geometry.js +7 -15
  151. package/Meshes/geometry.js.map +1 -1
  152. package/Shaders/ShadersInclude/shadowMapFragment.js +1 -0
  153. package/Shaders/ShadersInclude/shadowMapFragment.js.map +1 -1
  154. package/Shaders/iblCdfDebug.fragment.js +2 -2
  155. package/Shaders/iblCdfDebug.fragment.js.map +1 -1
  156. package/ShadersWGSL/ShadersInclude/shadowMapFragment.js +1 -0
  157. package/ShadersWGSL/ShadersInclude/shadowMapFragment.js.map +1 -1
  158. package/ShadersWGSL/iblCdfDebug.fragment.js +2 -2
  159. package/ShadersWGSL/iblCdfDebug.fragment.js.map +1 -1
  160. package/index.d.ts +1 -0
  161. package/index.js +1 -0
  162. package/index.js.map +1 -1
  163. package/package.json +1 -1
@@ -0,0 +1,129 @@
1
+ import { _GetSpatialAudioProperty, _GetSpatialAudioSubNode, _SetSpatialAudioProperty } from "../subNodes/spatialAudioSubNode.js";
2
+ import { _SpatialAudioDefaults, AbstractSpatialAudio } from "./abstractSpatialAudio.js";
3
+ /** @internal */
4
+ export class _SpatialAudio extends AbstractSpatialAudio {
5
+ /** @internal */
6
+ constructor(subGraph) {
7
+ super();
8
+ this._position = _SpatialAudioDefaults.position.clone();
9
+ this._rotation = _SpatialAudioDefaults.rotation.clone();
10
+ this._rotationQuaternion = _SpatialAudioDefaults.rotationQuaternion.clone();
11
+ this._subGraph = subGraph;
12
+ }
13
+ /** @internal */
14
+ get coneInnerAngle() {
15
+ return _GetSpatialAudioProperty(this._subGraph, "coneInnerAngle") ?? _SpatialAudioDefaults.coneInnerAngle;
16
+ }
17
+ set coneInnerAngle(value) {
18
+ _SetSpatialAudioProperty(this._subGraph, "coneInnerAngle", value);
19
+ }
20
+ /** @internal */
21
+ get coneOuterAngle() {
22
+ return _GetSpatialAudioProperty(this._subGraph, "coneOuterAngle") ?? _SpatialAudioDefaults.coneOuterAngle;
23
+ }
24
+ set coneOuterAngle(value) {
25
+ _SetSpatialAudioProperty(this._subGraph, "coneOuterAngle", value);
26
+ }
27
+ /** @internal */
28
+ get coneOuterVolume() {
29
+ return _GetSpatialAudioProperty(this._subGraph, "coneOuterVolume") ?? _SpatialAudioDefaults.coneOuterVolume;
30
+ }
31
+ set coneOuterVolume(value) {
32
+ _SetSpatialAudioProperty(this._subGraph, "coneOuterVolume", value);
33
+ }
34
+ /** @internal */
35
+ get distanceModel() {
36
+ return _GetSpatialAudioProperty(this._subGraph, "distanceModel") ?? _SpatialAudioDefaults.distanceModel;
37
+ }
38
+ set distanceModel(value) {
39
+ _SetSpatialAudioProperty(this._subGraph, "distanceModel", value);
40
+ }
41
+ /** @internal */
42
+ get maxDistance() {
43
+ return _GetSpatialAudioProperty(this._subGraph, "maxDistance") ?? _SpatialAudioDefaults.maxDistance;
44
+ }
45
+ set maxDistance(value) {
46
+ if (value <= 0) {
47
+ value = 0.000001;
48
+ }
49
+ _SetSpatialAudioProperty(this._subGraph, "maxDistance", value);
50
+ }
51
+ /** @internal */
52
+ get panningModel() {
53
+ return _GetSpatialAudioProperty(this._subGraph, "panningModel") ?? _SpatialAudioDefaults.panningModel;
54
+ }
55
+ set panningModel(value) {
56
+ _SetSpatialAudioProperty(this._subGraph, "panningModel", value);
57
+ }
58
+ /** @internal */
59
+ get position() {
60
+ return this._position;
61
+ }
62
+ set position(value) {
63
+ this._position = value;
64
+ this._updatePosition();
65
+ }
66
+ /** @internal */
67
+ get referenceDistance() {
68
+ return _GetSpatialAudioProperty(this._subGraph, "referenceDistance") ?? _SpatialAudioDefaults.referenceDistance;
69
+ }
70
+ set referenceDistance(value) {
71
+ _SetSpatialAudioProperty(this._subGraph, "referenceDistance", value);
72
+ }
73
+ /** @internal */
74
+ get rolloffFactor() {
75
+ return _GetSpatialAudioProperty(this._subGraph, "rolloffFactor") ?? _SpatialAudioDefaults.rolloffFactor;
76
+ }
77
+ set rolloffFactor(value) {
78
+ _SetSpatialAudioProperty(this._subGraph, "rolloffFactor", value);
79
+ }
80
+ /** @internal */
81
+ get rotation() {
82
+ return this._rotation;
83
+ }
84
+ set rotation(value) {
85
+ this._rotation = value;
86
+ this._updateRotation();
87
+ }
88
+ /** @internal */
89
+ get rotationQuaternion() {
90
+ return this._rotationQuaternion;
91
+ }
92
+ set rotationQuaternion(value) {
93
+ this._rotationQuaternion = value;
94
+ this._updateRotation();
95
+ }
96
+ /** @internal */
97
+ update() {
98
+ const subNode = _GetSpatialAudioSubNode(this._subGraph);
99
+ this._updatePosition(subNode);
100
+ this._updateRotation(subNode);
101
+ }
102
+ _updatePosition(subNode = null) {
103
+ if (!subNode) {
104
+ subNode = _GetSpatialAudioSubNode(this._subGraph);
105
+ if (!subNode) {
106
+ return;
107
+ }
108
+ }
109
+ const position = subNode.position;
110
+ if (!position.equalsWithEpsilon(this._position)) {
111
+ subNode.position = this._position;
112
+ }
113
+ }
114
+ _updateRotation(subNode = null) {
115
+ if (!subNode) {
116
+ subNode = _GetSpatialAudioSubNode(this._subGraph);
117
+ if (!subNode) {
118
+ return;
119
+ }
120
+ }
121
+ if (!subNode.rotationQuaternion.equalsWithEpsilon(this._rotationQuaternion)) {
122
+ subNode.rotationQuaternion = this._rotationQuaternion;
123
+ }
124
+ else if (!subNode.rotation.equalsWithEpsilon(this._rotation)) {
125
+ subNode.rotation = this._rotation;
126
+ }
127
+ }
128
+ }
129
+ //# sourceMappingURL=spatialAudio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spatialAudio.js","sourceRoot":"","sources":["../../../../../../dev/core/src/AudioV2/abstractAudio/subProperties/spatialAudio.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Quaternion, Vector3 } from \"../../../Maths/math.vector\";\nimport type { Nullable } from \"../../../types\";\nimport type { _AbstractAudioSubGraph } from \"../subNodes/abstractAudioSubGraph\";\nimport { _GetSpatialAudioProperty, _GetSpatialAudioSubNode, _SetSpatialAudioProperty, type _SpatialAudioSubNode } from \"../subNodes/spatialAudioSubNode\";\nimport { _SpatialAudioDefaults, AbstractSpatialAudio } from \"./abstractSpatialAudio\";\n\n/** @internal */\nexport class _SpatialAudio extends AbstractSpatialAudio {\n private _position: Vector3 = _SpatialAudioDefaults.position.clone();\n private _rotation: Vector3 = _SpatialAudioDefaults.rotation.clone();\n private _rotationQuaternion: Quaternion = _SpatialAudioDefaults.rotationQuaternion.clone();\n private _subGraph: _AbstractAudioSubGraph;\n\n /** @internal */\n public constructor(subGraph: _AbstractAudioSubGraph) {\n super();\n this._subGraph = subGraph;\n }\n\n /** @internal */\n public get coneInnerAngle(): number {\n return _GetSpatialAudioProperty(this._subGraph, \"coneInnerAngle\") ?? _SpatialAudioDefaults.coneInnerAngle;\n }\n\n public set coneInnerAngle(value: number) {\n _SetSpatialAudioProperty(this._subGraph, \"coneInnerAngle\", value);\n }\n\n /** @internal */\n public get coneOuterAngle(): number {\n return _GetSpatialAudioProperty(this._subGraph, \"coneOuterAngle\") ?? _SpatialAudioDefaults.coneOuterAngle;\n }\n\n public set coneOuterAngle(value: number) {\n _SetSpatialAudioProperty(this._subGraph, \"coneOuterAngle\", value);\n }\n\n /** @internal */\n public get coneOuterVolume(): number {\n return _GetSpatialAudioProperty(this._subGraph, \"coneOuterVolume\") ?? _SpatialAudioDefaults.coneOuterVolume;\n }\n\n public set coneOuterVolume(value: number) {\n _SetSpatialAudioProperty(this._subGraph, \"coneOuterVolume\", value);\n }\n\n /** @internal */\n public get distanceModel(): DistanceModelType {\n return _GetSpatialAudioProperty(this._subGraph, \"distanceModel\") ?? _SpatialAudioDefaults.distanceModel;\n }\n\n public set distanceModel(value: DistanceModelType) {\n _SetSpatialAudioProperty(this._subGraph, \"distanceModel\", value);\n }\n\n /** @internal */\n public get maxDistance(): number {\n return _GetSpatialAudioProperty(this._subGraph, \"maxDistance\") ?? _SpatialAudioDefaults.maxDistance;\n }\n\n public set maxDistance(value: number) {\n if (value <= 0) {\n value = 0.000001;\n }\n\n _SetSpatialAudioProperty(this._subGraph, \"maxDistance\", value);\n }\n\n /** @internal */\n public get panningModel(): PanningModelType {\n return _GetSpatialAudioProperty(this._subGraph, \"panningModel\") ?? _SpatialAudioDefaults.panningModel;\n }\n\n public set panningModel(value: PanningModelType) {\n _SetSpatialAudioProperty(this._subGraph, \"panningModel\", value);\n }\n\n /** @internal */\n public get position(): Vector3 {\n return this._position;\n }\n\n public set position(value: Vector3) {\n this._position = value;\n this._updatePosition();\n }\n\n /** @internal */\n public get referenceDistance(): number {\n return _GetSpatialAudioProperty(this._subGraph, \"referenceDistance\") ?? _SpatialAudioDefaults.referenceDistance;\n }\n\n public set referenceDistance(value: number) {\n _SetSpatialAudioProperty(this._subGraph, \"referenceDistance\", value);\n }\n\n /** @internal */\n public get rolloffFactor(): number {\n return _GetSpatialAudioProperty(this._subGraph, \"rolloffFactor\") ?? _SpatialAudioDefaults.rolloffFactor;\n }\n\n public set rolloffFactor(value: number) {\n _SetSpatialAudioProperty(this._subGraph, \"rolloffFactor\", value);\n }\n\n /** @internal */\n public get rotation(): Vector3 {\n return this._rotation;\n }\n\n public set rotation(value: Vector3) {\n this._rotation = value;\n this._updateRotation();\n }\n\n /** @internal */\n public get rotationQuaternion(): Quaternion {\n return this._rotationQuaternion;\n }\n\n public set rotationQuaternion(value: Quaternion) {\n this._rotationQuaternion = value;\n this._updateRotation();\n }\n\n /** @internal */\n public update(): void {\n const subNode = _GetSpatialAudioSubNode(this._subGraph);\n\n this._updatePosition(subNode);\n this._updateRotation(subNode);\n }\n\n private _updatePosition(subNode: Nullable<_SpatialAudioSubNode> = null): void {\n if (!subNode) {\n subNode = _GetSpatialAudioSubNode(this._subGraph);\n\n if (!subNode) {\n return;\n }\n }\n\n const position = subNode.position;\n if (!position.equalsWithEpsilon(this._position)) {\n subNode.position = this._position;\n }\n }\n\n private _updateRotation(subNode: Nullable<_SpatialAudioSubNode> = null): void {\n if (!subNode) {\n subNode = _GetSpatialAudioSubNode(this._subGraph);\n\n if (!subNode) {\n return;\n }\n }\n\n if (!subNode.rotationQuaternion.equalsWithEpsilon(this._rotationQuaternion)) {\n subNode.rotationQuaternion = this._rotationQuaternion;\n } else if (!subNode.rotation.equalsWithEpsilon(this._rotation)) {\n subNode.rotation = this._rotation;\n }\n }\n}\n"]}
@@ -0,0 +1,9 @@
1
+ import type { ISpatialAudioListenerOptions } from "./abstractSpatialAudioListener";
2
+ import { AbstractSpatialAudioListener } from "./abstractSpatialAudioListener";
3
+ /** @internal */
4
+ export declare abstract class _SpatialAudioListener extends AbstractSpatialAudioListener {
5
+ /** @internal */
6
+ dispose(): void;
7
+ /** @internal */
8
+ setOptions(options: Partial<ISpatialAudioListenerOptions>): void;
9
+ }
@@ -0,0 +1,22 @@
1
+ import { _SpatialAudioListenerDefaults, AbstractSpatialAudioListener } from "./abstractSpatialAudioListener.js";
2
+ /** @internal */
3
+ export class _SpatialAudioListener extends AbstractSpatialAudioListener {
4
+ /** @internal */
5
+ dispose() { }
6
+ /** @internal */
7
+ setOptions(options) {
8
+ if (options.listenerPosition !== undefined) {
9
+ this.position = options.listenerPosition.clone();
10
+ }
11
+ if (options.listenerRotationQuaternion !== undefined) {
12
+ this.rotationQuaternion = options.listenerRotationQuaternion.clone();
13
+ }
14
+ else if (options.listenerRotation !== undefined) {
15
+ this.rotation = options.listenerRotation.clone();
16
+ }
17
+ else {
18
+ this.rotationQuaternion = _SpatialAudioListenerDefaults.rotationQuaternion.clone();
19
+ }
20
+ }
21
+ }
22
+ //# sourceMappingURL=spatialAudioListener.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spatialAudioListener.js","sourceRoot":"","sources":["../../../../../../dev/core/src/AudioV2/abstractAudio/subProperties/spatialAudioListener.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,6BAA6B,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAE7G,gBAAgB;AAChB,MAAM,OAAgB,qBAAsB,SAAQ,4BAA4B;IAC5E,gBAAgB;IACT,OAAO,KAAU,CAAC;IAEzB,gBAAgB;IACT,UAAU,CAAC,OAA8C;QAC5D,IAAI,OAAO,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACzC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QACrD,CAAC;QAED,IAAI,OAAO,CAAC,0BAA0B,KAAK,SAAS,EAAE,CAAC;YACnD,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,0BAA0B,CAAC,KAAK,EAAE,CAAC;QACzE,CAAC;aAAM,IAAI,OAAO,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;YAChD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QACrD,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,kBAAkB,GAAG,6BAA6B,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;QACvF,CAAC;IACL,CAAC;CACJ","sourcesContent":["import type { ISpatialAudioListenerOptions } from \"./abstractSpatialAudioListener\";\nimport { _SpatialAudioListenerDefaults, AbstractSpatialAudioListener } from \"./abstractSpatialAudioListener\";\n\n/** @internal */\nexport abstract class _SpatialAudioListener extends AbstractSpatialAudioListener {\n /** @internal */\n public dispose(): void {}\n\n /** @internal */\n public setOptions(options: Partial<ISpatialAudioListenerOptions>): void {\n if (options.listenerPosition !== undefined) {\n this.position = options.listenerPosition.clone();\n }\n\n if (options.listenerRotationQuaternion !== undefined) {\n this.rotationQuaternion = options.listenerRotationQuaternion.clone();\n } else if (options.listenerRotation !== undefined) {\n this.rotation = options.listenerRotation.clone();\n } else {\n this.rotationQuaternion = _SpatialAudioListenerDefaults.rotationQuaternion.clone();\n }\n }\n}\n"]}
@@ -0,0 +1,11 @@
1
+ import { AbstractStereoAudio } from "../../abstractAudio/subProperties/abstractStereoAudio";
2
+ import type { _AbstractAudioSubGraph } from "../subNodes/abstractAudioSubGraph";
3
+ /** @internal */
4
+ export declare class _StereoAudio extends AbstractStereoAudio {
5
+ private _subGraph;
6
+ /** @internal */
7
+ constructor(subGraph: _AbstractAudioSubGraph);
8
+ /** @internal */
9
+ get pan(): number;
10
+ set pan(value: number);
11
+ }
@@ -0,0 +1,18 @@
1
+ import { AbstractStereoAudio } from "../../abstractAudio/subProperties/abstractStereoAudio.js";
2
+ import { _GetStereoAudioProperty, _SetStereoAudioProperty } from "../subNodes/stereoAudioSubNode.js";
3
+ /** @internal */
4
+ export class _StereoAudio extends AbstractStereoAudio {
5
+ /** @internal */
6
+ constructor(subGraph) {
7
+ super();
8
+ this._subGraph = subGraph;
9
+ }
10
+ /** @internal */
11
+ get pan() {
12
+ return _GetStereoAudioProperty(this._subGraph, "pan");
13
+ }
14
+ set pan(value) {
15
+ _SetStereoAudioProperty(this._subGraph, "pan", value);
16
+ }
17
+ }
18
+ //# sourceMappingURL=stereoAudio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stereoAudio.js","sourceRoot":"","sources":["../../../../../../dev/core/src/AudioV2/abstractAudio/subProperties/stereoAudio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uDAAuD,CAAC;AAE5F,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAElG,gBAAgB;AAChB,MAAM,OAAO,YAAa,SAAQ,mBAAmB;IAGjD,gBAAgB;IAChB,YAAmB,QAAgC;QAC/C,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC9B,CAAC;IAED,gBAAgB;IAChB,IAAW,GAAG;QACV,OAAO,uBAAuB,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC1D,CAAC;IAED,IAAW,GAAG,CAAC,KAAa;QACxB,uBAAuB,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC1D,CAAC;CACJ","sourcesContent":["import { AbstractStereoAudio } from \"../../abstractAudio/subProperties/abstractStereoAudio\";\nimport type { _AbstractAudioSubGraph } from \"../subNodes/abstractAudioSubGraph\";\nimport { _GetStereoAudioProperty, _SetStereoAudioProperty } from \"../subNodes/stereoAudioSubNode\";\n\n/** @internal */\nexport class _StereoAudio extends AbstractStereoAudio {\n private _subGraph: _AbstractAudioSubGraph;\n\n /** @internal */\n public constructor(subGraph: _AbstractAudioSubGraph) {\n super();\n this._subGraph = subGraph;\n }\n\n /** @internal */\n public get pan(): number {\n return _GetStereoAudioProperty(this._subGraph, \"pan\");\n }\n\n public set pan(value: number) {\n _SetStereoAudioProperty(this._subGraph, \"pan\", value);\n }\n}\n"]}
@@ -0,0 +1,3 @@
1
+ export declare const _FileExtensionRegex: RegExp;
2
+ /** @internal */
3
+ export declare function _CleanUrl(url: string): string;
@@ -0,0 +1,6 @@
1
+ export const _FileExtensionRegex = new RegExp("\\.(\\w{3,4})($|\\?)");
2
+ /** @internal */
3
+ export function _CleanUrl(url) {
4
+ return url.replace(/#/gm, "%23");
5
+ }
6
+ //# sourceMappingURL=audioUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audioUtils.js","sourceRoot":"","sources":["../../../../dev/core/src/AudioV2/audioUtils.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,MAAM,CAAC,sBAAsB,CAAC,CAAC;AAEtE,gBAAgB;AAChB,MAAM,UAAU,SAAS,CAAC,GAAW;IACjC,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACrC,CAAC","sourcesContent":["export const _FileExtensionRegex = new RegExp(\"\\\\.(\\\\w{3,4})($|\\\\?)\");\n\n/** @internal */\nexport function _CleanUrl(url: string) {\n return url.replace(/#/gm, \"%23\");\n}\n"]}
@@ -0,0 +1,3 @@
1
+ export * from "./abstractAudio/index";
2
+ export * from "./soundState";
3
+ export * from "./webAudio/index";
@@ -0,0 +1,5 @@
1
+ /* eslint-disable import/no-internal-modules */
2
+ export * from "./abstractAudio/index.js";
3
+ export * from "./soundState.js";
4
+ export * from "./webAudio/index.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../dev/core/src/AudioV2/index.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC","sourcesContent":["/* eslint-disable import/no-internal-modules */\nexport * from \"./abstractAudio/index\";\nexport * from \"./soundState\";\nexport * from \"./webAudio/index\";\n"]}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * The state of a sound.
3
+ */
4
+ export declare enum SoundState {
5
+ /**
6
+ * The sound is waiting for its instances to stop.
7
+ */
8
+ Stopping = 0,
9
+ /**
10
+ * The sound is stopped.
11
+ */
12
+ Stopped = 1,
13
+ /**
14
+ * The sound is waiting for its instances to start.
15
+ */
16
+ Starting = 2,
17
+ /**
18
+ * The sound has started playing.
19
+ */
20
+ Started = 3,
21
+ /**
22
+ * The sound failed to start, most likely due to the user not interacting with the page, yet.
23
+ */
24
+ FailedToStart = 4,
25
+ /**
26
+ * The sound is paused.
27
+ */
28
+ Paused = 5
29
+ }
@@ -0,0 +1,31 @@
1
+ /**
2
+ * The state of a sound.
3
+ */
4
+ export var SoundState;
5
+ (function (SoundState) {
6
+ /**
7
+ * The sound is waiting for its instances to stop.
8
+ */
9
+ SoundState[SoundState["Stopping"] = 0] = "Stopping";
10
+ /**
11
+ * The sound is stopped.
12
+ */
13
+ SoundState[SoundState["Stopped"] = 1] = "Stopped";
14
+ /**
15
+ * The sound is waiting for its instances to start.
16
+ */
17
+ SoundState[SoundState["Starting"] = 2] = "Starting";
18
+ /**
19
+ * The sound has started playing.
20
+ */
21
+ SoundState[SoundState["Started"] = 3] = "Started";
22
+ /**
23
+ * The sound failed to start, most likely due to the user not interacting with the page, yet.
24
+ */
25
+ SoundState[SoundState["FailedToStart"] = 4] = "FailedToStart";
26
+ /**
27
+ * The sound is paused.
28
+ */
29
+ SoundState[SoundState["Paused"] = 5] = "Paused";
30
+ })(SoundState || (SoundState = {}));
31
+ //# sourceMappingURL=soundState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"soundState.js","sourceRoot":"","sources":["../../../../dev/core/src/AudioV2/soundState.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAN,IAAkB,UAyBjB;AAzBD,WAAkB,UAAU;IACxB;;OAEG;IACH,mDAAQ,CAAA;IACR;;OAEG;IACH,iDAAO,CAAA;IACP;;OAEG;IACH,mDAAQ,CAAA;IACR;;OAEG;IACH,iDAAO,CAAA;IACP;;OAEG;IACH,6DAAa,CAAA;IACb;;OAEG;IACH,+CAAM,CAAA;AACV,CAAC,EAzBiB,UAAU,KAAV,UAAU,QAyB3B","sourcesContent":["/**\n * The state of a sound.\n */\nexport const enum SoundState {\n /**\n * The sound is waiting for its instances to stop.\n */\n Stopping,\n /**\n * The sound is stopped.\n */\n Stopped,\n /**\n * The sound is waiting for its instances to start.\n */\n Starting,\n /**\n * The sound has started playing.\n */\n Started,\n /**\n * The sound failed to start, most likely due to the user not interacting with the page, yet.\n */\n FailedToStart,\n /**\n * The sound is paused.\n */\n Paused,\n}\n"]}
@@ -0,0 +1,5 @@
1
+ export * from "./webAudioBus";
2
+ export * from "./webAudioEngine";
3
+ export * from "./webAudioMainBus";
4
+ export * from "./webAudioStaticSound";
5
+ export * from "./webAudioStreamingSound";
@@ -0,0 +1,6 @@
1
+ export * from "./webAudioBus.js";
2
+ export * from "./webAudioEngine.js";
3
+ export * from "./webAudioMainBus.js";
4
+ export * from "./webAudioStaticSound.js";
5
+ export * from "./webAudioStreamingSound.js";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../dev/core/src/AudioV2/webAudio/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC","sourcesContent":["export * from \"./webAudioBus\";\nexport * from \"./webAudioEngine\";\nexport * from \"./webAudioMainBus\";\nexport * from \"./webAudioStaticSound\";\nexport * from \"./webAudioStreamingSound\";\n"]}
@@ -0,0 +1,59 @@
1
+ import { Quaternion, Vector3 } from "../../../Maths/math.vector";
2
+ import { _SpatialAudioSubNode } from "../../abstractAudio/subNodes/spatialAudioSubNode";
3
+ import type { _WebAudioEngine } from "../webAudioEngine";
4
+ import type { IWebAudioInNode } from "../webAudioNode";
5
+ /** @internal */
6
+ export declare function _CreateSpatialAudioSubNodeAsync(engine: _WebAudioEngine): Promise<_SpatialAudioSubNode>;
7
+ /** @internal */
8
+ export declare class _SpatialWebAudioSubNode extends _SpatialAudioSubNode {
9
+ private _position;
10
+ private _rotation;
11
+ private _rotationQuaternion;
12
+ private _webAudioRotationQuaternion;
13
+ /** @internal */
14
+ readonly node: PannerNode;
15
+ /** @internal */
16
+ constructor(engine: _WebAudioEngine);
17
+ /** @internal */
18
+ get coneInnerAngle(): number;
19
+ set coneInnerAngle(value: number);
20
+ /** @internal */
21
+ get coneOuterAngle(): number;
22
+ set coneOuterAngle(value: number);
23
+ /** @internal */
24
+ get coneOuterVolume(): number;
25
+ set coneOuterVolume(value: number);
26
+ /** @internal */
27
+ get distanceModel(): "linear" | "inverse" | "exponential";
28
+ set distanceModel(value: "linear" | "inverse" | "exponential");
29
+ /** @internal */
30
+ get maxDistance(): number;
31
+ set maxDistance(value: number);
32
+ /** @internal */
33
+ get panningModel(): "equalpower" | "HRTF";
34
+ set panningModel(value: "equalpower" | "HRTF");
35
+ /** @internal */
36
+ get position(): Vector3;
37
+ set position(value: Vector3);
38
+ /** @internal */
39
+ get referenceDistance(): number;
40
+ set referenceDistance(value: number);
41
+ /** @internal */
42
+ get rolloffFactor(): number;
43
+ set rolloffFactor(value: number);
44
+ /** @internal */
45
+ get rotation(): Vector3;
46
+ set rotation(value: Vector3);
47
+ /** @internal */
48
+ get rotationQuaternion(): Quaternion;
49
+ set rotationQuaternion(value: Quaternion);
50
+ /** @internal */
51
+ get inNode(): AudioNode;
52
+ /** @internal */
53
+ get outNode(): AudioNode;
54
+ protected _connect(node: IWebAudioInNode): boolean;
55
+ protected _disconnect(node: IWebAudioInNode): boolean;
56
+ /** @internal */
57
+ getClassName(): string;
58
+ private _updateRotation;
59
+ }
@@ -0,0 +1,156 @@
1
+ import { Matrix, Quaternion, Vector3 } from "../../../Maths/math.vector.js";
2
+ import { _SpatialAudioSubNode } from "../../abstractAudio/subNodes/spatialAudioSubNode.js";
3
+ import { _SpatialAudioDefaults } from "../../abstractAudio/subProperties/abstractSpatialAudio.js";
4
+ const TmpMatrix = Matrix.Zero();
5
+ const TmpVector = Vector3.Zero();
6
+ function d2r(degrees) {
7
+ return (degrees * Math.PI) / 180;
8
+ }
9
+ function r2d(radians) {
10
+ return (radians * 180) / Math.PI;
11
+ }
12
+ /** @internal */
13
+ export async function _CreateSpatialAudioSubNodeAsync(engine) {
14
+ return new _SpatialWebAudioSubNode(engine);
15
+ }
16
+ /** @internal */
17
+ export class _SpatialWebAudioSubNode extends _SpatialAudioSubNode {
18
+ /** @internal */
19
+ constructor(engine) {
20
+ super(engine);
21
+ this._position = _SpatialAudioDefaults.position.clone();
22
+ this._rotation = _SpatialAudioDefaults.rotation.clone();
23
+ this._rotationQuaternion = _SpatialAudioDefaults.rotationQuaternion.clone();
24
+ this._webAudioRotationQuaternion = _SpatialAudioDefaults.rotationQuaternion.clone();
25
+ this.node = new PannerNode(engine.audioContext);
26
+ }
27
+ /** @internal */
28
+ get coneInnerAngle() {
29
+ return d2r(this.node.coneInnerAngle);
30
+ }
31
+ set coneInnerAngle(value) {
32
+ this.node.coneInnerAngle = r2d(value);
33
+ }
34
+ /** @internal */
35
+ get coneOuterAngle() {
36
+ return d2r(this.node.coneOuterAngle);
37
+ }
38
+ set coneOuterAngle(value) {
39
+ this.node.coneOuterAngle = r2d(value);
40
+ }
41
+ /** @internal */
42
+ get coneOuterVolume() {
43
+ return this.node.coneOuterGain;
44
+ }
45
+ set coneOuterVolume(value) {
46
+ this.node.coneOuterGain = value;
47
+ }
48
+ /** @internal */
49
+ get distanceModel() {
50
+ return this.node.distanceModel;
51
+ }
52
+ set distanceModel(value) {
53
+ this.node.distanceModel = value;
54
+ // Wiggle the max distance to make the change take effect.
55
+ const maxDistance = this.node.maxDistance;
56
+ this.node.maxDistance = maxDistance + 0.001;
57
+ this.node.maxDistance = maxDistance;
58
+ }
59
+ /** @internal */
60
+ get maxDistance() {
61
+ return this.node.maxDistance;
62
+ }
63
+ set maxDistance(value) {
64
+ this.node.maxDistance = value;
65
+ }
66
+ /** @internal */
67
+ get panningModel() {
68
+ return this.node.panningModel;
69
+ }
70
+ set panningModel(value) {
71
+ this.node.panningModel = value;
72
+ }
73
+ /** @internal */
74
+ get position() {
75
+ return this._position;
76
+ }
77
+ set position(value) {
78
+ this._position.copyFrom(value);
79
+ this.node.positionX.value = value.x;
80
+ this.node.positionY.value = value.y;
81
+ this.node.positionZ.value = value.z;
82
+ }
83
+ /** @internal */
84
+ get referenceDistance() {
85
+ return this.node.refDistance;
86
+ }
87
+ set referenceDistance(value) {
88
+ this.node.refDistance = value;
89
+ }
90
+ /** @internal */
91
+ get rolloffFactor() {
92
+ return this.node.rolloffFactor;
93
+ }
94
+ set rolloffFactor(value) {
95
+ this.node.rolloffFactor = value;
96
+ }
97
+ /** @internal */
98
+ get rotation() {
99
+ return this._rotation;
100
+ }
101
+ set rotation(value) {
102
+ this._rotation.copyFrom(value);
103
+ Quaternion.FromEulerAnglesToRef(value.x, value.y, value.z, this._webAudioRotationQuaternion);
104
+ this._updateRotation();
105
+ }
106
+ /** @internal */
107
+ get rotationQuaternion() {
108
+ return this._rotationQuaternion;
109
+ }
110
+ set rotationQuaternion(value) {
111
+ this._rotationQuaternion.copyFrom(value);
112
+ this._webAudioRotationQuaternion.copyFrom(value);
113
+ this._updateRotation();
114
+ }
115
+ /** @internal */
116
+ get inNode() {
117
+ return this.node;
118
+ }
119
+ /** @internal */
120
+ get outNode() {
121
+ return this.node;
122
+ }
123
+ _connect(node) {
124
+ const connected = super._connect(node);
125
+ if (!connected) {
126
+ return false;
127
+ }
128
+ // If the wrapped node is not available now, it will be connected later by the subgraph.
129
+ if (node.inNode) {
130
+ this.node.connect(node.inNode);
131
+ }
132
+ return true;
133
+ }
134
+ _disconnect(node) {
135
+ const disconnected = super._disconnect(node);
136
+ if (!disconnected) {
137
+ return false;
138
+ }
139
+ if (node.inNode) {
140
+ this.node.disconnect(node.inNode);
141
+ }
142
+ return true;
143
+ }
144
+ /** @internal */
145
+ getClassName() {
146
+ return "_SpatialWebAudioSubNode";
147
+ }
148
+ _updateRotation() {
149
+ Matrix.FromQuaternionToRef(this._webAudioRotationQuaternion, TmpMatrix);
150
+ Vector3.TransformNormalToRef(Vector3.Right(), TmpMatrix, TmpVector);
151
+ this.node.orientationX.value = TmpVector.x;
152
+ this.node.orientationY.value = TmpVector.y;
153
+ this.node.orientationZ.value = TmpVector.z;
154
+ }
155
+ }
156
+ //# sourceMappingURL=spatialWebAudioSubNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spatialWebAudioSubNode.js","sourceRoot":"","sources":["../../../../../../dev/core/src/AudioV2/webAudio/subNodes/spatialWebAudioSubNode.ts"],"names":[],"mappings":"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","sourcesContent":["import { Matrix, Quaternion, Vector3 } from \"../../../Maths/math.vector\";\r\nimport { _SpatialAudioSubNode } from \"../../abstractAudio/subNodes/spatialAudioSubNode\";\r\nimport { _SpatialAudioDefaults } from \"../../abstractAudio/subProperties/abstractSpatialAudio\";\r\nimport type { _WebAudioEngine } from \"../webAudioEngine\";\r\nimport type { IWebAudioInNode } from \"../webAudioNode\";\r\n\r\nconst TmpMatrix = Matrix.Zero();\r\nconst TmpVector = Vector3.Zero();\r\n\r\nfunction d2r(degrees: number): number {\r\n return (degrees * Math.PI) / 180;\r\n}\r\n\r\nfunction r2d(radians: number): number {\r\n return (radians * 180) / Math.PI;\r\n}\r\n\r\n/** @internal */\r\nexport async function _CreateSpatialAudioSubNodeAsync(engine: _WebAudioEngine): Promise<_SpatialAudioSubNode> {\r\n return new _SpatialWebAudioSubNode(engine);\r\n}\r\n\r\n/** @internal */\r\nexport class _SpatialWebAudioSubNode extends _SpatialAudioSubNode {\r\n private _position = _SpatialAudioDefaults.position.clone();\r\n private _rotation: Vector3 = _SpatialAudioDefaults.rotation.clone();\r\n private _rotationQuaternion: Quaternion = _SpatialAudioDefaults.rotationQuaternion.clone();\r\n private _webAudioRotationQuaternion = _SpatialAudioDefaults.rotationQuaternion.clone();\r\n\r\n /** @internal */\r\n public readonly node: PannerNode;\r\n\r\n /** @internal */\r\n public constructor(engine: _WebAudioEngine) {\r\n super(engine);\r\n\r\n this.node = new PannerNode(engine.audioContext);\r\n }\r\n\r\n /** @internal */\r\n public get coneInnerAngle(): number {\r\n return d2r(this.node.coneInnerAngle);\r\n }\r\n\r\n public set coneInnerAngle(value: number) {\r\n this.node.coneInnerAngle = r2d(value);\r\n }\r\n\r\n /** @internal */\r\n public get coneOuterAngle(): number {\r\n return d2r(this.node.coneOuterAngle);\r\n }\r\n\r\n public set coneOuterAngle(value: number) {\r\n this.node.coneOuterAngle = r2d(value);\r\n }\r\n\r\n /** @internal */\r\n public get coneOuterVolume(): number {\r\n return this.node.coneOuterGain;\r\n }\r\n\r\n public set coneOuterVolume(value: number) {\r\n this.node.coneOuterGain = value;\r\n }\r\n\r\n /** @internal */\r\n public get distanceModel(): \"linear\" | \"inverse\" | \"exponential\" {\r\n return this.node.distanceModel;\r\n }\r\n\r\n public set distanceModel(value: \"linear\" | \"inverse\" | \"exponential\") {\r\n this.node.distanceModel = value;\r\n\r\n // Wiggle the max distance to make the change take effect.\r\n const maxDistance = this.node.maxDistance;\r\n this.node.maxDistance = maxDistance + 0.001;\r\n this.node.maxDistance = maxDistance;\r\n }\r\n\r\n /** @internal */\r\n public get maxDistance(): number {\r\n return this.node.maxDistance;\r\n }\r\n\r\n public set maxDistance(value: number) {\r\n this.node.maxDistance = value;\r\n }\r\n\r\n /** @internal */\r\n public get panningModel(): \"equalpower\" | \"HRTF\" {\r\n return this.node.panningModel;\r\n }\r\n\r\n public set panningModel(value: \"equalpower\" | \"HRTF\") {\r\n this.node.panningModel = value;\r\n }\r\n\r\n /** @internal */\r\n public get position(): Vector3 {\r\n return this._position;\r\n }\r\n\r\n public set position(value: Vector3) {\r\n this._position.copyFrom(value);\r\n\r\n this.node.positionX.value = value.x;\r\n this.node.positionY.value = value.y;\r\n this.node.positionZ.value = value.z;\r\n }\r\n\r\n /** @internal */\r\n public get referenceDistance(): number {\r\n return this.node.refDistance;\r\n }\r\n\r\n public set referenceDistance(value: number) {\r\n this.node.refDistance = value;\r\n }\r\n\r\n /** @internal */\r\n public get rolloffFactor(): number {\r\n return this.node.rolloffFactor;\r\n }\r\n\r\n public set rolloffFactor(value: number) {\r\n this.node.rolloffFactor = value;\r\n }\r\n\r\n /** @internal */\r\n public get rotation(): Vector3 {\r\n return this._rotation;\r\n }\r\n\r\n public set rotation(value: Vector3) {\r\n this._rotation.copyFrom(value);\r\n Quaternion.FromEulerAnglesToRef(value.x, value.y, value.z, this._webAudioRotationQuaternion);\r\n this._updateRotation();\r\n }\r\n\r\n /** @internal */\r\n public get rotationQuaternion(): Quaternion {\r\n return this._rotationQuaternion;\r\n }\r\n\r\n public set rotationQuaternion(value: Quaternion) {\r\n this._rotationQuaternion.copyFrom(value);\r\n this._webAudioRotationQuaternion.copyFrom(value);\r\n this._updateRotation();\r\n }\r\n\r\n /** @internal */\r\n public get inNode(): AudioNode {\r\n return this.node;\r\n }\r\n\r\n /** @internal */\r\n public get outNode(): AudioNode {\r\n return this.node;\r\n }\r\n\r\n protected override _connect(node: IWebAudioInNode): boolean {\r\n const connected = super._connect(node);\r\n\r\n if (!connected) {\r\n return false;\r\n }\r\n\r\n // If the wrapped node is not available now, it will be connected later by the subgraph.\r\n if (node.inNode) {\r\n this.node.connect(node.inNode);\r\n }\r\n\r\n return true;\r\n }\r\n\r\n protected override _disconnect(node: IWebAudioInNode): boolean {\r\n const disconnected = super._disconnect(node);\r\n\r\n if (!disconnected) {\r\n return false;\r\n }\r\n\r\n if (node.inNode) {\r\n this.node.disconnect(node.inNode);\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /** @internal */\r\n public getClassName(): string {\r\n return \"_SpatialWebAudioSubNode\";\r\n }\r\n\r\n private _updateRotation(): void {\r\n Matrix.FromQuaternionToRef(this._webAudioRotationQuaternion, TmpMatrix);\r\n Vector3.TransformNormalToRef(Vector3.Right(), TmpMatrix, TmpVector);\r\n\r\n this.node.orientationX.value = TmpVector.x;\r\n this.node.orientationY.value = TmpVector.y;\r\n this.node.orientationZ.value = TmpVector.z;\r\n }\r\n}\r\n"]}
@@ -0,0 +1,24 @@
1
+ import { _StereoAudioSubNode } from "../../abstractAudio/subNodes/stereoAudioSubNode";
2
+ import type { _WebAudioEngine } from "../webAudioEngine";
3
+ import type { IWebAudioInNode } from "../webAudioNode";
4
+ /** @internal */
5
+ export declare function _CreateStereoAudioSubNodeAsync(engine: _WebAudioEngine): Promise<_StereoAudioSubNode>;
6
+ /** @internal */
7
+ export declare class _StereoWebAudioSubNode extends _StereoAudioSubNode {
8
+ /** @internal */
9
+ readonly node: StereoPannerNode;
10
+ /** @internal */
11
+ constructor(engine: _WebAudioEngine);
12
+ /** @internal */
13
+ get pan(): number;
14
+ /** @internal */
15
+ set pan(value: number);
16
+ /** @internal */
17
+ get inNode(): AudioNode;
18
+ /** @internal */
19
+ get outNode(): AudioNode;
20
+ /** @internal */
21
+ getClassName(): string;
22
+ protected _connect(node: IWebAudioInNode): boolean;
23
+ protected _disconnect(node: IWebAudioInNode): boolean;
24
+ }