-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathExtensions.cs
More file actions
30 lines (24 loc) · 1.19 KB
/
Extensions.cs
File metadata and controls
30 lines (24 loc) · 1.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
global using static godot_raytraced_audio.Extensions;
global using static godot_raytraced_audio.GlobalHelpers;
using godot_openal;
namespace godot_raytraced_audio;
internal static class Extensions
{
public static vaudio.Vector3F ToVAudio(Vector3 v) => new(v.X, v.Y, v.Z);
public static Vector3 FromVAudio(vaudio.Vector3F v) => new(v.X, v.Y, v.Z);
public static vaudio.Matrix4F ToVAudio(Transform3D globalTransform)
{
var basis = globalTransform.Basis;
var origin = globalTransform.Origin;
// Both Godot's Basis and vaudio.Matrix4F are column-major
return new vaudio.Matrix4F(
basis.X.X, basis.X.Y, basis.X.Z, 0f,
basis.Y.X, basis.Y.Y, basis.Y.Z, 0f,
basis.Z.X, basis.Z.Y, basis.Z.Z, 0f,
origin.X, origin.Y, origin.Z, 1f
);
}
public static bool GodotOpenALEnabled => ALManager.instance != null;
public static void RegisterDeviceRecreatedCallback(Action callback) => ALManager.instance?.RegisterDeviceRecreatedCallback(callback);
public static void RegisterDeviceDestroyedCallback(Action callback) => ALManager.instance?.RegisterDeviceDestroyedCallback(callback);
}