a8/a8/vec3.cc
aozhiwei 9b63b8fee2 1
2022-09-06 10:21:21 +08:00

45 lines
873 B
C++

#include <math.h>
#include <a8/a8.h>
#include <glm/glm.hpp>
#include <glm/gtc/matrix_transform.hpp>
#include <glm/vec3.hpp>
#include <Eigen/Core>
#include <Eigen/Dense>
#include <a8/vec3.h>
namespace a8
{
void Vec3::RotateX(float angle)
{
Eigen::Vector3f v(x, y, z);
v = Eigen::AngleAxisf(angle * 3.1415926f, Eigen::Vector3f::UnitX()) * v;
x = v[0];
y = v[1];
z = v[2];
}
void Vec3::RotateY(float angle)
{
Eigen::Vector3f v(x, y, z);
v = Eigen::AngleAxisf(angle * 3.1415926f, Eigen::Vector3f::UnitY()) * v;
x = v[0];
y = v[1];
z = v[2];
}
void Vec3::RotateZ(float angle)
{
Eigen::Vector3f v(x, y, z);
v = Eigen::AngleAxisf(angle * 3.1415926f, Eigen::Vector3f::UnitZ()) * v;
x = v[0];
y = v[1];
z = v[2];
}
}