From cd9530d21bab7f3dfb929ff3388b6a3ab9ede1c3 Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Thu, 22 Jan 2009 20:36:05 +0000 Subject: [PATCH] filled in scale() transformation in util/Transform git-svn-id: svn://anubis/fart/trunk@28 7f9b0f55-74a9-4bce-be96-3c2cd072584d --- test/tests.cc | 25 +++++-------------------- util/Transform.cc | 6 +++++- util/Transform.h | 1 + 3 files changed, 11 insertions(+), 21 deletions(-) diff --git a/test/tests.cc b/test/tests.cc index e2f2ef4..282c67a 100644 --- a/test/tests.cc +++ b/test/tests.cc @@ -1,30 +1,15 @@ #include #include -#include "util/Matrix.h" +#include "util/Transform.h" using namespace std; int main() { - Matrix m = Matrix::identity(); - m[0][3] = 2.0; - m[1][3] = -1.0; - m[2][3] = 10.0; - - cout << "m:" << endl << m; - - Matrix i = m.getInverse(); - - cout << "i:" << endl << i; - - Matrix mult = m * i; - cout << "mult:" << endl << mult; - - m *= m; - cout << "m^2:" << endl << m; - - m *= m; - cout << "m^4:" << endl << m; + Transform t; + t.scale(3, 2, 1); + t.translate(-1, 2, 3); + cout << "t:" << endl << t.getMatrix(); return 0; } diff --git a/util/Transform.cc b/util/Transform.cc index f1fc8f5..115a3e2 100644 --- a/util/Transform.cc +++ b/util/Transform.cc @@ -22,5 +22,9 @@ void Transform::rotate(double amt, double xv, double yv, double zv) void Transform::scale(double xs, double ys, double zs) { - /* TODO: fill in */ + Matrix t = Matrix::identity(); + t[0][0] = xs; + t[1][1] = ys; + t[2][2] = zs; + m_matrix *= t; } diff --git a/util/Transform.h b/util/Transform.h index 87a1e27..ca3d75f 100644 --- a/util/Transform.h +++ b/util/Transform.h @@ -12,6 +12,7 @@ class Transform void translate(double x, double y, double z); void rotate(double amt, double xv, double yv, double zv); void scale(double xs, double ys, double zs); + Matrix & getMatrix() { return m_matrix; } protected: Matrix m_matrix;