aboutsummaryrefslogtreecommitdiffstats
path: root/meowpp/math/LinearTransformation.h
blob: f856f08281e9aee7c15d1803eceff060608c7786 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#ifndef   math_LinearTransformation_H__
#define   math_LinearTransformation_H__

#include "Transformation.h"
#include "Matrix.h"

#include <cstdlib>

namespace meow{
  template<class Scalar>
  class LinearTransformation: public Transformation<Scalar>{
    protected:
      Matrix<Scalar> _matrix;
      
      LinearTransformation(size_t  __inputRows, size_t __outputRows,
                           size_t __psize):
      Transformation(__inputRows, 1u, __outputRows, 1u, __psize),
      _matrix(__outputRows, __inputCols, Scalar(0.0)){
      }
    public:
      virtual LinearTransformation(){ }
      virtual Matrix<Scalar> const&    matrix() const{ return _matrix; }
      virtual Matrix<Scalar>        invMatrix() const = 0;
  };
}

#endif // math_LinearTransformation_H__