#ifndef TRANSFORM_H #define TRANSFORM_H TRANSFORM_H #include "Matrix.h" #include "Ray.h" #include "Vector.h" #include class Transform { public: Transform(); Transform getInverse(); void translate(double x, double y, double z); void rotate(double angle, double xv, double yv, double zv); void scale(double xs, double ys, double zs); Matrix & getMatrix() { return m_matrix; } Vector transform_point(const Vector & v); Vector transform_direction(const Vector & v); Vector transform_normal(const Vector & v); Ray transform_ray(const Ray & r); protected: Matrix m_matrix; }; #endif