Skip to content
Snippets Groups Projects
Commit 85307ecf authored by Maurice Tayeb Andreas's avatar Maurice Tayeb Andreas
Browse files

Rotationsübertragung von Linkshändisch in Rechtshändisch

Directivity Variable hinzugefügt
parent 5e781de8
Branches
Tags
No related merge requests found
...@@ -64,6 +64,13 @@ namespace VA ...@@ -64,6 +64,13 @@ namespace VA
NativeSetListenerOrientationYPR(_NetClient, iListenerID, yaw, pitch, roll); NativeSetListenerOrientationYPR(_NetClient, iListenerID, yaw, pitch, roll);
} }
public void SetListenerOrientationVU( int iListenerID,
double vx, double vy, double vz,
double ux, double uy, double uz)
{
NativeSetListenerOrientationVU(_NetClient, iListenerID, vx, vy, vz, ux, uy, uz);
}
public int CreateSoundSource(string sName, int iAuralizationMode, double dVolume) public int CreateSoundSource(string sName, int iAuralizationMode, double dVolume)
{ {
return NativeCreateSoundSource(_NetClient, sName, iAuralizationMode, dVolume); return NativeCreateSoundSource(_NetClient, sName, iAuralizationMode, dVolume);
...@@ -78,6 +85,12 @@ namespace VA ...@@ -78,6 +85,12 @@ namespace VA
NativeSetSoundSourceOrientationYPR(_NetClient, iSoundSourceID, yaw, pitch, roll); NativeSetSoundSourceOrientationYPR(_NetClient, iSoundSourceID, yaw, pitch, roll);
} }
public void SetSoundSourceOrientationVU(int iSoundSourceID,
double vx, double vy, double vz,
double ux, double uy, double uz)
{
NativeSetListenerOrientationVU(_NetClient, iSoundSourceID, vx, vy, vz, ux, uy, uz);
}
public int LoadHRIRDataset(string FilePath, string Name) public int LoadHRIRDataset(string FilePath, string Name)
{ {
Console.WriteLine("test"); Console.WriteLine("test");
...@@ -186,6 +199,25 @@ namespace VA ...@@ -186,6 +199,25 @@ namespace VA
{ {
NativeSetListenerHRIRDataset(_NetClient,iListenerID, iHRIRDatasetID); NativeSetListenerHRIRDataset(_NetClient,iListenerID, iHRIRDatasetID);
} }
public void GetListenerPositionOrientationVU(int iListenerID,
double px, double py, double pz,
double vx, double vy, double vz,
double ux, double uy, double uz)
{
NativeGetListenerPositionOrientationVU(_NetClient, iListenerID, px, py, pz, vx, vy, vz, ux, uy, uz);
}
public void SetListenerPositionOrientationVU(int iListenerID,
double px, double py, double pz,
double vx, double vy, double vz,
double ux, double uy, double uz)
{
NativeSetListenerPositionOrientationVU(_NetClient, iListenerID, px, py, pz, vx, vy, vz, ux, uy, uz);
}
public void SetSoundSourceDirectivity(int iSoundSourceID, int iDirectivityID)
{
NativeSetSoundSourceDirectivity(_NetClient, iSoundSourceID, iDirectivityID);
}
/* /*
* Native imported functions from C++ unmanaged library declared private, so they can not be accessed * Native imported functions from C++ unmanaged library declared private, so they can not be accessed
* directly through C# class method * directly through C# class method
......
...@@ -10,10 +10,12 @@ using VA; ...@@ -10,10 +10,12 @@ using VA;
public class VAUAdapter : MonoBehaviour { public class VAUAdapter : MonoBehaviour {
public static string HostIP = "localhost"; private static string HostIP = "localhost";
public static int Port = 12340; private static int Port = 12340;
public static string DefaultHRIRPath = "$(DefaultHRIR)"; private static string DefaultHRIRPath = "$(DefaultHRIR)";
private static string DefaultDirectivityPath = "$(DefaultDirectivity)";
private static int defaulthrir; private static int defaulthrir;
private static int defaultdirectivity;
private static VANet _VA = null; private static VANet _VA = null;
// No public construction allowed // No public construction allowed
...@@ -41,6 +43,7 @@ public class VAUAdapter : MonoBehaviour { ...@@ -41,6 +43,7 @@ public class VAUAdapter : MonoBehaviour {
_VA.Connect(HostIP, Port); _VA.Connect(HostIP, Port);
_VA.Reset(); _VA.Reset();
defaulthrir = _VA.LoadHRIRDataset(DefaultHRIRPath, "DefaultHRIR"); defaulthrir = _VA.LoadHRIRDataset(DefaultHRIRPath, "DefaultHRIR");
//defaultdirectivity = _VA.LoadDirectivity(DefaultDirectivityPath, "DefaultDirectivity");
} }
catch(ExternalException e) catch(ExternalException e)
{ {
...@@ -56,6 +59,14 @@ public class VAUAdapter : MonoBehaviour { ...@@ -56,6 +59,14 @@ public class VAUAdapter : MonoBehaviour {
} }
} }
public static int DefaultDirectivity
{
get
{
return defaultdirectivity;
}
}
// Use this for initialization // Use this for initialization
void Awake() void Awake()
......
...@@ -10,9 +10,16 @@ public class VAUListener : MonoBehaviour { ...@@ -10,9 +10,16 @@ public class VAUListener : MonoBehaviour {
public int auramode = 123; public int auramode = 123;
private int Listener; private int Listener;
private VANet _VA = null; private VANet _VA = null;
private Vector3 viewvec;
private Vector3 upvec;
private Quaternion q;
private Transform t;
// Use this for initialization // Use this for initialization
void Start() void Start()
{ {
upvec.Set(0, 1, 0);
viewvec.Set(0, 0, 1);
_VA = VAUAdapter.VA; _VA = VAUAdapter.VA;
Listener = _VA.CreateListener(listenername, auramode, VAUAdapter.DefaultHRIR); Listener = _VA.CreateListener(listenername, auramode, VAUAdapter.DefaultHRIR);
_VA.SetListenerHRIRDataset(Listener, VAUAdapter.DefaultHRIR); _VA.SetListenerHRIRDataset(Listener, VAUAdapter.DefaultHRIR);
...@@ -21,11 +28,22 @@ public class VAUListener : MonoBehaviour { ...@@ -21,11 +28,22 @@ public class VAUListener : MonoBehaviour {
// Update is called once per frame // Update is called once per frame
void Update () void Update ()
{ {
Transform t = GetComponent<Transform>(); t = GetComponent<Transform>();
q = t.rotation;
Vector3 up = q * upvec;
Vector3 view = q * viewvec;
Vector3 view_ogl = new Vector3(view.x, view.y, -view.z);
Vector3 up_ogl = new Vector3(up.x, up.y, -up.z);
_VA.SetListenerPosition(Listener, t.transform.position.x, t.transform.position.y, -t.transform.position.z); _VA.SetListenerPosition(Listener, t.transform.position.x, t.transform.position.y, -t.transform.position.z);
_VA.SetListenerOrientationYPR(Listener, -t.transform.rotation.eulerAngles.x, -t.transform.rotation.eulerAngles.y, t.transform.rotation.eulerAngles.z); _VA.SetListenerOrientationVU(Listener, view_ogl.x, view_ogl.y, view_ogl.z, up_ogl.x, up_ogl.y, up_ogl.z);
//Quaternion q_ogl = new Quaternion(q.x, q.y, -q.z, -q.w);
//Vector3 t1 = new Vector3(0, 0, 1);
//Vector3 t1_ogl = ( q_ogl * t1 ); // result: 0 0 -1
// Debug.Log(t1_ogl);
} }
//void OnDestroy() //void OnDestroy()
//{ //{
// _VA.DeleteListener(Listener); // _VA.DeleteListener(Listener);
......
...@@ -12,6 +12,10 @@ public class VAUSoundSource : MonoBehaviour { ...@@ -12,6 +12,10 @@ public class VAUSoundSource : MonoBehaviour {
public string SignalSource = ""; public string SignalSource = "";
private VANet _VA = null; private VANet _VA = null;
private int SoundSource; private int SoundSource;
private Vector3 viewvec;
private Vector3 upvec;
private Quaternion q;
private Transform t;
private bool islooping; private bool islooping;
private bool ismuted; private bool ismuted;
...@@ -35,9 +39,15 @@ public class VAUSoundSource : MonoBehaviour { ...@@ -35,9 +39,15 @@ public class VAUSoundSource : MonoBehaviour {
void Update() void Update()
{ {
//position and oritentation -> VA //position and oritentation -> VA
Transform t = GetComponent<Transform>(); t = GetComponent<Transform>();
q = t.rotation;
Vector3 up = q * upvec;
Vector3 view = q * viewvec;
Vector3 view_ogl = new Vector3(view.x, view.y, -view.z);
Vector3 up_ogl = new Vector3(up.x, up.y, -up.z);
_VA.SetSoundSourcePosition(SoundSource, t.transform.position.x, t.transform.position.y, -t.transform.position.z); _VA.SetSoundSourcePosition(SoundSource, t.transform.position.x, t.transform.position.y, -t.transform.position.z);
_VA.SetSoundSourceOrientationYPR(SoundSource, -t.transform.rotation.eulerAngles.x, -t.transform.rotation.y, t.transform.rotation.eulerAngles.z); _VA.SetSoundSourceOrientationVU(SoundSource, view_ogl.x, view_ogl.y, view_ogl.z, up_ogl.x, up_ogl.y, up_ogl.z);
ismuted = GetComponent<AudioSource>().mute; ismuted = GetComponent<AudioSource>().mute;
_VA.SetSoundSourceMuted(SoundSource, ismuted); _VA.SetSoundSourceMuted(SoundSource, ismuted);
//_VA.SetSoundSourceVolume(SoundSource, Volume); <- flaot ändern //_VA.SetSoundSourceVolume(SoundSource, Volume); <- flaot ändern
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment