SyndicatQuebecoisdelaConstr.../SQCSim2021/transformation.h

36 lines
738 B
C
Raw Normal View History

#ifndef TRANSFORMATION_H__
#define TRANSFORMATION_H__
#include "matrix4.h"
#include "vector3.h"
#include <stack>
class Transformation
{
public:
Transformation();
void SetIdentity();
void Push();
void Pop();
void ApplyTranslation(float x, float y, float z);
void ApplyTranslation(const Vector3f& v);
void ApplyRotation(float angle, float x, float y, float z);
void ApplyRotation(float angle, const Vector3f& v);
void ApplyScale(float x, float y, float z);
void ApplyScale(const Vector3f& v);
void Use() const;
const Matrix4f& GetMatrix() const;
private:
std::stack<Matrix4f> m_stack;
};
#endif // TRANSFORMATION_H__