amuse/lib/Listener.cpp

28 lines
621 B
C++
Raw Normal View History

#include "amuse/Listener.hpp"
2018-12-08 05:20:09 +00:00
namespace amuse {
2018-12-08 05:20:09 +00:00
static void Cross(Vector3f& out, const Vector3f& a, const Vector3f& b) {
out[0] = a[1] * b[2] - a[2] * b[1];
out[1] = a[2] * b[0] - a[0] * b[2];
out[2] = a[0] * b[1] - a[1] * b[0];
}
2018-12-08 05:20:09 +00:00
void Listener::setVectors(const float* pos, const float* dir, const float* heading, const float* up) {
for (int i = 0; i < 3; ++i) {
m_pos[i] = pos[i];
m_dir[i] = dir[i];
m_heading[i] = heading[i];
m_up[i] = up[i];
}
2018-12-08 05:20:09 +00:00
Normalize(m_heading);
Normalize(m_up);
Cross(m_right, m_heading, m_up);
Normalize(m_right);
2018-12-08 05:20:09 +00:00
m_dirty = true;
}
2018-12-08 05:20:09 +00:00
} // namespace amuse