X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fgeometry%2Faffinetransformation.h;h=e311b885f2111a4d777d7a5c775a780cbc9468a3;hb=60caa19c84877c89d750140a90e5d891bce30ee7;hp=15bd92675405a36a4b4205326400256ee3187934;hpb=4bb4d03d5a6a0252083d6bc45b8a50fe7b504c51;p=libs%2Fmath.git diff --git a/source/geometry/affinetransformation.h b/source/geometry/affinetransformation.h index 15bd926..e311b88 100644 --- a/source/geometry/affinetransformation.h +++ b/source/geometry/affinetransformation.h @@ -1,7 +1,7 @@ #ifndef MSP_GEOMETRY_AFFINETRANSFORMATION_H_ #define MSP_GEOMETRY_AFFINETRANSFORMATION_H_ -#include +#include #include "angle.h" #include "boundingbox.h" #include "ray.h" @@ -55,7 +55,7 @@ class AffineTransformation: public AffineTransformationOps friend class AffineTransformationOps; private: - LinAl::SquareMatrix matrix; + LinAl::Matrix matrix; public: AffineTransformation(); @@ -67,8 +67,8 @@ public: AffineTransformation &operator*=(const AffineTransformation &); AffineTransformation &invert(); - const LinAl::SquareMatrix &get_matrix() const { return matrix; } - operator const LinAl::SquareMatrix &() const { return matrix; } + const LinAl::Matrix &get_matrix() const { return matrix; } + operator const LinAl::Matrix &() const { return matrix; } LinAl::Vector transform(const LinAl::Vector &) const; LinAl::Vector transform_linear(const LinAl::Vector &) const; @@ -79,7 +79,7 @@ public: template inline AffineTransformation::AffineTransformation() { - this->matrix = LinAl::SquareMatrix::identity(); + this->matrix = LinAl::Matrix::identity(); } @@ -175,13 +175,13 @@ inline AffineTransformation invert(const AffineTransformation &at) template inline LinAl::Vector AffineTransformation::transform(const LinAl::Vector &v) const { - return LinAl::Vector(matrix*LinAl::Vector(v, T(1))); + return (matrix*compose(v, T(1))).template slice(0); } template inline LinAl::Vector AffineTransformation::transform_linear(const LinAl::Vector &v) const { - return LinAl::Vector(matrix*LinAl::Vector(v, T(0))); + return (matrix*compose(v, T(0))).template slice(0); } template