Matrix.h 711 B

123456789101112131415161718192021222324252627282930313233343536
  1. #ifndef MATRIX_H
  2. #define MATRIX_H
  3. #include <iostream>
  4. class Matrix final
  5. {
  6. public:
  7. Matrix();
  8. void setToIdentity();
  9. void set(unsigned int index, float f);
  10. const float* getValues() const;
  11. void mul(const Matrix& m);
  12. void scale(float sx, float sy, float sz);
  13. void translate(float tx, float ty, float tz);
  14. void translateX(float tx);
  15. void translateY(float ty);
  16. void translateZ(float tz);
  17. void translateTo(float tx, float ty, float tz);
  18. void rotateX(float degrees);
  19. void rotateY(float degrees);
  20. void rotateZ(float degrees);
  21. private:
  22. float data[16];
  23. };
  24. std::ostream& operator<<(std::ostream& os, const Matrix& m);
  25. #endif