Added AXIS, GetAxisVector

This commit is contained in:
hyzboy 2024-07-29 13:38:25 +08:00
parent e8b5f2a477
commit 2393bb43dc
2 changed files with 32 additions and 2 deletions

View File

@ -318,7 +318,7 @@ namespace hgl
matrix_dirty=true;
}
void SetRotation(const Vector3f &axis,float angle)
void SetRotation(const Vector3f &axis,const float angle)
{
rotation_axis=axis;
rotate_angle=angle;
@ -331,6 +331,19 @@ namespace hgl
UpdateQuat();
}
void SetRotation(const AXIS &axis,const float angle)
{
rotation_axis=GetAxisVector(axis);
rotate_angle=angle;
UpdateQuat();
}
void SetRotationAxis(const AXIS &axis)
{
rotation_axis=GetAxisVector(axis);
UpdateQuat();
}
void SetRotateAngle(float angle)
{
rotate_angle=angle;

View File

@ -10,6 +10,11 @@
namespace hgl
{
enum class AXIS
{
X,Y,Z
};
#define DEF_VECTOR(flag,glm_type) using Vector1##flag=glm::glm_type##1;\
using Vector2##flag=glm::glm_type##2;\
using Vector3##flag=glm::glm_type##3;\
@ -34,6 +39,18 @@ namespace hgl
#undef DEF_VECTOR
inline const Vector3f GetAxisVector(const AXIS &axis)
{
switch(axis)
{
case AXIS::X:return Vector3f(1,0,0);
case AXIS::Y:return Vector3f(0,1,0);
case AXIS::Z:return Vector3f(0,0,1);
}
return Vector3f(0,0,0);
}
inline bool operator == (const Vector2f &lhs,const Vector2f &rhs)
{
if(lhs.x!=rhs.x)return(false);