Added AXIS, GetAxisVector
This commit is contained in:
parent
e8b5f2a477
commit
2393bb43dc
@ -179,7 +179,7 @@ namespace hgl
|
||||
{
|
||||
return glm::slerp(from,to,t);
|
||||
}
|
||||
|
||||
|
||||
inline Vector3f TransformPosition(const Matrix4f &m,const Vector3f &v)
|
||||
{
|
||||
return Vector3f(m*Vector4f(v,1.0f));
|
||||
@ -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;
|
||||
|
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user